On Tue, Apr 11, 2023 at 10:42 AM Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > > On Tue, Apr 11, 2023 at 05:34:08PM +0000, Manasi Navare wrote: > > In the function intel_dp_max_bpp(), currently if bpc < 0 in case of error, > > we return 0 instead of returning an err code of -EINVAL. > > This throws off the logic in the calling function. > > What logic? The caller doesn't expect to get an error. If this returns a 0, we end up using limits.max_bpp = 0 and in intel_dp_compute_link_config_wide(), since max_bpp is 0, it exits this for loop: for (bpp = limits->max_bpp; bpp >= limits->min_bpp; bpp -= 2 * 3) and returns -EINVAL which then wrongly goes to enable DSC even when link BW is sufficient without DSC. Manasi > > > Fix this by returning > > -EINVAL in case bpc < 0 which would be an error. > > > > Cc: Ville Syrjälä <ville.syrjala@xxxxxxxxxxxxxxx> > > Cc: Ankit Nautiyal <ankit.k.nautiyal@xxxxxxxxx> > > Cc: Sean Paul <sean@xxxxxxxxxx> > > Signed-off-by: Manasi Navare <navaremanasi@xxxxxxxxxxxx> > > --- > > drivers/gpu/drm/i915/display/intel_dp.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c > > index f0bace9d98a1..f6546292e7c6 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dp.c > > +++ b/drivers/gpu/drm/i915/display/intel_dp.c > > @@ -1280,7 +1280,7 @@ static int intel_dp_max_bpp(struct intel_dp *intel_dp, > > max_hdmi_bpc = intel_dp_hdmi_compute_bpc(intel_dp, crtc_state, bpc, > > respect_downstream_limits); > > if (max_hdmi_bpc < 0) > > - return 0; > > + return -EINVAL; > > > > bpc = min(bpc, max_hdmi_bpc); > > } > > -- > > 2.40.0.577.gac1e443424-goog > > -- > Ville Syrjälä > Intel