misc: mods: Fix build for Linux v6.11

In Linux v6.11, the 'platform_driver' structure 'remove' callback was
updated to return void instead of 'int'. Update the MODS drivers as
necessary to fix this. Note that we can simply remove the mods_dmabuf
'remove' function because it does nothing.

Bug 4749580

Change-Id: I8ac05a7b713916b9aca1694ca828682808df3287
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3235514
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: Chris Dragan <kdragan@nvidia.com>
Reviewed-by: Carl Dong <carld@nvidia.com>
This commit is contained in:
Jon Hunter
2024-10-23 10:55:28 +01:00
parent 9a1b69df09
commit ccdd799b54
4 changed files with 15 additions and 11 deletions

View File

@@ -1,15 +1,10 @@
# SPDX-License-Identifier: GPL-2.0-only
# SPDX-FileCopyrightText: Copyright (c) 2022-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
LINUX_VERSION := $(shell expr $(VERSION) \* 256 + $(PATCHLEVEL))
LINUX_VERSION_6_11 := $(shell expr 6 \* 256 + 11)
# MODS is currently broken for Linux v6.11 and later
ifeq ($(shell test $(LINUX_VERSION) -lt $(LINUX_VERSION_6_11); echo $$?),0)
ifndef CONFIG_TEGRA_SYSTEM_TYPE_ACK
obj-m += mods/
endif
endif
obj-m += nvsciipc/
ifdef CONFIG_PCI
obj-m += tegra-pcie-dma-test.o

View File

@@ -516,12 +516,20 @@ static int tegra_dma_driver_probe(struct platform_device *pdev)
return 0;
}
#if KERNEL_VERSION(6, 11, 0) <= MODS_KERNEL_VERSION
static void tegra_dma_driver_remove(struct platform_device *pdev)
{
put_device(&pdev->dev);
mods_tegra_dma_dev = NULL;
}
#else
static int tegra_dma_driver_remove(struct platform_device *pdev)
{
put_device(&pdev->dev);
mods_tegra_dma_dev = NULL;
return 0;
}
#endif
static const struct of_device_id of_ids[] = {
{ .compatible = "nvidia,mods_tegra_dma" },

View File

@@ -114,11 +114,6 @@ static int mods_dmabuf_probe(struct platform_device *pdev)
return 0;
}
static int mods_dmabuf_remove(struct platform_device *pdev)
{
return 0;
}
static const struct of_device_id of_ids[] = {
{ .compatible = "nvidia,mods_test" },
{ }
@@ -126,7 +121,6 @@ static const struct of_device_id of_ids[] = {
static struct platform_driver mods_dummy_driver = {
.probe = mods_dmabuf_probe,
.remove = mods_dmabuf_remove,
.driver = {
.name = "nvidia_mods_dummy_driver",
.owner = THIS_MODULE,

View File

@@ -98,11 +98,18 @@ static int mods_smmu_driver_probe(struct platform_device *pdev)
return err;
}
#if KERNEL_VERSION(6, 11, 0) <= MODS_KERNEL_VERSION
static void mods_smmu_driver_remove(struct platform_device *pdev)
{
mods_smmu_dev_num = 0;
}
#else
static int mods_smmu_driver_remove(struct platform_device *pdev)
{
mods_smmu_dev_num = 0;
return 0;
}
#endif
static const struct of_device_id of_ids[] = {
{ .compatible = "nvidia,mods_smmu" },