summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/amd/display/dc/irq
diff options
context:
space:
mode:
authorGaghik Khachatrian <gaghik.khachatrian@amd.com>2026-07-23 22:14:02 -0400
committerAlex Deucher <alexander.deucher@amd.com>2026-08-25 18:25:24 -0400
commitcd2cfe4d1504342b37c3170d290aa8168deff6d7 (patch)
treefeffc5fad609e0d1a28a684cc546a9edc714489c /drivers/gpu/drm/amd/display/dc/irq
parent7dcd85c2241fbdf7c1403d84be0990911e78325b (diff)
drm/amd/display: gate DCE ASIC code behind CONFIG_DRM_AMD_DC_DCE
[Why&How] Refactor to make DCE support optional. Reviewed-by: Dillon Varone <dillon.varone@amd.com> Signed-off-by: Gaghik Khachatrian <gaghik.khachatrian@amd.com> Signed-off-by: Tom Chung <chiahsuan.chung@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/display/dc/irq')
-rw-r--r--drivers/gpu/drm/amd/display/dc/irq/Makefile2
-rw-r--r--drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.c21
-rw-r--r--drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.h9
-rw-r--r--drivers/gpu/drm/amd/display/dc/irq/irq_service.c28
-rw-r--r--drivers/gpu/drm/amd/display/dc/irq/irq_service.h9
5 files changed, 39 insertions, 30 deletions
diff --git a/drivers/gpu/drm/amd/display/dc/irq/Makefile b/drivers/gpu/drm/amd/display/dc/irq/Makefile
index bbec53719c5d..497794a1f1d1 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/Makefile
+++ b/drivers/gpu/drm/amd/display/dc/irq/Makefile
@@ -41,6 +41,7 @@ AMD_DAL_IRQ_DCE60 = $(addprefix $(AMDDALPATH)/dc/irq/dce60/,$(IRQ_DCE60))
AMD_DISPLAY_FILES += $(AMD_DAL_IRQ_DCE60)
endif
+ifdef CONFIG_DRM_AMD_DC_DCE
###############################################################################
# DCE 8x
###############################################################################
@@ -67,6 +68,7 @@ IRQ_DCE12 = irq_service_dce120.o
AMD_DAL_IRQ_DCE12 = $(addprefix $(AMDDALPATH)/dc/irq/dce120/,$(IRQ_DCE12))
AMD_DISPLAY_FILES += $(AMD_DAL_IRQ_DCE12)
+endif # CONFIG_DRM_AMD_DC_DCE
###############################################################################
# DCN 1x
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.c b/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.c
index 8958d286dde1..7f3084c6dd49 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.c
@@ -179,27 +179,6 @@ static struct irq_source_info_funcs vupdate_irq_info_funcs = {
#define dc_underflow_int_entry(reg_num) \
[DC_IRQ_SOURCE_DC ## reg_num ## UNDERFLOW] = dummy_irq_entry()
-bool dal_irq_service_dummy_set(struct irq_service *irq_service,
- const struct irq_source_info *info,
- bool enable)
-{
- (void)enable;
- DC_LOG_ERROR("%s: called for non-implemented irq source, src_id=%u, ext_id=%u\n",
- __func__, info->src_id, info->ext_id);
-
- return false;
-}
-
-bool dal_irq_service_dummy_ack(struct irq_service *irq_service,
- const struct irq_source_info *info)
-{
- DC_LOG_ERROR("%s: called for non-implemented irq source, src_id=%u, ext_id=%u\n",
- __func__, info->src_id, info->ext_id);
-
- return false;
-}
-
-
bool dce110_vblank_set(struct irq_service *irq_service,
const struct irq_source_info *info,
bool enable)
diff --git a/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.h b/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.h
index 9237646c0959..b641e6a9b135 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.h
+++ b/drivers/gpu/drm/amd/display/dc/irq/dce110/irq_service_dce110.h
@@ -36,15 +36,6 @@ enum dc_irq_source to_dal_irq_source_dce110(
uint32_t src_id,
uint32_t ext_id);
-bool dal_irq_service_dummy_set(
- struct irq_service *irq_service,
- const struct irq_source_info *info,
- bool enable);
-
-bool dal_irq_service_dummy_ack(
- struct irq_service *irq_service,
- const struct irq_source_info *info);
-
bool dce110_vblank_set(
struct irq_service *irq_service,
const struct irq_source_info *info,
diff --git a/drivers/gpu/drm/amd/display/dc/irq/irq_service.c b/drivers/gpu/drm/amd/display/dc/irq/irq_service.c
index b595a11c5eaf..f8c8ca266ec1 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/irq_service.c
+++ b/drivers/gpu/drm/amd/display/dc/irq/irq_service.c
@@ -28,14 +28,18 @@
#include "include/irq_service_interface.h"
#include "include/logger_interface.h"
+#if defined(CONFIG_DRM_AMD_DC_DCE)
#include "dce110/irq_service_dce110.h"
+#endif
#if defined(CONFIG_DRM_AMD_DC_SI)
#include "dce60/irq_service_dce60.h"
#endif
+#if defined(CONFIG_DRM_AMD_DC_DCE)
#include "dce80/irq_service_dce80.h"
#include "dce120/irq_service_dce120.h"
+#endif
#include "dcn10/irq_service_dcn10.h"
#include "reg_helper.h"
@@ -105,6 +109,30 @@ void dal_irq_service_set_generic(
dm_write_reg(irq_service->ctx, addr, value);
}
+/*
+ * Base "non-implemented source" irq handlers referenced by irq_service.c and
+ * every DCN irq vtable.
+ */
+bool dal_irq_service_dummy_set(struct irq_service *irq_service,
+ const struct irq_source_info *info,
+ bool enable)
+{
+ (void)enable;
+ DC_LOG_ERROR("%s: called for non-implemented irq source, src_id=%u, ext_id=%u\n",
+ __func__, info->src_id, info->ext_id);
+
+ return false;
+}
+
+bool dal_irq_service_dummy_ack(struct irq_service *irq_service,
+ const struct irq_source_info *info)
+{
+ DC_LOG_ERROR("%s: called for non-implemented irq source, src_id=%u, ext_id=%u\n",
+ __func__, info->src_id, info->ext_id);
+
+ return false;
+}
+
bool dal_irq_service_set(
struct irq_service *irq_service,
enum dc_irq_source source,
diff --git a/drivers/gpu/drm/amd/display/dc/irq/irq_service.h b/drivers/gpu/drm/amd/display/dc/irq/irq_service.h
index bbcef3d2fe33..c13986754a4a 100644
--- a/drivers/gpu/drm/amd/display/dc/irq/irq_service.h
+++ b/drivers/gpu/drm/amd/display/dc/irq/irq_service.h
@@ -90,4 +90,13 @@ bool hpd1_ack(
struct irq_service *irq_service,
const struct irq_source_info *info);
+bool dal_irq_service_dummy_set(
+ struct irq_service *irq_service,
+ const struct irq_source_info *info,
+ bool enable);
+
+bool dal_irq_service_dummy_ack(
+ struct irq_service *irq_service,
+ const struct irq_source_info *info);
+
#endif