Introduce a dedicated hook to check whether CMTG is supported. This
helper is used in both the enable and disable sequences, while
intel_cmtg_is_allowed() is now used only in enable path.

Signed-off-by: Animesh Manna <[email protected]>
---
 drivers/gpu/drm/i915/display/intel_cmtg.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_cmtg.c 
b/drivers/gpu/drm/i915/display/intel_cmtg.c
index 2576121d0c3d..da08a6e0c4d0 100644
--- a/drivers/gpu/drm/i915/display/intel_cmtg.c
+++ b/drivers/gpu/drm/i915/display/intel_cmtg.c
@@ -82,6 +82,18 @@ static void intel_cmtg_dump_config(struct intel_display 
*display,
                    str_yes_no(cmtg_config->trans_b_secondary));
 }
 
+static bool intel_cmtg_is_supported(const struct intel_crtc_state *crtc_state)
+{
+       struct intel_display *display = to_intel_display(crtc_state);
+       enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+
+       if ((cpu_transcoder == TRANSCODER_A || cpu_transcoder == TRANSCODER_B) 
&&
+           DISPLAY_VER(display) == 35 && intel_crtc_has_type(crtc_state, 
INTEL_OUTPUT_EDP))
+               return true;
+
+       return false;
+}
+
 static bool intel_cmtg_transcoder_is_secondary(struct intel_display *display,
                                               enum transcoder trans)
 {
@@ -190,10 +202,8 @@ void intel_cmtg_sanitize(struct intel_display *display)
 bool intel_cmtg_is_allowed(const struct intel_crtc_state *crtc_state)
 {
        struct intel_display *display = to_intel_display(crtc_state);
-       enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
 
-       if ((cpu_transcoder == TRANSCODER_A || cpu_transcoder == TRANSCODER_B) 
&&
-           DISPLAY_VER(display) == 35 && intel_crtc_has_type(crtc_state, 
INTEL_OUTPUT_EDP) &&
+       if (intel_cmtg_is_supported(crtc_state) &&
            intel_display_power_get_current_dc_state(display) == 
DC_STATE_EN_UPTO_DC3CO)
                return true;
 
-- 
2.29.0

Reply via email to