diff --git a/drivers/media/platform/tegra/camera/camera_common.c b/drivers/media/platform/tegra/camera/camera_common.c index 1a149b1d..a7285bf8 100644 --- a/drivers/media/platform/tegra/camera/camera_common.c +++ b/drivers/media/platform/tegra/camera/camera_common.c @@ -1,20 +1,5 @@ // SPDX-License-Identifier: GPL-2.0-only -/* - * SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. - * All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU General Public License, - * version 2, as published by the Free Software Foundation. - * - * This program is distributed in the hope it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ +// SPDX-FileCopyrightText: Copyright (c) 2015-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. #include @@ -1052,12 +1037,12 @@ int camera_common_get_mbus_config(struct v4l2_subdev *sd, * then return an error */ cfg->type = V4L2_MBUS_CSI2_DPHY; -#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 18, 0) +#if defined(NV_V4L2_FWNODE_ENDPOINT_STRUCT_HAS_V4L2_MBUS_CONFIG_MIPI_CSI2) /* Linux v5.18 */ + cfg->bus.mipi_csi2.num_data_lanes = 4; +#else cfg->flags = V4L2_MBUS_CSI2_4_LANE | V4L2_MBUS_CSI2_CHANNEL_0 | V4L2_MBUS_CSI2_CONTINUOUS_CLOCK; -#else - cfg->bus.mipi_csi2.num_data_lanes = 4; #endif return 0; diff --git a/scripts/conftest/Makefile b/scripts/conftest/Makefile index 6afc092c..ef6f7d31 100644 --- a/scripts/conftest/Makefile +++ b/scripts/conftest/Makefile @@ -241,6 +241,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_async_subdev_nf_init NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_async_notifier_init NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_async_nf_init_has_v4l2_dev_arg NV_CONFTEST_FUNCTION_COMPILE_TESTS += __v4l2_async_nf_add_subdev +NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_fwnode_endpoint_struct_has_v4l2_mbus_config_mipi_csi2 NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_subdev_pad_ops_struct_has_get_set_frame_interval NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_subdev_pad_ops_struct_has_dv_timings NV_CONFTEST_FUNCTION_COMPILE_TESTS += vm_area_struct_has_const_vm_flags diff --git a/scripts/conftest/conftest.sh b/scripts/conftest/conftest.sh index b0346ce9..7ad4ce6c 100755 --- a/scripts/conftest/conftest.sh +++ b/scripts/conftest/conftest.sh @@ -9014,6 +9014,25 @@ compile_test() { compile_check_conftest "$CODE" "NV_V4L2_ASYNC_NF_ADD_SUBDEV_PRESENT" "" "functions" ;; + v4l2_fwnode_endpoint_struct_has_v4l2_mbus_config_mipi_csi2) + # + # Determine if struct 'v4l2_fwnode_endpoint' has a + # 'v4l2_mbus_config_mipi_csi2' member. + # + # Commit 94d964e58ad6 ("media: v4l2-fwnode: Move bus config + # structure to v4l2_mediabus.h") added this in Linux v5.18. + # + CODE=" + #define _LINUX_EFI_H + #include + struct v4l2_mbus_config_mipi_csi2 *conftest(struct v4l2_fwnode_endpoint *endpoint) { + return &endpoint->bus.mipi_csi2; + } + " + compile_check_conftest "$CODE" \ + "NV_V4L2_FWNODE_ENDPOINT_STRUCT_HAS_V4L2_MBUS_CONFIG_MIPI_CSI2" "" "types" + ;; + v4l2_subdev_pad_ops_struct_has_get_set_frame_interval) # # Determine if struct v4l2_subdev_pad_ops has the 'get_frame_interval'