Bug 98353 - [BAT][SKL] Failed to probe lspcon: No LSPCON detected, found type 1 HDMI
Summary: [BAT][SKL] Failed to probe lspcon: No LSPCON detected, found type 1 HDMI
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: DRI git
Hardware: x86-64 (AMD64) Linux (All)
: highest blocker
Assignee: cprigent
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-10-20 09:36 UTC by mwa
Modified: 2016-11-23 14:30 UTC (History)
1 user (show)

See Also:
i915 platform: SKL
i915 features: display/LSPCON


Attachments
attachment-30464-0.html (2.95 KB, text/html)
2016-10-26 06:27 UTC, shashank.sharma@intel.com
no flags Details

Description mwa 2016-10-20 09:36:15 UTC
Happened during igt@drv_module_reload_basic on fi-skl-6700hq

Returncode	0

Time	0:00:06.229089

Stdout	
Reloading i915.ko with
unbinding /sys/class/vtconsole/vtcon1/: (M) frame buffer device
module successfully unloaded
module successfully loaded again
Reloading i915.ko with inject_load_failure=1
unbinding /sys/class/vtconsole/vtcon1/: (M) frame buffer device
module successfully unloaded
Reloading i915.ko with inject_load_failure=2
module successfully unloaded
Reloading i915.ko with inject_load_failure=3
module successfully unloaded
Reloading i915.ko with inject_load_failure=4
module successfully unloaded
Reloading i915.ko with
module successfully unloaded
module successfully loaded again

Stderr	

Environment
PIGLIT_PLATFORM="mixed_glx_egl" PIGLIT_SOURCE_DIR="/opt/igt/piglit"
Command	/opt/igt/tests/drv_module_reload_basic

dmesg	
[   36.849247] [drm:lspcon_init [i915]] *ERROR* Failed to probe lspcon
[   36.849278] [drm:intel_ddi_init [i915]] *ERROR* LSPCON init failed on port B
[   36.867178] [Firmware Bug]: ACPI(PEGP) defines _DOD but not _DOS
[   38.946464] Setting dangerous option inject_load_failure - tainting kernel
[   39.093675] Setting dangerous option inject_load_failure - tainting kernel
[   39.258529] Setting dangerous option inject_load_failure - tainting kernel
[   39.424800] Setting dangerous option inject_load_failure - tainting kernel
[   40.497909] [drm:lspcon_init [i915]] *ERROR* Failed to probe lspcon
[   40.498321] [drm:intel_ddi_init [i915]] *ERROR* LSPCON init failed on port B
[   40.530092] [Firmware Bug]: ACPI(PEGP) defines _DOD but not _DOS
Comment 1 shashank.sharma@intel.com 2016-10-20 14:32:11 UTC
There could be two reasons:
- There is no LSPCON on port B (VBT invalid)
- Not able to detect LSPCON signature. 

How can I see detailed logs (with drm_error=0xe) ?
Comment 3 Chris Wilson 2016-10-20 14:38:15 UTC
[   45.793263] [drm:intel_ddi_init [i915]] VBT says port B has lspcon
[   45.793333] [drm:intel_dp_init_connector [i915]] Adding DP connector on port B
[   45.793921] [drm:drm_dp_i2c_do_msg] native defer
[   45.795037] [drm:drm_dp_i2c_do_msg] native defer
[   45.796147] [drm:drm_dp_i2c_do_msg] native defer
[   45.797273] [drm:drm_dp_i2c_do_msg] native defer
[   45.798337] [drm:drm_dp_i2c_do_msg] native defer
[   45.799380] [drm:drm_dp_i2c_do_msg] native defer
[   45.800431] [drm:drm_dp_i2c_do_msg] native defer
[   45.801048] [drm:drm_dp_i2c_do_msg] too many retries, giving up
[   45.801475] [drm:drm_dp_i2c_do_msg] native defer
[   45.802570] [drm:drm_dp_i2c_do_msg] native defer
[   45.803682] [drm:drm_dp_i2c_do_msg] native defer
[   45.804796] [drm:drm_dp_i2c_do_msg] native defer
[   45.805912] [drm:drm_dp_i2c_do_msg] native defer
[   45.807027] [drm:drm_dp_i2c_do_msg] native defer
[   45.808136] [drm:drm_dp_i2c_do_msg] native defer
[   45.808837] [drm:drm_dp_i2c_do_msg] too many retries, giving up
[   45.808870] [drm:lspcon_init [i915]] No LSPCON detected, found unknown
[   45.808901] [drm:lspcon_init [i915]] *ERROR* Failed to probe lspcon
Comment 4 Jani Nikula 2016-10-20 14:41:44 UTC
See the drv_module_reload_basic test results across machines and CI runs at [1]. The fi-skl-6700hq row indicates module reload sporadically fails with LSPCON init. The machine obviously has LSPCON and it's indicated in VBT. You can see the successful and failing columns, and check the dmesgs when you click the column titles.

[1] https://intel-gfx-ci.01.org/CI/igt@drv_module_reload_basic.html
Comment 5 shashank.sharma@intel.com 2016-10-20 14:47:28 UTC
Thanks for the logs, Chris. 
From the logs:
[drm:lspcon_init [i915]] No LSPCON detected, found unknown

lspcon layer uses drm_dp_dual_mode implementation to detect if there is a lspcon dongle attached with the port (i2c_over_aux) and once we find a dongle, we try to read lspcon signature to determine if its MCA lspcon. 

Looks like drm_dp_dual_mode API could not detect a dp_dual_mode dongle, and it returned unknown. So LSPCON detection failed. 

This could be due to:
- Faulty HW/dongle 
- Invalid FW on dongle
- Wrong VBT programming (there is no LSPCON on port B)

- Shashank
Comment 6 Ville Syrjala 2016-10-20 15:42:24 UTC
I believe this is just the same "LSPCON firmware falls over if poked too quickly after suspend" thing that Imre found on his APL. So we need Imre's workaround I believe.
Comment 7 Jani Saarinen 2016-10-23 10:29:24 UTC
This same is now causing dwarns on 6700hq for 
igt@drv_module_reload_basic
igt@gem_exec_suspend@basic-s3
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b
igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c
Comment 8 Jani Saarinen 2016-10-24 06:18:57 UTC
[  185.090441] [IGT] gem_exec_suspend: starting subtest basic-S3
[  187.261576] [drm:drm_lspcon_get_mode] *ERROR* LSPCON read(0x80, 0x41) failed
[  187.261606] [drm:lspcon_change_mode.constprop.2 [i915]] *ERROR* Error reading LSPCON mode
[  187.261618] [drm:lspcon_resume [i915]] *ERROR* LSPCON resume failed

[  475.664167] [IGT] kms_pipe_crc_basic: starting subtest suspend-read-crc-pipe-A
[  477.560903] [drm:drm_lspcon_get_mode] *ERROR* LSPCON read(0x80, 0x41) failed
[  477.560936] [drm:lspcon_change_mode.constprop.2 [i915]] *ERROR* Error reading LSPCON mode
[  477.560948] [drm:lspcon_resume [i915]] *ERROR* LSPCON resume failed

[  482.292551] [IGT] kms_pipe_crc_basic: starting subtest suspend-read-crc-pipe-B
[  484.285888] [drm:drm_lspcon_get_mode] *ERROR* LSPCON read(0x80, 0x41) failed
[  484.285901] [drm:lspcon_change_mode.constprop.2 [i915]] *ERROR* Error reading LSPCON mode
[  484.285913] [drm:lspcon_resume [i915]] *ERROR* LSPCON resume failed

[  488.994986] [IGT] kms_pipe_crc_basic: starting subtest suspend-read-crc-pipe-C
[  490.675622] [drm:drm_lspcon_get_mode] *ERROR* LSPCON read(0x80, 0x41) failed
[  490.675636] [drm:lspcon_change_mode.constprop.2 [i915]] *ERROR* Error reading LSPCON mode
[  490.675647] [drm:lspcon_resume [i915]] *ERROR* LSPCON resume failed
Comment 9 Imre Deak 2016-10-25 13:53:18 UTC
I've sent an updated version, which is mostly reviewed by Jani. Still waiting for his R-b for 2 out of 8 patches.
Comment 10 Jani Saarinen 2016-10-26 06:26:56 UTC
Patch series details:
https://lists.freedesktop.org/archives/intel-gfx/2016-October/109619.html
Comment 11 shashank.sharma@intel.com 2016-10-26 06:27:06 UTC
Created attachment 127547 [details]
attachment-30464-0.html

Hello,
I am on Diwali vacation during 25 Oct - 01 Nov, with limited Phone and no mail access.
Please expect delay in response.

If this is something urgent, please contact my manager : Indranil, Mukherjee

Regards
Shashank
Comment 12 Imre Deak 2016-10-26 12:36:00 UTC
The fix is now merged to -nightly.
Comment 13 Jani Saarinen 2016-10-26 14:56:15 UTC
Thanks Imre.
Comment 15 Imre Deak 2016-11-02 13:37:00 UTC
(In reply to Joonas Lahtinen from comment #14)
> Re-appeared in;
> https://intel-gfx-ci.01.org/CI/Patchwork_2888/fi-skl-6770hq/
> igt@drv_module_reload_basic.html

This is a separate issue from the originally reported (on two different machines). The original one was triggered by S3 and probe failed with the following error:
*ERROR* LSPCON read(0x80, 0x41) failed

The one in patchwork_2888 happens independent of S3 with the following error:
[drm:drm_dp_dual_mode_detect] DP dual mode adaptor ID: 44 (err 0)
[drm:lspcon_init [i915]] No LSPCON detected, found type 1 HDMI
[drm:lspcon_init [i915]] *ERROR* Failed to probe lspcon

In this latter case LSPCON recovers, and looks like the same issue we have with some type 1 dongles where the read offset during I2C-over-AUX transfers is ignored by the dongle.
Comment 16 Imre Deak 2016-11-15 10:51:40 UTC
Let's track the single issue described in comment 15 in this bug.
Comment 17 yann 2016-11-22 12:17:45 UTC
Reference to Imre's patchset: https://patchwork.freedesktop.org/series/15682/
Comment 18 Imre Deak 2016-11-23 13:08:55 UTC
Fix merged to -nightly.
Comment 19 yann 2016-11-23 14:30:44 UTC
(In reply to Imre Deak from comment #18)
> Fix merged to -nightly.

Closing as fixed and verified in CI system


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.