diff --git a/Makefile b/Makefile index 9b6f5892..4e8729c0 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) -# v4l2_async_subdev is renamed to v4l2_async_connection. -subdir-ccflags-y += -DNV_V4L2_ASYNC_SUBDEV_RENAME - # Rename V4L2_ASYNC_MATCH_FWNODE to V4L2_ASYNC_MATCH_TYPE_FWNODE subdir-ccflags-y += -DNV_V4L2_ASYNC_MATCH_FWNODE_RENAME diff --git a/drivers/media/platform/tegra/camera/vi/graph.c b/drivers/media/platform/tegra/camera/vi/graph.c index dc14fe4e..e3fd4122 100644 --- a/drivers/media/platform/tegra/camera/vi/graph.c +++ b/drivers/media/platform/tegra/camera/vi/graph.c @@ -2,8 +2,11 @@ /* * NVIDIA Media controller graph management * - * Copyright (c) 2015-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * Copyright (c) 2015-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ + +#include + #include #include #include @@ -341,7 +344,7 @@ register_device_error: return ret; } -#if defined(NV_V4L2_ASYNC_SUBDEV_RENAME) +#if defined(NV_V4L2_ASYNC_CONNECTION_STRUCT_PRESENT) /* Linux 6.5 */ static int tegra_vi_graph_notify_bound(struct v4l2_async_notifier *notifier, struct v4l2_subdev *subdev, struct v4l2_async_connection *asd) @@ -380,7 +383,7 @@ static int tegra_vi_graph_notify_bound(struct v4l2_async_notifier *notifier, return -EINVAL; } -#if defined(NV_V4L2_ASYNC_SUBDEV_RENAME) +#if defined(NV_V4L2_ASYNC_CONNECTION_STRUCT_PRESENT) /* Linux 6.5 */ static void tegra_vi_graph_notify_unbind(struct v4l2_async_notifier *notifier, struct v4l2_subdev *subdev, struct v4l2_async_connection *asd) diff --git a/include/media/mc_common.h b/include/media/mc_common.h index f10bde3d..c505183f 100644 --- a/include/media/mc_common.h +++ b/include/media/mc_common.h @@ -2,12 +2,14 @@ /* * Tegra Media controller common APIs * - * Copyright (c) 2012-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved. + * Copyright (c) 2012-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ #ifndef __CAMERA_MC_COMMON_H__ #define __CAMERA_MC_COMMON_H__ +#include + #include #include #include @@ -94,7 +96,7 @@ struct tegra_vi_graph_entity { struct device_node *node; struct media_entity *entity; -#if defined(NV_V4L2_ASYNC_SUBDEV_RENAME) +#if defined(NV_V4L2_ASYNC_CONNECTION_STRUCT_PRESENT) /* Linux 6.5 */ struct v4l2_async_connection asd; #else struct v4l2_async_subdev asd; diff --git a/scripts/conftest/Makefile b/scripts/conftest/Makefile index 4f358f63..dd1b3f34 100644 --- a/scripts/conftest/Makefile +++ b/scripts/conftest/Makefile @@ -150,6 +150,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += tegra_dev_iommu_get_stream_id NV_CONFTEST_FUNCTION_COMPILE_TESTS += tegra_ivc_struct_has_iosys_map NV_CONFTEST_FUNCTION_COMPILE_TESTS += tty_operations_struct_write_has_u8_ptr_arg NV_CONFTEST_FUNCTION_COMPILE_TESTS += tty_operations_struct_set_termios_has_const_ktermios_arg +NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_async_connection_struct_present NV_CONFTEST_FUNCTION_COMPILE_TESTS += vm_area_struct_has_const_vm_flags NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_present_drm_gem_prime_fd_to_handle NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_present_drm_gem_prime_handle_to_fd diff --git a/scripts/conftest/conftest.sh b/scripts/conftest/conftest.sh index f6ff815a..efbc4ef0 100755 --- a/scripts/conftest/conftest.sh +++ b/scripts/conftest/conftest.sh @@ -7476,6 +7476,23 @@ compile_test() { compile_check_conftest "$CODE" "NV_TTY_OPERATIONS_STRUCT_SET_TERMIOS_HAS_CONST_KTERMIOS_ARG" "" "types" ;; + v4l2_async_connection_struct_present) + # + # Determine if the 'struct v4l2_async_connection' present or not. + # + # The struct v4l2_async_subdev is renamed to v4l2_async_connection with change + # commit adb2dcd5f2d49d3 ("media: v4l: async: Rename v4l2_async_subdev + # as v4l2_async_connection") in Linux 6.5 + # + CODE=" + #include + int conftest_v4l2_async_connection_struct_present(void) { + return offsetof(struct v4l2_async_connection, match); + }" + + compile_check_conftest "$CODE" "NV_V4L2_ASYNC_CONNECTION_STRUCT_PRESENT" "" "types" + ;; + # When adding a new conftest entry, please use the correct format for # specifying the relevant upstream Linux kernel commit. #