diff --git a/drivers/media/i2c/virtual_i2c_mux.c b/drivers/media/i2c/virtual_i2c_mux.c index e85d3337..8e461108 100644 --- a/drivers/media/i2c/virtual_i2c_mux.c +++ b/drivers/media/i2c/virtual_i2c_mux.c @@ -1,5 +1,5 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -/* Copyright (c) 2023, NVIDIA CORPORATION & AFFILIATES. All Rights Reserved. */ +// SPDX-License-Identifier: GPL-2.0-only +// SPDX-FileCopyrightText: Copyright (c) 2023-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. /* * virtual_i2c_mux.c - virtual i2c mux driver for P3762 & P3783 GMSL boards. */ @@ -87,7 +87,11 @@ static int virtual_i2c_mux_probe(struct i2c_client *client, for (chan = 0; chan < children; chan++) { pr_info("%s: chan = %d\n",__func__, chan); +#if defined(NV_I2C_MUX_ADD_ADAPTER_HAS_NO_CLASS_ARG) + ret = i2c_mux_add_adapter(muxc, 0, chan); +#else ret = i2c_mux_add_adapter(muxc, 0, chan, 0); +#endif if (ret) goto err_children; } diff --git a/scripts/conftest/Makefile b/scripts/conftest/Makefile index cfee0789..3dabb976 100644 --- a/scripts/conftest/Makefile +++ b/scripts/conftest/Makefile @@ -128,6 +128,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += i2c_new_client_device 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 += i2c_driver_struct_remove_return_type_int +NV_CONFTEST_FUNCTION_COMPILE_TESTS += i2c_mux_add_adapter_has_no_class_argument 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 68d94792..950e7300 100755 --- a/scripts/conftest/conftest.sh +++ b/scripts/conftest/conftest.sh @@ -5467,6 +5467,23 @@ compile_test() { compile_check_conftest "$CODE" "NV_I2C_DRIVER_STRUCT_REMOVE_RETURN_TYPE_INT" "" "types" ;; + i2c_mux_add_adapter_has_no_class_argument) + # + # Determine if the i2c_mux_add_adapter() has no class argument. + # + # Commit fec1982d7072 ("i2c: mux: Remove class argument from i2c_mux_add_adapter()") + # removed the 'class' argument from i2c_mux_add_adapter() in Linux v6.10. + # + CODE=" + #define _LINUX_EFI_H + #include + int conftest_i2c_mux_add_adapter_has_no_class_argument(struct i2c_mux_core *muxc) { + return i2c_mux_add_adapter(muxc, 0, 0); + }" + + compile_check_conftest "$CODE" "NV_I2C_MUX_ADD_ADAPTER_HAS_NO_CLASS_ARG" "" "types" + ;; + of_get_named_gpio) # # Determine if of_get_named_gpio() function is present