From 5b6fed01995bf4f3a62318e4de1cf34f4a50300d Mon Sep 17 00:00:00 2001 From: Laxman Dewangan Date: Tue, 21 Nov 2023 12:09:20 +0000 Subject: [PATCH] gpu: drm: Add root argument on drm_debugfs_remove_files() for Linux 6.7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add root argument in the call drm_debugfs_remove_files() for Linux 6.7 as per below change from mainline: *** commit 8e455145d8f163aefa6b9cc29478e0a9f82276e6 Author: Christian König drm/debugfs: rework drm_debugfs_create_files implementation v2 *** Bug 4346767 Change-Id: Iadc878d66b093fd72b4524052dee9dbb24e82c1d Signed-off-by: Laxman Dewangan Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3019998 (cherry picked from commit b17be80108937e89c28a62b83d5c6ec6b2164575) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3031427 Reviewed-by: Jonathan Hunter Tested-by: Jonathan Hunter GVS: Gerrit_Virtual_Submit --- Makefile | 6 ++++++ drivers/gpu/drm/tegra/dc.c | 11 +++++++++++ drivers/gpu/drm/tegra/dsi.c | 12 ++++++++++++ drivers/gpu/drm/tegra/hdmi.c | 11 +++++++++++ drivers/gpu/drm/tegra/sor.c | 13 +++++++++++++ 5 files changed, 53 insertions(+) diff --git a/Makefile b/Makefile index deb62465..7e591c48 100644 --- a/Makefile +++ b/Makefile @@ -51,6 +51,12 @@ subdir-ccflags-y += -DNV_V4L2_ASYNC_NF_SUBDEVICE_INIT_RENAME 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 df9b9274..e6091681 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -1746,8 +1746,19 @@ 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) + struct dentry *root; +#ifdef CONFIG_DEBUG_FS + root = crtc->debugfs_entry; +#else + root = NULL; +#endif + + drm_debugfs_remove_files(dc->debugfs_files, count, root, minor); +#else drm_debugfs_remove_files(dc->debugfs_files, count, minor); +#endif kfree(dc->debugfs_files); dc->debugfs_files = NULL; } diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c index b5a06b16..053fd1e9 100644 --- a/drivers/gpu/drm/tegra/dsi.c +++ b/drivers/gpu/drm/tegra/dsi.c @@ -254,9 +254,21 @@ 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 + drm_debugfs_remove_files(dsi->debugfs_files, count, + root, connector->dev->primary); +#else drm_debugfs_remove_files(dsi->debugfs_files, count, connector->dev->primary); +#endif kfree(dsi->debugfs_files); dsi->debugfs_files = NULL; } diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c index 199cb6c3..1b7c5a12 100644 --- a/drivers/gpu/drm/tegra/hdmi.c +++ b/drivers/gpu/drm/tegra/hdmi.c @@ -1121,8 +1121,19 @@ 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); +#else drm_debugfs_remove_files(hdmi->debugfs_files, count, minor); +#endif kfree(hdmi->debugfs_files); hdmi->debugfs_files = NULL; } diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c index 629db1c4..890d915c 100644 --- a/drivers/gpu/drm/tegra/sor.c +++ b/drivers/gpu/drm/tegra/sor.c @@ -1717,9 +1717,22 @@ 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 + + drm_debugfs_remove_files(sor->debugfs_files, count, + root, connector->dev->primary); +#else drm_debugfs_remove_files(sor->debugfs_files, count, connector->dev->primary); +#endif kfree(sor->debugfs_files); sor->debugfs_files = NULL; }