diff --git a/drivers/bmi088/bmi088_core.c b/drivers/bmi088/bmi088_core.c index 509550f5..35ba20e3 100644 --- a/drivers/bmi088/bmi088_core.c +++ b/drivers/bmi088/bmi088_core.c @@ -14,6 +14,8 @@ * }; */ +#include + #include #include #include @@ -1627,7 +1629,7 @@ static int bmi_init(struct bmi_state *st, const struct i2c_device_id *id) } -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int bmi_probe(struct i2c_client *client) #else static int bmi_probe(struct i2c_client *client, const struct i2c_device_id *id) diff --git a/drivers/i2c/busses/i2c-nvvrs11.c b/drivers/i2c/busses/i2c-nvvrs11.c index ec5a9899..1f4f947a 100644 --- a/drivers/i2c/busses/i2c-nvvrs11.c +++ b/drivers/i2c/busses/i2c-nvvrs11.c @@ -5,6 +5,8 @@ * Copyright (C) 2022-2023 NVIDIA CORPORATION. All rights reserved. */ +#include + #include #include #include @@ -242,7 +244,7 @@ static int nvvrs11_vendor_info(struct nvvrs11_chip *chip) return 0; } -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int nvvrs11_probe(struct i2c_client *client) #else static int nvvrs11_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/ar1335_common.c b/drivers/media/i2c/ar1335_common.c index facb7c70..313adf3a 100644 --- a/drivers/media/i2c/ar1335_common.c +++ b/drivers/media/i2c/ar1335_common.c @@ -5,6 +5,8 @@ * ar1335.c - AR1335 sensor driver */ +#include + #include #include #include @@ -2361,7 +2363,7 @@ exit: return ret; } -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int cam_probe(struct i2c_client *client) #else static int cam_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/lt6911uxc.c b/drivers/media/i2c/lt6911uxc.c index f9d07c51..3a63c7b6 100644 --- a/drivers/media/i2c/lt6911uxc.c +++ b/drivers/media/i2c/lt6911uxc.c @@ -4,6 +4,8 @@ * Lontium LT6911UXC HDMI-CSI bridge driver */ +#include + #include #include #include @@ -442,7 +444,7 @@ static struct camera_common_sensor_ops lt6911uxc_common_ops = { }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int lt6911uxc_probe(struct i2c_client *client) #else static int lt6911uxc_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/max9295.c b/drivers/media/i2c/max9295.c index 2f69c355..e0a923b2 100644 --- a/drivers/media/i2c/max9295.c +++ b/drivers/media/i2c/max9295.c @@ -4,6 +4,8 @@ * max9295.c - max9295 GMSL Serializer driver */ +#include + #include #include #include @@ -463,7 +465,7 @@ static struct regmap_config max9295_regmap_config = { .cache_type = REGCACHE_RBTREE, }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int max9295_probe(struct i2c_client *client) #else static int max9295_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/max9296.c b/drivers/media/i2c/max9296.c index 0337cb5f..1854ace7 100644 --- a/drivers/media/i2c/max9296.c +++ b/drivers/media/i2c/max9296.c @@ -4,6 +4,8 @@ * max9296.c - max9296 GMSL Deserializer driver */ +#include + #include #include #include @@ -846,7 +848,7 @@ static struct regmap_config max9296_regmap_config = { .cache_type = REGCACHE_RBTREE, }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int max9296_probe(struct i2c_client *client) #else static int max9296_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/max96712.c b/drivers/media/i2c/max96712.c index 8ddbb499..05b5cad5 100644 --- a/drivers/media/i2c/max96712.c +++ b/drivers/media/i2c/max96712.c @@ -7,6 +7,8 @@ /* #define DEBUG */ +#include + #include #include #include @@ -226,7 +228,7 @@ static struct regmap_config max96712_regmap_config = { .cache_type = REGCACHE_RBTREE, }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int max96712_probe(struct i2c_client *client) #else static int max96712_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/nv_ar0234.c b/drivers/media/i2c/nv_ar0234.c index 8df3cc22..527c02f2 100644 --- a/drivers/media/i2c/nv_ar0234.c +++ b/drivers/media/i2c/nv_ar0234.c @@ -4,6 +4,8 @@ * ar0234.c - ar0234 sensor driver */ +#include + #define DEBUG 1 #include #include @@ -1043,7 +1045,7 @@ static int ar0234_board_setup(struct ar0234 *priv) -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int ar0234_probe(struct i2c_client *client) #else static int ar0234_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/nv_hawk_owl.c b/drivers/media/i2c/nv_hawk_owl.c index 0f86d198..2cac7833 100644 --- a/drivers/media/i2c/nv_hawk_owl.c +++ b/drivers/media/i2c/nv_hawk_owl.c @@ -4,6 +4,8 @@ * nv_hawk_owl.c.c - ar0234 sensor driver */ +#include + #define DEBUG 0 #include #include @@ -1433,7 +1435,7 @@ static int ar0234_hawk_owl_deser_ser_program(struct ar0234 *priv) return err; } -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int ar0234_probe(struct i2c_client *client) #else static int ar0234_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/nv_imx185.c b/drivers/media/i2c/nv_imx185.c index 3d24458d..85aeadbf 100644 --- a/drivers/media/i2c/nv_imx185.c +++ b/drivers/media/i2c/nv_imx185.c @@ -5,6 +5,8 @@ * Copyright (c) 2016-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ +#include + #include #include #include @@ -775,7 +777,7 @@ static const struct v4l2_subdev_internal_ops imx185_subdev_internal_ops = { .open = imx185_open, }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int imx185_probe(struct i2c_client *client) #else static int imx185_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/nv_imx219.c b/drivers/media/i2c/nv_imx219.c index 848afb96..f1c683d5 100644 --- a/drivers/media/i2c/nv_imx219.c +++ b/drivers/media/i2c/nv_imx219.c @@ -6,6 +6,8 @@ * */ +#include + #include #include #include @@ -691,7 +693,7 @@ static const struct v4l2_subdev_internal_ops imx219_subdev_internal_ops = { .open = imx219_open, }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int imx219_probe(struct i2c_client *client) #else static int imx219_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/nv_imx274.c b/drivers/media/i2c/nv_imx274.c index 7c347abd..f4d59600 100644 --- a/drivers/media/i2c/nv_imx274.c +++ b/drivers/media/i2c/nv_imx274.c @@ -5,6 +5,8 @@ * Copyright (c) 2015-2023, NVIDIA CORPORATION. All rights reserved. */ +#include + #include #include #include @@ -1260,7 +1262,7 @@ static const struct v4l2_subdev_internal_ops imx274_subdev_internal_ops = { .open = imx274_open, }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int imx274_probe(struct i2c_client *client) #else static int imx274_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/nv_imx318.c b/drivers/media/i2c/nv_imx318.c index 0a7c8184..c871e0b2 100644 --- a/drivers/media/i2c/nv_imx318.c +++ b/drivers/media/i2c/nv_imx318.c @@ -1,6 +1,8 @@ // SPDX-License-Identifier: GPL-2.0 // Copyright (c) 2017-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +#include + #include #include #include @@ -695,7 +697,7 @@ static const struct v4l2_subdev_internal_ops imx318_subdev_internal_ops = { .open = imx318_open, }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int imx318_probe(struct i2c_client *client) #else static int imx318_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/nv_imx390.c b/drivers/media/i2c/nv_imx390.c index 0cac0fd6..d4eecc58 100644 --- a/drivers/media/i2c/nv_imx390.c +++ b/drivers/media/i2c/nv_imx390.c @@ -1,6 +1,8 @@ // SPDX-License-Identifier: GPL-2.0 // Copyright (c) 2018-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +#include + #include #include #include @@ -752,7 +754,7 @@ error: return err; } -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int imx390_probe(struct i2c_client *client) #else static int imx390_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/nv_imx477.c b/drivers/media/i2c/nv_imx477.c index f557c04a..a7c22da0 100644 --- a/drivers/media/i2c/nv_imx477.c +++ b/drivers/media/i2c/nv_imx477.c @@ -8,6 +8,8 @@ * nv_imx477.c - imx477 sensor driver */ +#include + #include #include #include @@ -720,7 +722,7 @@ static const struct v4l2_subdev_internal_ops imx477_subdev_internal_ops = { .open = imx477_open, }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int imx477_probe(struct i2c_client *client) #else static int imx477_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/nv_ov5693.c b/drivers/media/i2c/nv_ov5693.c index 78dc3843..82bf4a12 100644 --- a/drivers/media/i2c/nv_ov5693.c +++ b/drivers/media/i2c/nv_ov5693.c @@ -6,6 +6,8 @@ * */ +#include + #include #include #include @@ -1146,7 +1148,7 @@ static const struct v4l2_subdev_internal_ops ov5693_subdev_internal_ops = { .open = ov5693_open, }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int ov5693_probe(struct i2c_client *client) #else static int ov5693_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/pca9570.c b/drivers/media/i2c/pca9570.c index 0eb765cf..29602ba8 100644 --- a/drivers/media/i2c/pca9570.c +++ b/drivers/media/i2c/pca9570.c @@ -5,6 +5,8 @@ * Copyright (c) 2016-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ +#include + #include #include #include @@ -258,7 +260,7 @@ static struct regmap_config pca9570_regmap_config = { .cache_type = REGCACHE_RBTREE, }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int pca9570_probe(struct i2c_client *client) #else static int pca9570_probe(struct i2c_client *client, diff --git a/drivers/media/i2c/virtual_i2c_mux.c b/drivers/media/i2c/virtual_i2c_mux.c index b1b8b4f1..a5bc06ac 100644 --- a/drivers/media/i2c/virtual_i2c_mux.c +++ b/drivers/media/i2c/virtual_i2c_mux.c @@ -4,6 +4,8 @@ * virtual_i2c_mux.c - virtual i2c mux driver for P3762 & P3783 GMSL boards. */ +#include + #include #include #include @@ -47,7 +49,7 @@ static int virtual_i2c_mux_deselect(struct i2c_mux_core *muxc, u32 chan) return ret; } -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int virtual_i2c_mux_probe(struct i2c_client *client) #else static int virtual_i2c_mux_probe(struct i2c_client *client, diff --git a/drivers/media/platform/tegra/cdi/cdi_dev.c b/drivers/media/platform/tegra/cdi/cdi_dev.c index b6991fd1..d23fa2a6 100644 --- a/drivers/media/platform/tegra/cdi/cdi_dev.c +++ b/drivers/media/platform/tegra/cdi/cdi_dev.c @@ -1,6 +1,8 @@ // SPDX-License-Identifier: GPL-2.0 // Copyright (c) 2015-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +#include + #include #include #include @@ -564,7 +566,7 @@ static void cdi_dev_get_cim_ver(struct device_node *np, struct cdi_dev_info *inf } } -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int cdi_dev_probe(struct i2c_client *client) #else static int cdi_dev_probe(struct i2c_client *client, diff --git a/drivers/media/platform/tegra/isc/isc_dev.c b/drivers/media/platform/tegra/isc/isc_dev.c index 06aabe2b..0f6c97c3 100644 --- a/drivers/media/platform/tegra/isc/isc_dev.c +++ b/drivers/media/platform/tegra/isc/isc_dev.c @@ -1,6 +1,8 @@ // SPDX-License-Identifier: GPL-2.0 // Copyright (c) 2015-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. +#include + #include #include #include @@ -427,7 +429,7 @@ static const struct file_operations isc_dev_fileops = { .release = isc_dev_release, }; -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int isc_dev_probe(struct i2c_client *client) #else static int isc_dev_probe(struct i2c_client *client, diff --git a/drivers/mfd/max77851.c b/drivers/mfd/max77851.c index 95d19fe9..51bea3fb 100644 --- a/drivers/mfd/max77851.c +++ b/drivers/mfd/max77851.c @@ -4,6 +4,8 @@ * Maxim MAX77851 MFD Driver */ +#include + #include #include #include @@ -14,7 +16,6 @@ #include #include #include -#include #define IS_MX_MASTER23(fps) ((fps == MX_FPS_MASTER2) || (fps == MX_FPS_MASTER3)) #define IS_MX_MASTER01(fps) ((fps == MX_FPS_MASTER0) || (fps == MX_FPS_MASTER1)) @@ -503,7 +504,7 @@ static void max77851_pm_power_off(void) FPS_SW_COLD_RST, FPS_SW_COLD_RST); } -#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0) +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int max77851_probe(struct i2c_client *client) #else static int max77851_probe(struct i2c_client *client, diff --git a/drivers/mfd/nvidia-vrs-pseq.c b/drivers/mfd/nvidia-vrs-pseq.c index 1d1563af..eb40c56d 100644 --- a/drivers/mfd/nvidia-vrs-pseq.c +++ b/drivers/mfd/nvidia-vrs-pseq.c @@ -5,6 +5,8 @@ * Copyright (C) 2020-2023 NVIDIA CORPORATION. All rights reserved. */ +#include + #include #include #include @@ -16,7 +18,6 @@ #include #include #include -#include static const struct resource rtc_resources[] = { DEFINE_RES_IRQ(NVVRS_PSEQ_INT_SRC1_RTC), @@ -185,7 +186,7 @@ static int nvvrs_pseq_vendor_info(struct nvvrs_pseq_chip *chip) return 0; } -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int nvvrs_pseq_probe(struct i2c_client *client) #else static int nvvrs_pseq_probe(struct i2c_client *client, diff --git a/drivers/thermal/pex9749-thermal.c b/drivers/thermal/pex9749-thermal.c index 8c785bbd..0a6d3a4d 100644 --- a/drivers/thermal/pex9749-thermal.c +++ b/drivers/thermal/pex9749-thermal.c @@ -185,7 +185,7 @@ static bool is_pex9749(struct i2c_client *client) } } -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int pex9749_probe(struct i2c_client *client) #else static int pex9749_probe(struct i2c_client *client, const struct i2c_device_id *id) diff --git a/drivers/usb/typec/fusb301.c b/drivers/usb/typec/fusb301.c index 6d2b81d4..90a8d7dd 100644 --- a/drivers/usb/typec/fusb301.c +++ b/drivers/usb/typec/fusb301.c @@ -17,6 +17,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + +#include + #include #include #include @@ -1378,7 +1381,7 @@ static int fusb301_pm_resume(struct device *dev) static SIMPLE_DEV_PM_OPS(fusb301_dev_pm_ops, fusb301_pm_suspend, fusb301_pm_resume); -#if KERNEL_VERSION(6, 3, 0) <= LINUX_VERSION_CODE +#if defined(NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG) /* Linux 6.3 */ static int fusb301_probe(struct i2c_client *client) #else static int fusb301_probe(struct i2c_client *client, diff --git a/scripts/conftest/Makefile b/scripts/conftest/Makefile index 64010b8f..b476d754 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_probe_without_i2c_device_id_arg 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 diff --git a/scripts/conftest/conftest.sh b/scripts/conftest/conftest.sh index 3c748e1d..902b2996 100755 --- a/scripts/conftest/conftest.sh +++ b/scripts/conftest/conftest.sh @@ -5400,6 +5400,24 @@ compile_test() { compile_check_conftest "$CODE" "NV_I2C_UNREGISTER_DEVICE_PRESENT" "" "functions" ;; + i2c_driver_struct_probe_without_i2c_device_id_arg) + # + # Determine if function probe() of struct i2c_driver has + # struct i2c_device_id as argument or not. + # + # Removed by commit 03c835f498b54 ("i2c: Switch .probe() to not take an id parameter") + # Linux 6.3 + # + CODE=" + #define _LINUX_EFI_H + #include + void conftest_i2c_driver_struct_probe_without_i2c_device_id_arg(struct i2c_driver *i2cd) { + i2cd->probe(NULL); + }" + + compile_check_conftest "$CODE" "NV_I2C_DRIVER_STRUCT_PROBE_WITHOUT_I2C_DEVICE_ID_ARG" "" "types" + ;; + i2c_driver_struct_has_probe_new) # # Determine if struct i2c_driver has probe_new() present