]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i915/psr: Avoid DPCD reads when panel does not support PSR
authorDhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Fri, 11 May 2018 19:51:40 +0000 (12:51 -0700)
committerJani Nikula <jani.nikula@intel.com>
Thu, 24 May 2018 13:15:00 +0000 (16:15 +0300)
Ville noticed that we are unncessarily reading DPCD's after knowing
panel did not support PSR. Looks like this check that was present
earlier got removed unintentionally, let's put it back.

While we do this, add the PSR version number in the debug print.

Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Tarun Vyas <tarun.vyas@intel.com>
Reviewed-by: Vathsala Nagaraju <vathsala.nagaraju@intel.com>
Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20180511195145.3829-1-dhinakaran.pandiyan@intel.com
drivers/gpu/drm/i915/intel_psr.c

index c08e4b4c07e14ad0d157d577e235ded8c3e3f813..f0ff005bc86a31edac3d6230207f747e0db5eb35 100644 (file)
@@ -246,10 +246,12 @@ void intel_psr_init_dpcd(struct intel_dp *intel_dp)
        drm_dp_dpcd_read(&intel_dp->aux, DP_PSR_SUPPORT, intel_dp->psr_dpcd,
                         sizeof(intel_dp->psr_dpcd));
 
-       if (intel_dp->psr_dpcd[0]) {
-               dev_priv->psr.sink_support = true;
-               DRM_DEBUG_KMS("Detected EDP PSR Panel.\n");
-       }
+       if (!intel_dp->psr_dpcd[0])
+               return;
+
+       DRM_DEBUG_KMS("eDP panel supports PSR version %x\n",
+                     intel_dp->psr_dpcd[0]);
+       dev_priv->psr.sink_support = true;
 
        if (INTEL_GEN(dev_priv) >= 9 &&
            (intel_dp->psr_dpcd[0] == DP_PSR2_WITH_Y_COORD_IS_SUPPORTED)) {
@@ -266,8 +268,8 @@ void intel_psr_init_dpcd(struct intel_dp *intel_dp)
                 */
                dev_priv->psr.sink_psr2_support =
                                intel_dp_get_y_coord_required(intel_dp);
-               DRM_DEBUG_KMS("PSR2 %s on sink", dev_priv->psr.sink_psr2_support
-                             ? "supported" : "not supported");
+               DRM_DEBUG_KMS("PSR2 %ssupported\n",
+                             dev_priv->psr.sink_psr2_support ? "" : "not ");
 
                if (dev_priv->psr.sink_psr2_support) {
                        dev_priv->psr.colorimetry_support =