diff --git a/Makefile b/Makefile index 1cd6658a..9b6f5892 100644 --- a/Makefile +++ b/Makefile @@ -24,9 +24,6 @@ endif # Changes done in Linux 6.6 onwards ifeq ($(shell test $(LINUX_VERSION) -ge $(LINUX_VERSION_6_6); echo $$?),0) -# probe_new is removed from i2c driver structure -subdir-ccflags-y += -DNV_I2C_LEGACY_PROBE_NEW_REMOVED - # v4l2_async_subdev is renamed to v4l2_async_connection. subdir-ccflags-y += -DNV_V4L2_ASYNC_SUBDEV_RENAME diff --git a/drivers/hwmon/f75308.c b/drivers/hwmon/f75308.c index bfb0e96c..6d93bb4e 100644 --- a/drivers/hwmon/f75308.c +++ b/drivers/hwmon/f75308.c @@ -1,5 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only -// Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +// Copyright (c) 2023-2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved. + +#include #include #include @@ -1256,10 +1258,10 @@ static struct i2c_driver f75308_driver = { .of_match_table = of_match_ptr(f75308_match_table), }, .detect = f75308_detect, -#if defined(NV_I2C_LEGACY_PROBE_NEW_REMOVED) - .probe = f75308_probe, -#else +#if defined(NV_I2C_DRIVER_STRUCT_HAS_PROBE_NEW) /* Dropped on Linux 6.6 */ .probe_new = f75308_probe, +#else + .probe = f75308_probe, #endif .remove = f75308_remove, .address_list = f75308_addr, diff --git a/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c b/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c index 456a9760..133cc15a 100644 --- a/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c +++ b/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c @@ -2,9 +2,11 @@ /* * MAXIM DP Serializer driver for MAXIM GMSL Serializers * - * Copyright (c) 2021-2023, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2021-2024, NVIDIA CORPORATION. All rights reserved. */ +#include + #include #include #include @@ -1373,10 +1375,10 @@ static struct i2c_driver max_gmsl_dp_ser_i2c_driver = { .pm = &max_gmsl_dp_ser_pm_ops, #endif }, -#if defined(NV_I2C_LEGACY_PROBE_NEW_REMOVED) - .probe = max_gmsl_dp_ser_probe, -#else +#if defined(NV_I2C_DRIVER_STRUCT_HAS_PROBE_NEW) /* Dropped on Linux 6.6 */ .probe_new = max_gmsl_dp_ser_probe, +#else + .probe = max_gmsl_dp_ser_probe, #endif .remove = max_gmsl_dp_ser_remove, }; diff --git a/drivers/video/tegra/dc/bridge/maxim_gmsl_hdmi_serializer.c b/drivers/video/tegra/dc/bridge/maxim_gmsl_hdmi_serializer.c index 6b744703..a4cefc1c 100644 --- a/drivers/video/tegra/dc/bridge/maxim_gmsl_hdmi_serializer.c +++ b/drivers/video/tegra/dc/bridge/maxim_gmsl_hdmi_serializer.c @@ -2,9 +2,11 @@ /* * MAXIM HDMI Serializer driver for MAXIM GMSL Serializers * - * Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2023-2024, NVIDIA CORPORATION. All rights reserved. */ +#include + #include #include #include @@ -366,10 +368,10 @@ static struct i2c_driver maxim_gmsl_hdmi_ser_i2c_driver = { .pm = &maxim_gmsl_hdmi_ser_pm_ops, #endif }, -#if defined(NV_I2C_LEGACY_PROBE_NEW_REMOVED) - .probe = maxim_gmsl_hdmi_ser_probe, -#else +#if defined(NV_I2C_DRIVER_STRUCT_HAS_PROBE_NEW) /* Dropped on Linux 6.6 */ .probe_new = maxim_gmsl_hdmi_ser_probe, +#else + .probe = maxim_gmsl_hdmi_ser_probe, #endif .remove = maxim_gmsl_hdmi_ser_remove, }; diff --git a/drivers/video/tegra/dc/bridge/ti_fpdlink_dp_serializer.c b/drivers/video/tegra/dc/bridge/ti_fpdlink_dp_serializer.c index 636558af..dfb37dde 100644 --- a/drivers/video/tegra/dc/bridge/ti_fpdlink_dp_serializer.c +++ b/drivers/video/tegra/dc/bridge/ti_fpdlink_dp_serializer.c @@ -1,10 +1,12 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (C) 2022-2023, NVIDIA Corporation. All rights reserved. + * Copyright (C) 2022-2024, NVIDIA Corporation. All rights reserved. * * DS90UH983-Q1 DP to FPD-Link Serializer driver */ +#include + #include #include #include @@ -1039,10 +1041,10 @@ static struct i2c_driver ti_fpdlink_dp_ser_i2c_driver = { .name = "ti_fpdlink_dp_ser", .of_match_table = of_match_ptr(ti_fpdlink_dp_ser_dt_ids), }, -#if defined(NV_I2C_LEGACY_PROBE_NEW_REMOVED) - .probe = ti_fpdlink_dp_ser_probe, -#else +#if defined(NV_I2C_DRIVER_STRUCT_HAS_PROBE_NEW) /* Dropped on Linux 6.6 */ .probe_new = ti_fpdlink_dp_ser_probe, +#else + .probe = ti_fpdlink_dp_ser_probe, #endif .remove = ti_fpdlink_dp_ser_remove, }; diff --git a/scripts/conftest/Makefile b/scripts/conftest/Makefile index ebe4c78e..64010b8f 100644 --- a/scripts/conftest/Makefile +++ b/scripts/conftest/Makefile @@ -117,6 +117,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += ethtool_ops_get_set_coalesce_has_coal_and_ NV_CONFTEST_FUNCTION_COMPILE_TESTS += ethtool_ops_get_set_ringparam_has_ringparam_and_extack_args NV_CONFTEST_FUNCTION_COMPILE_TESTS += get_file_rcu_has_double_ptr_file_arg NV_CONFTEST_FUNCTION_COMPILE_TESTS += get_user_pages +NV_CONFTEST_FUNCTION_COMPILE_TESTS += i2c_driver_struct_has_probe_new NV_CONFTEST_FUNCTION_COMPILE_TESTS += iio_dev_opaque_has_mlock NV_CONFTEST_FUNCTION_COMPILE_TESTS += iommu_map_has_gfp_arg NV_CONFTEST_FUNCTION_COMPILE_TESTS += kthread_complete_and_exit diff --git a/scripts/conftest/conftest.sh b/scripts/conftest/conftest.sh index cb64c964..3c748e1d 100755 --- a/scripts/conftest/conftest.sh +++ b/scripts/conftest/conftest.sh @@ -5400,6 +5400,22 @@ compile_test() { compile_check_conftest "$CODE" "NV_I2C_UNREGISTER_DEVICE_PRESENT" "" "functions" ;; + i2c_driver_struct_has_probe_new) + # + # Determine if struct i2c_driver has probe_new() present + # + # Added by commit 5eb1e6e459cf ("i2c: Drop legacy callback .probe_new()") + # + CODE=" + #define _LINUX_EFI_H + #include + int conftest_i2c_driver_struct_has_probe_new(void) { + return offsetof(struct i2c_driver, probe_new); + }" + + compile_check_conftest "$CODE" "NV_I2C_DRIVER_STRUCT_HAS_PROBE_NEW" "" "types" + ;; + of_get_named_gpio) # # Determine if of_get_named_gpio() function is present