diff --git a/Makefile b/Makefile index ed6f10bf..996053b1 100644 --- a/Makefile +++ b/Makefile @@ -40,12 +40,6 @@ ifeq ($(shell test $(LINUX_VERSION) -ge $(LINUX_VERSION_6_6); echo $$?),0) export CONFIG_SKIP_CRYPTO=y endif -# Changes done in Linux 6.7 onwards -ifeq ($(shell test $(LINUX_VERSION) -ge $(LINUX_VERSION_6_7); echo $$?),0) -# drm_debugfs_remove_files has root argument -subdir-ccflags-y += -DNV_DRM_DEBUGFS_REMOVE_HAS_ROOT_ARGS -endif - ifeq ($(CONFIG_TEGRA_VIRTUALIZATION),y) subdir-ccflags-y += -DCONFIG_TEGRA_VIRTUALIZATION endif diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index e6091681..3ca7e0f5 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -4,6 +4,8 @@ * Copyright (C) 2012 NVIDIA CORPORATION. All rights reserved. */ +#include + #include #include #include @@ -1746,7 +1748,8 @@ static void tegra_dc_early_unregister(struct drm_crtc *crtc) unsigned int count = ARRAY_SIZE(debugfs_files); struct drm_minor *minor = crtc->dev->primary; struct tegra_dc *dc = to_tegra_dc(crtc); -#if defined(NV_DRM_DEBUGFS_REMOVE_HAS_ROOT_ARGS) + +#if defined(NV_DRM_DEBUGFS_REMOVE_FILES_HAS_ROOT_ARG) /* Linux v6.7 */ struct dentry *root; #ifdef CONFIG_DEBUG_FS diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c index 053fd1e9..1e4f0920 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -3,6 +3,8 @@ * Copyright (C) 2013 NVIDIA Corporation */ +#include + #include #include #include @@ -254,17 +256,11 @@ static void tegra_dsi_early_unregister(struct drm_connector *connector) struct tegra_output *output = connector_to_output(connector); unsigned int count = ARRAY_SIZE(debugfs_files); struct tegra_dsi *dsi = to_dsi(output); -#if defined(NV_DRM_DEBUGFS_REMOVE_HAS_ROOT_ARGS) - struct dentry *root; - -#ifdef CONFIG_DEBUG_FS - root = connector->debugfs_entry; -#else - root = NULL; -#endif +#if defined(NV_DRM_DEBUGFS_REMOVE_FILES_HAS_ROOT_ARG) /* Linux v6.7 */ drm_debugfs_remove_files(dsi->debugfs_files, count, - root, connector->dev->primary); + connector->debugfs_entry, + connector->dev->primary); #else drm_debugfs_remove_files(dsi->debugfs_files, count, connector->dev->primary); diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c index 1b7c5a12..c85c7fdd 100644 --- a/drivers/gpu/drm/tegra/hdmi.c +++ b/drivers/gpu/drm/tegra/hdmi.c @@ -4,6 +4,8 @@ * Copyright (C) 2012 NVIDIA CORPORATION. All rights reserved. */ +#include + #include #include #include @@ -1121,16 +1123,10 @@ static void tegra_hdmi_early_unregister(struct drm_connector *connector) struct drm_minor *minor = connector->dev->primary; unsigned int count = ARRAY_SIZE(debugfs_files); struct tegra_hdmi *hdmi = to_hdmi(output); -#if defined(NV_DRM_DEBUGFS_REMOVE_HAS_ROOT_ARGS) - struct dentry *root; -#ifdef CONFIG_DEBUG_FS - root = connector->debugfs_entry; -#else - root = NULL; -#endif - - drm_debugfs_remove_files(hdmi->debugfs_files, count, root, minor); +#if defined(NV_DRM_DEBUGFS_REMOVE_FILES_HAS_ROOT_ARG) /* Linux v6.7 */ + drm_debugfs_remove_files(hdmi->debugfs_files, count, + connector->debugfs_entry, minor); #else drm_debugfs_remove_files(hdmi->debugfs_files, count, minor); #endif diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c index 890d915c..794ae1ea 100644 --- a/drivers/gpu/drm/tegra/sor.c +++ b/drivers/gpu/drm/tegra/sor.c @@ -1717,17 +1717,11 @@ static void tegra_sor_early_unregister(struct drm_connector *connector) struct tegra_output *output = connector_to_output(connector); unsigned int count = ARRAY_SIZE(debugfs_files); struct tegra_sor *sor = to_sor(output); -#if defined(NV_DRM_DEBUGFS_REMOVE_HAS_ROOT_ARGS) - struct dentry *root; - -#ifdef CONFIG_DEBUG_FS - root = connector->debugfs_entry; -#else - root = NULL; -#endif +#if defined(NV_DRM_DEBUGFS_REMOVE_FILES_HAS_ROOT_ARG) /* Linux v6.7 */ drm_debugfs_remove_files(sor->debugfs_files, count, - root, connector->dev->primary); + connector->debugfs_entry, + connector->dev->primary); #else drm_debugfs_remove_files(sor->debugfs_files, count, diff --git a/scripts/conftest/Makefile b/scripts/conftest/Makefile index 7c25a63c..d9e56ffa 100644 --- a/scripts/conftest/Makefile +++ b/scripts/conftest/Makefile @@ -105,6 +105,7 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += devm_thermal_of_zone_register NV_CONFTEST_FUNCTION_COMPILE_TESTS += disk_check_media_change NV_CONFTEST_FUNCTION_COMPILE_TESTS += dma_slave_config_struct_has_slave_id NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_aperture_remove_framebuffers +NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_debugfs_remove_files_has_root_arg NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_driver_struct_has_irq_enabled_arg NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fb_helper_alloc_info NV_CONFTEST_FUNCTION_COMPILE_TESTS += drm_fb_helper_prepare_has_preferred_bpp_arg diff --git a/scripts/conftest/conftest.sh b/scripts/conftest/conftest.sh index 985a5ba1..1ce2c9fe 100755 --- a/scripts/conftest/conftest.sh +++ b/scripts/conftest/conftest.sh @@ -6688,6 +6688,25 @@ compile_test() { compile_check_conftest "$CODE" "NV_DRM_APERTURE_REMOVE_FRAMEBUFFERS_HAS_NO_PRIMARY_ARG" "" "types" ;; + drm_debugfs_remove_files_has_root_arg) + # + # Determine if the function drm_debugfs_remove_files() has the 'root' argument. + # + # Commit 8e455145d8f1 ("drm/debugfs: rework drm_debugfs_create_files + # implementation v2") added a 'root' argument to the function + # drm_debugfs_remove_files() in Linux v6.7. + # + CODE=" + #include + int conftest_drm_debugfs_remove_files_has_root_arg(const struct drm_info_list *files, + int count, struct dentry *root, + struct drm_minor *minor) { + return drm_debugfs_remove_files(files, count, root, minor); + }" + + compile_check_conftest "$CODE" "NV_DRM_DEBUGFS_REMOVE_FILES_HAS_ROOT_ARG" "" "types" + ;; + drm_driver_struct_has_irq_enabled_arg) # # Determine if the 'drm_driver' structure