Bug detailed description ======= Connected with a HDMI or DisplayPort monitor, can get the correct ELD information; then unplug and plug the cable to another monitor, also get the original ELD information, it can't be refreshed. Reproduce Steps ============== 1. connected with one HDMI monitor, enter command: cat /proc/asound/PCH/eld#2.0 2. unplug the HDMI cable, enter command: cat /proc/asound/PCH/eld#2.0 3. plug the HDMI cable to another monitor, then enter command: cat /proc/asound/PCH/eld#2.0 Expected Result ============= Actual Result =========== Analysis & Root Cause =================== The old drm-intel-nightly is OK and the latest kernel drm-intel-nightly doesn't work
We're possibly still missing something in SKL audio enabling. The fact that it did work may be just a chance. A bisect might be helpful.
OK. We will try to do the bisect and let you know the result.
Bisect from drm-intel-nightly kernel tree. first bad commit: commit f03e4179cef145253eba87bbf037047e54e728dd Author: Jani Nikula <jani.nikula@intel.com> AuthorDate: Fri Jan 16 14:27:16 2015 +0200 Commit: Daniel Vetter <daniel.vetter@ffwll.ch> CommitDate: Tue Jan 27 09:51:11 2015 +0100 drm/i915/dsi: call dpi_send_cmd() for each dsi port at a higher level Instead of having the for each dsi port loop within dpi_send_cmd(), add a port parameter to the function and call it for each port instead. This is a rewrite of commit 4510cd779e5897eeb8691aecbd639bb62ec27d55 Author: Gaurav K Singh <gaurav.k.singh@intel.com> Date: Thu Dec 4 10:58:51 2014 +0530 drm/i915: Dual link needs Shutdown and Turn on packet for both ports to add more flexibility in using dpi_send_cmd() for just one port as necessary. No functional changes. Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-By: Shobhit Kumar <shobhit.kumar@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
(In reply to jinliangx.wang from comment #3) > Bisect from drm-intel-nightly kernel tree. > > first bad commit: > commit f03e4179cef145253eba87bbf037047e54e728dd > Author: Jani Nikula <jani.nikula@intel.com> > AuthorDate: Fri Jan 16 14:27:16 2015 +0200 > Commit: Daniel Vetter <daniel.vetter@ffwll.ch> > CommitDate: Tue Jan 27 09:51:11 2015 +0100 > > drm/i915/dsi: call dpi_send_cmd() for each dsi port at a higher level This bisect result can't be right, SKL does not even have DSI.
bisect pending.
Hi Jani, After bisect with drm-intel-nightly kernel tree, I think this bug should not be a regression, it can be defined as a new bug for SKL. Test the kernel on 2014-12-04 (hasn't merged any SKL GFX patch from drm-intel-internal at Dec 2014), boot with HDMI monitor connected, do the test steps: 1. cat /proc/asound/PCH/eld#2.0 monitor_present 1 eld_valid 1 monitor_name ASUS PA238 connection_type HDMI eld_version [0x2] CEA-861D or below edid_version [0x3] CEA-861-B, C or D manufacture_id 0x6904 product_id 0x23b1 port_id 0x0 support_hdcp 0 support_ai 0 audio_sync_delay 0 speakers [0x1] FL/FR sad_count 1 sad0_coding_type [0x1] LPCM sad0_channels 2 sad0_rates [0x4e0] 32000 44100 48000 96000 sad0_bits [0xe0000] 16 20 24 (Can get ELD info of monitor, it's correct) 2. unplug HDMI cable, cat /proc/asound/PCH/eld#2.0 monitor_present 1 eld_valid 1 monitor_name ASUS PA238 connection_type HDMI eld_version [0x2] CEA-861D or below edid_version [0x3] CEA-861-B, C or D manufacture_id 0x6904 product_id 0x23b1 port_id 0x0 support_hdcp 0 support_ai 0 audio_sync_delay 0 speakers [0x1] FL/FR sad_count 1 sad0_coding_type [0x1] LPCM sad0_channels 2 sad0_rates [0x4e0] 32000 44100 48000 96000 sad0_bits [0xe0000] 16 20 24 (The ELD info can't be refreshed, it' wrong) With HDMI monitor disconnect, the ELD info should be refresh to monitor_present 0 eld_valid 0 But the reproducibility of the bug was not 100%, need hotplug HDMI cable for many times. I also tried other kernels of a few days between 2014-12-04 to 2015-12-31, the test results are same as above. So I can't find the good commit, it should not be regression. Next I test kernel on 2015-01-30 and 2015-02-28, (has merged SKL GFX patches from drm-intel-internal tree), boot with HDMI monitor connected, do the test steps: 1. cat /proc/asound/PCH/eld#2.0 monitor_present 1 eld_valid 1 monitor_name ASUS PA238 connection_type HDMI eld_version [0x2] CEA-861D or below edid_version [0x3] CEA-861-B, C or D manufacture_id 0x6904 product_id 0x23b1 port_id 0x0 support_hdcp 0 support_ai 0 audio_sync_delay 0 speakers [0x1] FL/FR sad_count 1 sad0_coding_type [0x1] LPCM sad0_channels 2 sad0_rates [0x4e0] 32000 44100 48000 96000 sad0_bits [0xe0000] 16 20 24 (Can get ELD info of monitor, it's correct) 2. unplug HDMI cable, cat /proc/asound/PCH/eld#2.0 monitor_present 0 eld_valid 0 (With HDMI monitor disconnect, the ELD info can be refresh to 0, it's correct) 3. plug HDMI cable to another monitor, cat /proc/asound/PCH/eld#2.0 monitor_present 0 eld_valid 0 (Can't get ELD info of new monitor, it's wrong) The phenomenon is different from Dec 2014, but still unable to match the requirement of ELD info refresh. Hardware Platform: Skylake Client CPU: Skylake C0 Chipset PCH: SKL PCH-LP A2 CRB: Skylake Y LPDDR3 RVP3 FAB2 Audio card: ALC286 Reworks: FBS02, FBS03 Software Linux distribution: Ubuntu 14.04 64 bits BIOS: SKLSE2R1.86C.B068.R00.150109090
I can't find anything missing on display side, might be a problem in the audio driver. That's where /proc/asound/PCH/eld#2.0 comes from anyway.
From the audio driver viewpointer, we need an interrupt to notify audio driver for the hotplug event. But there is no such interrupt. So audio driver will never know this event.
(In reply to Libin Yang from comment #8) > From the audio driver viewpointer, we need an interrupt to notify audio > driver for the hotplug event. But there is no such interrupt. So audio > driver will never know this event. Do you get a picture on screen?
Yes. The screen is OK. But there are no interrupts for audio driver.
Hi Jani, Do you have some suggestion on this issue? Thanks, Libin
Hi Jani, This bug is fixed on the latest kernel. Do you know which patches in gfx may be related with this issue? BTW: We upgrade the CPU. It is said CPU has issue with hotplug and HDMI audio codec detection. Thanks, Libin
This issue cannot be reproduced on latest drm-intel kernel, hot-plug works well. So we close this issue. Thanks gfx driver support!
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.