On Mon, 08 Apr 2024, Ankit Nautiyal <ankit.k.nautiyal@xxxxxxxxx> wrote: > Currently lspcon_probe tries to probe for LSPCON and also set the > PCON mode on the LSPCON. If any of these fails, it returns fail > resulting in error message. So even if there is nothing connected to > LSPCON port we get error messages for probe failure. > > Separate out the function to set pcon mode from the lspcon_probe > function, and show the error message only when the set pcon mode fails. > Do not show error message if no LSPCON is detected. > > Signed-off-by: Ankit Nautiyal <ankit.k.nautiyal@xxxxxxxxx> Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx> > --- > drivers/gpu/drm/i915/display/intel_lspcon.c | 24 ++++++++++++++------- > 1 file changed, 16 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_lspcon.c b/drivers/gpu/drm/i915/display/intel_lspcon.c > index 36e8d9fb2bbb..16ee0dc179f7 100644 > --- a/drivers/gpu/drm/i915/display/intel_lspcon.c > +++ b/drivers/gpu/drm/i915/display/intel_lspcon.c > @@ -277,17 +277,22 @@ static bool lspcon_probe(struct intel_lspcon *lspcon) > drm_dbg_kms(&i915->drm, "LSPCON detected\n"); > lspcon->mode = lspcon_wait_mode(lspcon, expected_mode); > > + return true; > +} > + > +static bool lspcon_set_pcon_mode(struct intel_lspcon *lspcon) > +{ > /* > * In the SW state machine, lets Put LSPCON in PCON mode only. > * In this way, it will work with both HDMI 1.4 sinks as well as HDMI > * 2.0 sinks. > */ > - if (lspcon->mode != DRM_LSPCON_MODE_PCON) { > - if (lspcon_change_mode(lspcon, DRM_LSPCON_MODE_PCON) < 0) { > - drm_err(&i915->drm, "LSPCON mode change to PCON failed\n"); > - return false; > - } > - } > + if (lspcon->mode == DRM_LSPCON_MODE_PCON) > + return true; > + > + if (lspcon_change_mode(lspcon, DRM_LSPCON_MODE_PCON) < 0) > + return false; > + > return true; > } > > @@ -671,8 +676,11 @@ bool lspcon_init(struct intel_digital_port *dig_port) > lspcon->active = false; > lspcon->mode = DRM_LSPCON_MODE_INVALID; > > - if (!lspcon_probe(lspcon)) { > - drm_err(&i915->drm, "Failed to probe lspcon\n"); > + if (!lspcon_probe(lspcon)) > + return false; > + > + if (!lspcon_set_pcon_mode(lspcon)) { > + drm_err(&i915->drm, "LSPCON mode change to PCON failed\n"); > return false; > } -- Jani Nikula, Intel