On Tue, 2018-03-06 at 22:38 +0200, Ville Syrjälä wrote: > On Tue, Mar 06, 2018 at 12:33:55PM -0800, Dhinakaran Pandiyan wrote: > > In fact, apply the Cannonlake resolution check for all >= Gen-10 platforms > > to be safe. > > > > v3: Update GLK too. (Ville) > > Longer variable names. > > if-else in place of ternary operator. > > v2: Use local variables for resolution limits and print them (Ville) > > > > Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Cc: Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx> > > Cc: Elio Martinez Monroy <elio.martinez.monroy@xxxxxxxxx> > > Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@xxxxxxxxx> > > --- > > drivers/gpu/drm/i915/intel_psr.c | 21 +++++++++++++++------ > > 1 file changed, 15 insertions(+), 6 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/intel_psr.c b/drivers/gpu/drm/i915/intel_psr.c > > index 05770790a4e9..23175c5c4a50 100644 > > --- a/drivers/gpu/drm/i915/intel_psr.c > > +++ b/drivers/gpu/drm/i915/intel_psr.c > > @@ -451,8 +451,9 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp, > > { > > struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); > > struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); > > - const struct drm_display_mode *adjusted_mode = > > - &crtc_state->base.adjusted_mode; > > + int crtc_hdisplay = crtc_state->base.adjusted_mode.crtc_hdisplay; > > + int crtc_vdisplay = crtc_state->base.adjusted_mode.crtc_vdisplay; > ^^^^^ > The crtc_ prefix is pretty much redundant. display_mode has members named vdisplay and hdisplay and this avoids any potential confusion. > > > + int psr_max_h = 0, psr_max_v = 0; > > And this still reads as "max height" to my brain, but meh. And here I thought this version leaves no room for confusion :) I should just ask someone else to write this patch. > > > > > /* > > * FIXME psr2_support is messed up. It's both computed > > @@ -462,10 +463,18 @@ static bool intel_psr2_config_valid(struct intel_dp *intel_dp, > > if (!dev_priv->psr.psr2_support) > > return false; > > > > - /* PSR2 is restricted to work with panel resolutions up to 3640x2304 */ > > - if (adjusted_mode->crtc_hdisplay > 3640 || > > - adjusted_mode->crtc_vdisplay > 2304) { > > - DRM_DEBUG_KMS("PSR2 not enabled, panel resolution too big\n"); > > + if (INTEL_GEN(dev_priv) >= 10 || IS_GEMINILAKE(dev_priv)) { > > + psr_max_h = 4096; > > + psr_max_v = 2304; > > + } else if (IS_GEN9(dev_priv)) { > > + psr_max_h = 3640; > > + psr_max_v = 2304; > > + } > > pre-SKL? No PSR2 on pre-skl If we do somehow end up here, returning false and printing a debug message will be useful. > > > + > > + if (crtc_hdisplay > psr_max_h || crtc_vdisplay > psr_max_v) { > > + DRM_DEBUG_KMS("PSR2 not enabled, resolution %dx%d > max supported %dx%d\n", > > + crtc_hdisplay, crtc_vdisplay, > > + psr_max_h, psr_max_v); > > return false; > > } > > > > -- > > 2.14.1 > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx