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> --- 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; } -- 2.40.1