media: Use conftest to find if struct v4l2_async_connection present

Use conftest to find if struct v4l2_async_connection present
or not. The struct v4l2_async_subdev is renamed to struct
v4l2_async_connection with change commit adb2dcd5f2d49d3
("media: v4l: async: Rename v4l2_async_subdev as v4l2_async_connection")
in Linux 6.5

Bug 4346767

Change-Id: Id15c8ce747a8642b7831b79f45e15f26e95744b2
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3028744
Reviewed-by: Shardar Mohammed <smohammed@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
Laxman Dewangan
2023-12-05 18:51:47 +00:00
committed by mobile promotions
parent 350a86106e
commit 234ba9c75f
5 changed files with 26 additions and 6 deletions

View File

@@ -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

View File

@@ -4,6 +4,9 @@
*
* Copyright (c) 2015-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
*/
#include <nvidia/conftest.h>
#include <linux/clk.h>
#include <linux/list.h>
#include <linux/of.h>
@@ -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)

View File

@@ -8,6 +8,8 @@
#ifndef __CAMERA_MC_COMMON_H__
#define __CAMERA_MC_COMMON_H__
#include <nvidia/conftest.h>
#include <media/media-device.h>
#include <media/media-entity.h>
#include <media/sensor_common.h>
@@ -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;

View File

@@ -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

View File

@@ -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 <media/v4l2-async.h>
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.
#