diff --git a/Makefile b/Makefile index 9bfe5398..58d1dfcd 100644 --- a/Makefile +++ b/Makefile @@ -36,9 +36,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..75c1a488 100644 --- a/drivers/media/platform/tegra/camera/vi/graph.c +++ b/drivers/media/platform/tegra/camera/vi/graph.c @@ -4,6 +4,9 @@ * * Copyright (c) 2015-2023 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..cab00b63 100644 --- a/include/media/mc_common.h +++ b/include/media/mc_common.h @@ -8,6 +8,8 @@ #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 6896a838..96f3aa11 100644 --- a/scripts/conftest/Makefile +++ b/scripts/conftest/Makefile @@ -142,6 +142,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += tc_taprio_qopt_offload_struct_has_cmd 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 += 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 41abd675..83af32a9 100755 --- a/scripts/conftest/conftest.sh +++ b/scripts/conftest/conftest.sh @@ -7325,6 +7325,23 @@ compile_test() { compile_check_conftest "$CODE" "NV_TTY_OPERATIONS_STRUCT_WRITE_HAS_U8_PTR_ARG" "" "functions" ;; + 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. #