media: Use conftest to find if v4l2_async_subdev_nf_init() present

Use conftest to find if function v4l2_async_subdev_nf_init() is present
or not.

In Linux 6.5, with change commit bda8953e8c3e7e ("media: v4l: async:
Drop v4l2_async_nf_parse_fwnode_endpoints()"), added the function
v4l2_async_subdev_nf_init() and dropped v4l2_async_nf_init().

Bug 4346767

Change-Id: I345db2acf0a07d05722611d9eacc7134aff0c35a
Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3028766
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 19:25:29 +00:00
committed by mobile promotions
parent 5f77d6d51a
commit 3839cecd1c
4 changed files with 20 additions and 5 deletions

View File

@@ -36,9 +36,6 @@ endif
# Changes done in Linux 6.6 onwards # Changes done in Linux 6.6 onwards
ifeq ($(shell test $(LINUX_VERSION) -ge $(LINUX_VERSION_6_6); echo $$?),0) ifeq ($(shell test $(LINUX_VERSION) -ge $(LINUX_VERSION_6_6); echo $$?),0)
# Rename async_nf_init and v4l2_async_subdev_nf_register
subdir-ccflags-y += -DNV_V4L2_ASYNC_NF_SUBDEVICE_INIT_RENAME
# PCIE EPF driver probe has additional argument as ID # PCIE EPF driver probe has additional argument as ID
subdir-ccflags-y += -DNV_PCIE_EFP_DRIVER_PROBE_HAS_ID_ARG subdir-ccflags-y += -DNV_PCIE_EFP_DRIVER_PROBE_HAS_ID_ARG

View File

@@ -672,7 +672,7 @@ int tegra_vi_graph_init(struct tegra_mc_vi *vi)
list_for_each_entry(entity, &chan->entities, list) list_for_each_entry(entity, &chan->entities, list)
__v4l2_async_notifier_add_subdev(&chan->notifier, &entity->asd); __v4l2_async_notifier_add_subdev(&chan->notifier, &entity->asd);
#else #else
#if defined (NV_V4L2_ASYNC_NF_SUBDEVICE_INIT_RENAME) #if defined (NV_V4L2_ASYNC_SUBDEV_NF_INIT_PRESENT) /* Linux 6.5 */
v4l2_async_subdev_nf_init(&chan->notifier, tegra_channel_find_linked_csi_subdev(chan)); v4l2_async_subdev_nf_init(&chan->notifier, tegra_channel_find_linked_csi_subdev(chan));
list_for_each_entry(entity, &chan->entities, list) { list_for_each_entry(entity, &chan->entities, list) {
struct v4l2_async_connection *asd; struct v4l2_async_connection *asd;
@@ -698,7 +698,7 @@ int tegra_vi_graph_init(struct tegra_mc_vi *vi)
ret = v4l2_async_notifier_register(&vi->v4l2_dev, ret = v4l2_async_notifier_register(&vi->v4l2_dev,
&chan->notifier); &chan->notifier);
#else #else
#if defined (NV_V4L2_ASYNC_NF_SUBDEVICE_INIT_RENAME) #if defined (NV_V4L2_ASYNC_SUBDEV_NF_INIT_PRESENT) /* Linux 6.5 */
ret = v4l2_async_nf_register(&chan->notifier); ret = v4l2_async_nf_register(&chan->notifier);
#else #else
ret = v4l2_async_nf_register(&vi->v4l2_dev, ret = v4l2_async_nf_register(&vi->v4l2_dev,

View File

@@ -144,6 +144,7 @@ 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_write_has_u8_ptr_arg
NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_async_connection_struct_present NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_async_connection_struct_present
NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_async_match_type_enum_present NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_async_match_type_enum_present
NV_CONFTEST_FUNCTION_COMPILE_TESTS += v4l2_async_subdev_nf_init
NV_CONFTEST_FUNCTION_COMPILE_TESTS += vm_area_struct_has_const_vm_flags 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_fd_to_handle
NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_present_drm_gem_prime_handle_to_fd NV_CONFTEST_GENERIC_COMPILE_TESTS += is_export_symbol_present_drm_gem_prime_handle_to_fd

View File

@@ -7358,6 +7358,23 @@ compile_test() {
compile_check_conftest "$CODE" "NV_V4L2_ASYNC_MATCH_TYPE_ENUM_PRESENT" "" "types" compile_check_conftest "$CODE" "NV_V4L2_ASYNC_MATCH_TYPE_ENUM_PRESENT" "" "types"
;; ;;
v4l2_async_subdev_nf_init)
#
# Determine if the function v4l2_async_subdev_nf_init() present or not.
#
# In Linux 6.5, with change commit bda8953e8c3e7e ("media: v4l: async:
# Drop v4l2_async_nf_parse_fwnode_endpoints()"), added the function
# v4l2_async_subdev_nf_init() and dropped v4l2_async_nf_init().
#
CODE="
#include <media/v4l2-async.h>
void conftest_v4l2_async_subdev_nf_init(void) {
v4l2_async_subdev_nf_init();
}"
compile_check_conftest "$CODE" "NV_V4L2_ASYNC_SUBDEV_NF_INIT_PRESENT" "" "functions"
;;
# When adding a new conftest entry, please use the correct format for # When adding a new conftest entry, please use the correct format for
# specifying the relevant upstream Linux kernel commit. # specifying the relevant upstream Linux kernel commit.
# #