As all cmtg registers offset from base cmtg register is similar to
normal transcoder register, so follow existing way of defining
transcoder register for cmtg as well. Add base CMTG offset in
struct _display_device_info which will be used to derive the actual
register address for platform supporting CMTG.

Suggested-by: Ville Syrjälä <[email protected]>
Signed-off-by: Animesh Manna <[email protected]>
---
 .../gpu/drm/i915/display/intel_display_device.c    | 14 ++++++++++++++
 .../gpu/drm/i915/display/intel_display_limits.h    |  2 ++
 2 files changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c 
b/drivers/gpu/drm/i915/display/intel_display_device.c
index 7260990038dd..be43e9c833ad 100644
--- a/drivers/gpu/drm/i915/display/intel_display_device.c
+++ b/drivers/gpu/drm/i915/display/intel_display_device.c
@@ -101,6 +101,8 @@ static const struct intel_display_device_info no_display = 
{};
 #define TRANSCODER_EDP_OFFSET 0x6f000
 #define TRANSCODER_DSI0_OFFSET 0x6b000
 #define TRANSCODER_DSI1_OFFSET 0x6b800
+#define TRANSCODER_CMTG0_OFFSET 0x6F000
+#define TRANSCODER_CMTG1_OFFSET 0x6F100
 
 #define CURSOR_A_OFFSET 0x70080
 #define CURSOR_B_OFFSET 0x700c0
@@ -1371,6 +1373,18 @@ static const struct intel_display_device_info 
xe2_hpd_display = {
        XE_LPDP_FEATURES,
        .__runtime_defaults.port_mask = BIT(PORT_A) |
                BIT(PORT_TC1) | BIT(PORT_TC2) | BIT(PORT_TC3) | BIT(PORT_TC4),
+       .trans_offsets = {
+               [TRANSCODER_A] = TRANSCODER_A_OFFSET,
+               [TRANSCODER_B] = TRANSCODER_B_OFFSET,
+               [TRANSCODER_C] = TRANSCODER_C_OFFSET,
+               [TRANSCODER_D] = TRANSCODER_D_OFFSET,
+               [TRANSCODER_CMTG0] = TRANSCODER_CMTG0_OFFSET,
+               [TRANSCODER_CMTG1] = TRANSCODER_CMTG1_OFFSET,
+       },
+       .__runtime_defaults.cpu_transcoder_mask =
+               BIT(TRANSCODER_A) | BIT(TRANSCODER_B) |
+               BIT(TRANSCODER_C) | BIT(TRANSCODER_D) |
+               BIT(TRANSCODER_CMTG0) | BIT(TRANSCODER_CMTG1),
 };
 
 static const u16 mtl_u_ids[] = {
diff --git a/drivers/gpu/drm/i915/display/intel_display_limits.h 
b/drivers/gpu/drm/i915/display/intel_display_limits.h
index 453f7b720815..fc4321972f9e 100644
--- a/drivers/gpu/drm/i915/display/intel_display_limits.h
+++ b/drivers/gpu/drm/i915/display/intel_display_limits.h
@@ -41,6 +41,8 @@ enum transcoder {
         * doesn't need to stay fixed.
         */
        TRANSCODER_EDP,
+       TRANSCODER_CMTG0 = TRANSCODER_EDP,
+       TRANSCODER_CMTG1,
        TRANSCODER_DSI_0,
        TRANSCODER_DSI_1,
        TRANSCODER_DSI_A = TRANSCODER_DSI_0,    /* legacy DSI */
-- 
2.29.0

Reply via email to