diff --git a/Makefile b/Makefile index 4fa23ab3..a39943a1 100644 --- a/Makefile +++ b/Makefile @@ -40,9 +40,6 @@ ifeq ($(shell test $(LINUX_VERSION) -ge $(LINUX_VERSION_6_6); echo $$?),0) export CONFIG_SND_SOC_MOVE_DAI_PROBE_TO_OPS=y subdir-ccflags-y += -DNV_SND_SOC_DAI_OPS_STRUCT_HAS_PROBE_ARG -# probe_new is removed from i2c driver structure -subdir-ccflags-y += -DNV_I2C_LEGACY_PROBE_NEW_REMOVED - # API changes to replace u8 with unsigned char subdir-ccflags-y += -DNV_TTY_SERIAL_TYPE_U8_CHANGE diff --git a/drivers/hwmon/f75308.c b/drivers/hwmon/f75308.c index bfb0e96c..a9a3f74f 100644 --- a/drivers/hwmon/f75308.c +++ b/drivers/hwmon/f75308.c @@ -1,6 +1,8 @@ // SPDX-License-Identifier: GPL-2.0-only // Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +#include + #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..412a6969 100644 --- a/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c +++ b/drivers/video/tegra/dc/bridge/maxim_gmsl_dp_serializer.c @@ -5,6 +5,8 @@ * Copyright (c) 2021-2023, 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 7318614c..11e9d921 100644 --- a/drivers/video/tegra/dc/bridge/maxim_gmsl_hdmi_serializer.c +++ b/drivers/video/tegra/dc/bridge/maxim_gmsl_hdmi_serializer.c @@ -5,6 +5,8 @@ * Copyright (c) 2023, 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..74daaced 100644 --- a/drivers/video/tegra/dc/bridge/ti_fpdlink_dp_serializer.c +++ b/drivers/video/tegra/dc/bridge/ti_fpdlink_dp_serializer.c @@ -5,6 +5,8 @@ * 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 35d21f82..fb4fbee1 100644 --- a/scripts/conftest/Makefile +++ b/scripts/conftest/Makefile @@ -116,6 +116,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 b05c2b79..274ad640 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