kbl: *ERROR* Failed to probe lspcon
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_128186v2/fi-kbl-7567u/igt@i915_pm_rpm@module-reload.html and similarly from some tests in the following CI runs:
- Patchwork_127966v3/fi-kbl-7567u
- Patchwork_128147v2/fi-kbl-7567u
- IGTPW_10469/fi-kbl-7567u
<7>[ 358.803569] i915 0000:00:02.0: [drm:lspcon_wake_native_aux_ch [i915]] Native AUX CH up, DPCD version: 1.2
<7>[ 358.804571] i915 0000:00:02.0: [drm:drm_dp_i2c_do_msg [drm_display_helper]] AUX B/DDI B/PHY B: native defer
<7>[ 358.805995] i915 0000:00:02.0: [drm:drm_dp_i2c_do_msg [drm_display_helper]] AUX B/DDI B/PHY B: native defer
...
<7>[ 358.823684] i915 0000:00:02.0: [drm:drm_dp_dual_mode_detect [drm_display_helper]] DP dual mode HDMI ID: (err -121)
...
<7>[ 358.925347] i915 0000:00:02.0: [drm:drm_dp_dual_mode_detect [drm_display_helper]] DP dual mode HDMI ID: (err -121)
<7>[ 358.925360] i915 0000:00:02.0: [drm:lspcon_init [i915]] No LSPCON detected, found unknown
<3>[ 358.925619] i915 0000:00:02.0: [drm] *ERROR* Failed to probe lspcon
Repeating many times, across multiple driver reloads, and then recovering after a system suspend/resume:
<7>[ 541.293689] [IGT] i915_suspend: executing
<7>[ 541.302373] [IGT] i915_suspend: starting subtest basic-s3-without-i915
...
<7>[ 541.323944] [IGT] Unloading i915
<7>[ 542.504357] i915 0000:00:02.0: [drm:verify_connector_state [i915]] [CONNECTOR:121:DP-4]
<7>[ 544.783852] [IGT] Re-loading i915
...
<7>[ 545.658165] i915 0000:00:02.0: [drm:lspcon_wake_native_aux_ch [i915]] Native AUX CH up, DPCD version: 1.2
<7>[ 545.659690] i915 0000:00:02.0: [drm:drm_dp_i2c_do_msg [drm_display_helper]] AUX B/DDI B/PHY B: native defer
<7>[ 545.666846] i915 0000:00:02.0: [drm:drm_dp_i2c_do_msg [drm_display_helper]] AUX B/DDI B/PHY B: native defer
...
<7>[ 545.667750] i915 0000:00:02.0: [drm:drm_dp_dual_mode_detect [drm_display_helper]] DP dual mode HDMI ID: DP-HDMI ADAPTOR\004 (err 0)
...
<7>[ 545.678538] i915 0000:00:02.0: [drm:lspcon_init [i915]] LSPCON detected
...
<7>[ 545.679409] i915 0000:00:02.0: [drm:drm_dp_i2c_do_msg [drm_display_helper]] AUX B/DDI B/PHY B: native defer
<7>[ 545.681121] i915 0000:00:02.0: [drm:drm_dp_i2c_do_msg [drm_display_helper]] AUX B/DDI B/PHY B: native defer
...
<7>[ 545.696955] i915 0000:00:02.0: [drm:lspcon_init [i915]] Vendor: Mega Chips
<7>[ 545.697221] i915 0000:00:02.0: [drm:lspcon_init [i915]] Success: LSPCON init
<7>[ 545.697953] i915 0000:00:02.0: [drm:lspcon_detect_hdr_capability [i915]] LSPCON capable of HDR
Looks like the LSPCON FW breaking for some reason after a while, deferring all the AUX responses similarly to the working scenarios, but never actually completing the AUX request as it does in the working scenarios. This state persists across multiple driver reloads and eventually recovering after a system suspend/resume. Possible root causes are:
- Some required LSPCON programming done by BIOS/GOP but unknown to i915 getting lost across power state transitions
- LSPCON getting confused by some i915 programming (via AUX DPCD)
- Firmware bug, missing FW update on the KBL system