Patch "drm/i915: Disable DRRS on IVB/HSW port != A" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    drm/i915: Disable DRRS on IVB/HSW port != A

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     drm-i915-disable-drrs-on-ivb-hsw-port-a.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 3f197b5b7dbef6c9fe4d1a1be2f817da2d346c7e
Author: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
Date:   Fri Jan 28 12:37:50 2022 +0200

    drm/i915: Disable DRRS on IVB/HSW port != A
    
    [ Upstream commit ee59792c97176f12c1da31f29fc4c2aab187f06e ]
    
    Currently we allow DRRS on IVB PCH ports, but we're missing a
    few programming steps meaning it is guaranteed to not work.
    And on HSW DRRS is not supported on anything but port A ever
    as only transcoder EDP has the M2/N2 registers (though I'm
    not sure if HSW ever has eDP on any other port).
    
    Starting from BDW all transcoders have the dynamically
    reprogrammable M/N registers so DRRS could work on any
    port.
    
    Stop initializing DRRS on ports where it cannot possibly work.
    
    Cc: stable@xxxxxxxxxxxxxxx
    Signed-off-by: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx>
    Link: https://patchwork.freedesktop.org/patch/msgid/20220128103757.22461-11-ville.syrjala@xxxxxxxxxxxxxxx
    Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx>
    (cherry picked from commit f0d4ce59f4d48622044933054a0e0cefa91ba15e)
    Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/gpu/drm/i915/display/intel_drrs.c b/drivers/gpu/drm/i915/display/intel_drrs.c
index be9b6d4482f04..3c7d6bf579484 100644
--- a/drivers/gpu/drm/i915/display/intel_drrs.c
+++ b/drivers/gpu/drm/i915/display/intel_drrs.c
@@ -445,6 +445,7 @@ intel_dp_drrs_init(struct intel_connector *connector,
 		   struct drm_display_mode *fixed_mode)
 {
 	struct drm_i915_private *dev_priv = to_i915(connector->base.dev);
+	struct intel_encoder *encoder = connector->encoder;
 	struct drm_display_mode *downclock_mode = NULL;
 
 	INIT_DELAYED_WORK(&dev_priv->drrs.work, intel_edp_drrs_downclock_work);
@@ -456,6 +457,13 @@ intel_dp_drrs_init(struct intel_connector *connector,
 		return NULL;
 	}
 
+	if ((DISPLAY_VER(dev_priv) < 8 && !HAS_GMCH(dev_priv)) &&
+	    encoder->port != PORT_A) {
+		drm_dbg_kms(&dev_priv->drm,
+			    "DRRS only supported on eDP port A\n");
+		return NULL;
+	}
+
 	if (dev_priv->vbt.drrs_type != SEAMLESS_DRRS_SUPPORT) {
 		drm_dbg_kms(&dev_priv->drm, "VBT doesn't support DRRS\n");
 		return NULL;



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux