drm/tegra: move disply related code under CONFIG_DRM_TEGRA_HAVE_DISPLAY

As Tegra DRM driver display support is not needed for recent chips,
move the related codes under CONFIG_DRM_TEGRA_HAVE_DISPLAY and enable
that flag based on legacy chip configs accordingly.

Jira HOSTX-5833

Change-Id: Iddf884f5abdfe2500e7195778bc77f9423acc2d3
Signed-off-by: Santosh BS <santoshb@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3292246
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
Santosh BS
2025-01-28 13:50:27 +00:00
committed by Jon Hunter
parent b5acbd1bfc
commit 91751dfb74
5 changed files with 24 additions and 39 deletions

View File

@@ -8,6 +8,13 @@ export CONFIG_HOST1X_HAVE_SYNCPT_BASE=y
subdir-ccflags-y += -DCONFIG_HOST1X_HAVE_SYNCPT_BASE subdir-ccflags-y += -DCONFIG_HOST1X_HAVE_SYNCPT_BASE
endif endif
ifneq ($(filter y, $(CONFIG_ARCH_TEGRA_2x_SOC) $(CONFIG_ARCH_TEGRA_3x_SOC) \
$(CONFIG_ARCH_TEGRA_114_SOC) $(CONFIG_ARCH_TEGRA_124_SOC) $(CONFIG_ARCH_TEGRA_132_SOC) \
$(CONFIG_ARCH_TEGRA_210_SOC) $(CONFIG_ARCH_TEGRA_186_SOC) $(CONFIG_ARCH_TEGRA_194_SOC)),)
export CONFIG_DRM_TEGRA_HAVE_DISPLAY=y
subdir-ccflags-y += -DCONFIG_DRM_TEGRA_HAVE_DISPLAY
endif
ifdef CONFIG_DRM ifdef CONFIG_DRM
obj-m += drm/tegra/ obj-m += drm/tegra/
endif endif

View File

@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
# Copyright (c) 2022-2024, NVIDIA CORPORATION. All rights reserved. # Copyright (c) 2022-2025, NVIDIA CORPORATION. All rights reserved.
ccflags-$(CONFIG_DRM_TEGRA_DEBUG) += -DDEBUG ccflags-$(CONFIG_DRM_TEGRA_DEBUG) += -DDEBUG
ccflags-y += -I$(srctree.nvidia-oot)/drivers/gpu/drm/tegra/include ccflags-y += -I$(srctree.nvidia-oot)/drivers/gpu/drm/tegra/include
@@ -14,9 +14,7 @@ tegra-drm-y := \
fb.o \ fb.o \
virt.o virt.o
ifneq ($(filter y, $(CONFIG_ARCH_TEGRA_2x_SOC) $(CONFIG_ARCH_TEGRA_3x_SOC) \ ifeq ($(CONFIG_DRM_TEGRA_HAVE_DISPLAY),y)
$(CONFIG_ARCH_TEGRA_114_SOC) $(CONFIG_ARCH_TEGRA_124_SOC) $(CONFIG_ARCH_TEGRA_132_SOC) \
$(CONFIG_ARCH_TEGRA_210_SOC) $(CONFIG_ARCH_TEGRA_186_SOC) $(CONFIG_ARCH_TEGRA_194_SOC)),)
tegra-drm-y += \ tegra-drm-y += \
dp.o \ dp.o \
hub.o \ hub.o \

View File

@@ -1,7 +1,7 @@
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* /*
* Copyright (C) 2012 Avionic Design GmbH * Copyright (C) 2012 Avionic Design GmbH
* SPDX-FileCopyrightText: Copyright (c) 2012-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. * SPDX-FileCopyrightText: Copyright (c) 2012-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
*/ */
#include <nvidia/conftest.h> #include <nvidia/conftest.h>
@@ -2624,7 +2624,9 @@ static int tegra_dc_init(struct host1x_client *client)
* DC has been reset by now, so VBLANK syncpoint can be released * DC has been reset by now, so VBLANK syncpoint can be released
* for general use. * for general use.
*/ */
#ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
host1x_syncpt_release_vblank_reservation(client, 26 + dc->pipe); host1x_syncpt_release_vblank_reservation(client, 26 + dc->pipe);
#endif
/* /*
* XXX do not register DCs with no window groups because we cannot * XXX do not register DCs with no window groups because we cannot

View File

@@ -60,9 +60,7 @@ static int tegra_atomic_check(struct drm_device *drm,
if (err < 0) if (err < 0)
return err; return err;
#if IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) || \ #ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
return tegra_display_hub_atomic_check(drm, state); return tegra_display_hub_atomic_check(drm, state);
#else #else
return 0; return 0;
@@ -75,9 +73,7 @@ static const struct drm_mode_config_funcs tegra_drm_mode_config_funcs = {
.atomic_commit = drm_atomic_helper_commit, .atomic_commit = drm_atomic_helper_commit,
}; };
#if IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) || \ #ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
static void tegra_atomic_post_commit(struct drm_device *drm, static void tegra_atomic_post_commit(struct drm_device *drm,
struct drm_atomic_state *old_state) struct drm_atomic_state *old_state)
{ {
@@ -1308,9 +1304,7 @@ static int host1x_drm_probe(struct host1x_device *dev)
iova_cache_put(); iova_cache_put();
} }
#if IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) || \ #ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
if (tegra->hub) { if (tegra->hub) {
err = tegra_display_hub_prepare(tegra->hub); err = tegra_display_hub_prepare(tegra->hub);
if (err < 0) if (err < 0)
@@ -1359,9 +1353,7 @@ static int host1x_drm_probe(struct host1x_device *dev)
return 0; return 0;
hub: hub:
#if IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) || \ #ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
if (tegra->hub) if (tegra->hub)
tegra_display_hub_cleanup(tegra->hub); tegra_display_hub_cleanup(tegra->hub);
device: device:
@@ -1399,9 +1391,7 @@ static int host1x_drm_remove(struct host1x_device *dev)
drm_atomic_helper_shutdown(drm); drm_atomic_helper_shutdown(drm);
drm_mode_config_cleanup(drm); drm_mode_config_cleanup(drm);
#if IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) || \ #ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
if (tegra->hub) if (tegra->hub)
tegra_display_hub_cleanup(tegra->hub); tegra_display_hub_cleanup(tegra->hub);
#endif #endif
@@ -1526,9 +1516,7 @@ static struct host1x_driver host1x_drm_driver = {
}; };
static struct platform_driver * const drivers[] = { static struct platform_driver * const drivers[] = {
#if IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) || \ #ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
&tegra_display_hub_driver, &tegra_display_hub_driver,
&tegra_dc_driver, &tegra_dc_driver,
&tegra_hdmi_driver, &tegra_hdmi_driver,

View File

@@ -1,7 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
/* /*
* Copyright (C) 2012 Avionic Design GmbH * Copyright (C) 2012 Avionic Design GmbH
* Copyright (C) 2012-2024 NVIDIA CORPORATION. All rights reserved. * Copyright (C) 2012-2025 NVIDIA CORPORATION. All rights reserved.
*/ */
#ifndef HOST1X_DRM_H #ifndef HOST1X_DRM_H
@@ -12,9 +12,7 @@
#include <linux/gpio/consumer.h> #include <linux/gpio/consumer.h>
#include <drm/drm_atomic.h> #include <drm/drm_atomic.h>
#if IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) || \ #ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
#include <drm/drm_bridge.h> #include <drm/drm_bridge.h>
#include <drm/drm_edid.h> #include <drm/drm_edid.h>
#include <drm/drm_encoder.h> #include <drm/drm_encoder.h>
@@ -24,9 +22,7 @@
#include <uapi/drm/tegra_drm_next.h> #include <uapi/drm/tegra_drm_next.h>
#include "gem.h" #include "gem.h"
#if IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) || \ #ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
#include "hub.h" #include "hub.h"
#endif #endif
#include <trace/events/trace.h> #include <trace/events/trace.h>
@@ -57,9 +53,7 @@ struct tegra_drm {
unsigned int pitch_align; unsigned int pitch_align;
unsigned int num_crtcs; unsigned int num_crtcs;
#if IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) || \ #ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
struct tegra_display_hub *hub; struct tegra_display_hub *hub;
#endif #endif
}; };
@@ -150,9 +144,7 @@ void *tegra_drm_alloc(struct tegra_drm *tegra, size_t size, dma_addr_t *iova);
void tegra_drm_free(struct tegra_drm *tegra, size_t size, void *virt, void tegra_drm_free(struct tegra_drm *tegra, size_t size, void *virt,
dma_addr_t iova); dma_addr_t iova);
#if IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) || \ #ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
struct cec_notifier; struct cec_notifier;
struct tegra_output { struct tegra_output {
@@ -226,9 +218,7 @@ static inline void tegra_fbdev_setup(struct drm_device *drm)
{ } { }
#endif #endif
#if IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC) || \ #ifdef CONFIG_DRM_TEGRA_HAVE_DISPLAY
IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_132_SOC) || \
IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_186_SOC) || IS_ENABLED(CONFIG_ARCH_TEGRA_194_SOC)
extern struct platform_driver tegra_display_hub_driver; extern struct platform_driver tegra_display_hub_driver;
extern struct platform_driver tegra_dc_driver; extern struct platform_driver tegra_dc_driver;
extern struct platform_driver tegra_hdmi_driver; extern struct platform_driver tegra_hdmi_driver;