Bug 83175

Summary: [BYT/BSW]Can't refresh ELD information(DP or HDMI) on the text mode.
Product: DRI Reporter: zhaodan <danx.z.zhao>
Component: DRM/IntelAssignee: Jani Nikula <jani.nikula>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: normal    
Priority: medium CC: intel-gfx-bugs, libin.yang, mengdong.lin, tridlh
Version: XOrg git   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
dmesg.inig
none
dmesg.plug
none
dmesg.unplug
none
eld.init
none
eld.plug
none
eld.unplug
none
interrupts.init
none
interrupts.plug
none
interrupts.unplug
none
i915_hpd.patch
none
drm/i915: fix short vs. long hpd detection
none
bytm default config none

Description zhaodan 2014-08-28 05:31:20 UTC

    
Comment 1 zhaodan 2014-08-28 05:45:08 UTC
Bug detailed description
On the Text mode,can't refresh ELD information on Bytrail. 
Connect a monitor with DP(HDMI) to check the ELD information,then unplug this monitor's DP(HDMI) cable and plug other monitor. But only display before monitor information.

Reproduce Steps
1.Connect Dell monitor with DP(HDMI) cable.
2.cat /proc/asound/card0/eld#0.1
3.Unplug DP(HDMI) cable to connect ASUS monitor
4.cat /proc/asound/card0/eld#0.1

Expected Result
After step4,should display ASUS monitor information.

Actual Result
After step4,display Dell monitor information.
Comment 2 zhaodan 2014-08-29 01:45:55 UTC
Test Environment:
Hardware:
CRB:Wilson Beach SDS
Platform:BroadWell
CPU: Broadwell U D0
Chipset PCH: Wildcat Point –LP B0
Software:
BIOS: BDW-E1R1.86C.0074.R01.1405020115
Kernel: 3.16.0-rc7
Branch: git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc.git 
intel/adsp-v3.16
Commit:0c8fd11d61db61ecf406e36adf54455eef3eb64e
Comment 3 zhaodan 2014-08-29 01:48:32 UTC
update the Enviroment
Test Environment:
Hardware:
CRB:BAYLEY BAY
Platform: bty-m
CPU: Celeron(R) N2810
Audio card: ALC5640
Software:
BIOS: BBAYCRB1.X64.0078.R20.1401131845
Kernel: 3.16.0-rc5
Branch: git://anongit.freedesktop.org/drm-intel
drm-intel-nightly
tag:2014_07_20
Commit:873440
Comment 4 Jani Nikula 2014-09-11 14:50:02 UTC
Mengdong, any ideas on this one on the audio side?
Comment 5 Jani Nikula 2014-09-17 07:17:20 UTC
Please try drm-intel-nightly, provide dmesg with drm.debug=0xe module parameter, all the way from boot to reproducing the problem (i.e. steps in comment #1). Please also attach the /proc/asound/card0/eld#0.1 files with descriptive names.
Comment 6 Jani Nikula 2014-09-17 13:28:31 UTC
Also, what do you mean exactly by "text mode"?
Comment 7 Libin Yang 2014-09-18 01:17:17 UTC
Hi Jani,

Actually, we find the bug happens on both text mode and GUI mode.

Thanks,
Libin
Comment 8 Jani Nikula 2014-09-18 10:33:25 UTC
(In reply to comment #7)
> Actually, we find the bug happens on both text mode and GUI mode.

Okay, please provide the information requested in comment #5.
Comment 9 Libin Yang 2014-09-22 05:39:39 UTC
Hi Jani,

Please see the attachments for the details.

dmesg.init, eld.init, interrupts.init are the dmesg of bootup
dmesg.unplug, eld.unplug, interrupts.unplug are the dmesg after unplugging the HDMI monitor
dmesg.plug, eld.plug, interrutps.plug are the dmesg after plugging the HDMI monitor again.

If applying the test patch i915_hpd.patch, the eld information can be updated normally.

Thanks,
Libin
Comment 10 Libin Yang 2014-09-22 05:41:14 UTC
Created attachment 106642 [details]
dmesg.inig
Comment 11 Libin Yang 2014-09-22 05:41:55 UTC
Created attachment 106643 [details]
dmesg.plug
Comment 12 Libin Yang 2014-09-22 05:42:26 UTC
Created attachment 106644 [details]
dmesg.unplug
Comment 13 Libin Yang 2014-09-22 05:42:49 UTC
Created attachment 106645 [details]
eld.init
Comment 14 Libin Yang 2014-09-22 05:43:06 UTC
Created attachment 106646 [details]
eld.plug
Comment 15 Libin Yang 2014-09-22 05:43:24 UTC
Created attachment 106647 [details]
eld.unplug
Comment 16 Libin Yang 2014-09-22 05:43:42 UTC
Created attachment 106648 [details]
interrupts.init
Comment 17 Libin Yang 2014-09-22 05:44:10 UTC
Created attachment 106650 [details]
interrupts.plug
Comment 18 Libin Yang 2014-09-22 05:44:30 UTC
Created attachment 106651 [details]
interrupts.unplug
Comment 19 Libin Yang 2014-09-22 05:44:56 UTC
Created attachment 106652 [details] [review]
i915_hpd.patch
Comment 20 Jani Nikula 2014-09-23 11:36:14 UTC
Created attachment 106729 [details] [review]
drm/i915: fix short vs. long hpd detection

Please try this patch on top of nightly.
Comment 21 Jani Nikula 2014-09-23 12:44:43 UTC
*** Bug 84226 has been marked as a duplicate of this bug. ***
Comment 22 Jani Nikula 2014-09-30 12:33:21 UTC
Libin, please try the patch from comment #20.
Comment 23 gvidalx 2014-10-07 16:23:44 UTC
Hi Jani,
I added comment #20 patch to drm-intel/nightly kernel but ELD information still do not refresh on hot-plug events.
I had the same behavior with or without X started. However, I noticed that running $ xrandr is a workaround as everything is correct after this command (ELD and display).
Comment 24 Libin Yang 2014-10-08 01:18:28 UTC
Hi Jani,

Sorry for delay. We still haven't got the platform to test. The platform is occupied by another QA team for Media test.

We will test it and update the result ASAP.

(In reply to Jani Nikula from comment #22)
> Libin, please try the patch from comment #20.
Comment 25 Jani Nikula 2014-10-08 06:50:37 UTC
Would be good to test the audio branch from http://cgit.freedesktop.org/~jani/drm/ also.
Comment 26 zhaodan 2014-10-09 03:35:58 UTC
Hi Jani,
I build the kernel with the audio branch from http://cgit.freedesktop.org/~jani/drm/ and use the nightly config.
I verify the issue on the BSW connect HDMI cable with the kernel,but the platform can't boot up normally and the screen black all the time. 
I don't know if need the special config to build the branch kernel?


Dan
Comment 27 gvidalx 2014-10-10 09:08:19 UTC
I tested audio branch from http://cgit.freedesktop.org/~jani/drm/ yesterday, hadn't the time to post my results which are not very different from Dan's.
HDMI is not detected, eDP works as normal. I used byt-m default config "config-bytm-drm" attached
Comment 28 gvidalx 2014-10-10 09:09:16 UTC
Created attachment 107653 [details]
bytm default config
Comment 29 Libin Yang 2014-11-10 00:54:59 UTC
Hi Jani,

We found the latest kernel has fixed this bug. There are a lot of patches since we reported this bug. Do you know which patches fixed this bug?

Thanks,
Libin
Comment 30 Jani Nikula 2014-11-10 10:05:03 UTC
By "latest kernel" do you refer to Linus' tree or one of the drm-intel branches?
Comment 31 Jani Nikula 2014-11-10 13:07:03 UTC
Here's a list of recent HD audio related commits in drm-intel-next-queued, from newest to oldest. Please try 7c10a2b5876e and 
28855d2ac349, and you can reverse bisect which commit fixed the bug.

28855d2ac349 drm/i915/audio: add DOC comment describing HDA over HDMI/DP
82910ac6d575 drm/i915: make pipe/port based audio valid accessors easier to use
d5ee08de1bbe drm/i915/audio: add audio codec enable debug log for g4x
76d8d3e5b57d drm/i915/audio: add audio codec disable on g4x
c1dec79aaee6 drm/i915: enable audio codec after port
495a5bb81d34 drm/i915/audio: add vlv/chv/gen5-7 audio codec disable sequence
c6bde93b9225 drm/i915/audio: rewrite vlv/chv and gen 5-7 audio codec enable sequence
5fad84a7530f drm/i915: rewrite hsw/bdw audio codec enable/disable sequences
c46f111f5171 drm/i915: clean up and clarify audio related register defines
d806fbf5d38f drm/i915/audio: remove misleading checks for !eld[0]
69bfe1a9b4df drm/i915: introduce intel_audio_codec_{enable, disable}
2aa0de39fa07 drm/i915/ddi: write ELD where it's supposed to be done
6189b0369c67 drm/i915/audio: set ELD Conn_Type at one place
820d2d774828 drm/i915/audio: pass intel_encoder on to platform specific ELD functions
33d1e7c6f416 drm/i915: pass intel_encoder to intel_write_eld
f9f682ae3530 drm/i915/audio: beat some sense into the variable types and names
87fcb2ad4582 drm/i915/audio: constify hdmi audio clock struct
7c10a2b5876e drm/i915: add new intel audio file to group DP/HDMI audio

Since it's fixed now, I'm closing the bug.
Comment 32 Libin Yang 2014-11-12 01:47:03 UTC
Thanks, Yani. This is fixed on drm-intel kenrel, BTW.
Comment 33 zhaodan 2014-11-20 02:21:12 UTC
I verify the issue on the latest kernel 3.18.0-rc4, also can reproduce it.

The environment:
Hardware
CRB:Braswell RVP
Platform: Braswell 
CPU: Braswell B1
Audio card: ALC282

Software
BIOS: BRASWEL1.X64.0041.R00.1410131600
Kernel: 3.18.0-rc4 (2014-11-17)
Branch: git://anongit.freedesktop.org/drm-intel
drm-intel-nightly
Commit:e49ebf
Comment 34 Jani Nikula 2014-11-20 07:53:10 UTC
(In reply to zhaodan from comment #33)
> I verify the issue on the latest kernel 3.18.0-rc4, also can reproduce it.
...
> Kernel: 3.18.0-rc4 (2014-11-17)

Please do not refer to drm-intel-nightly kernels with "3.18.0-rc4" or similar. It is confusing. If that is from 'uname -a' or dmesg, it depends on your config options. The -nightly kernel has tons of patches on top of v3.18-rc4.

> Branch: git://anongit.freedesktop.org/drm-intel
> drm-intel-nightly
> Commit:e49ebf

This is better, but five digits of commit sha1 is insufficient. There will be collisions making the commit ambiguous. 12 digits is recommended to avoid collisions in a git project the size of the kernel.


Anyway, please try the current drm-intel-nightly, make sure it has

commit eb45fa0b93e03b03848cd048dcc57648409c8125
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Tue Nov 18 12:11:29 2014 +0200

    drm/i915/audio: fix monitor presence indication after disable

I suspect this will fix it.
Comment 35 Daniel Vetter 2014-11-20 13:33:23 UTC
Let's just presume this is fixed in -nightly. Please reopen if that's not the case.
Comment 36 zhaodan 2014-11-21 03:02:15 UTC
Hi Jani,
I had verify the issue on the nightly kernel 3.18.0-rc5,and can't reproduce the issue.so I change the status as verified.

The environment:
Hardware
CRB:Braswell RVP
Platform: Braswell 
CPU: Braswell B1
Audio card: ALC282

Software
BIOS: BRASWEL1.X64.0041.R00.1410131600
Kernel: 3.18.0-rc5 (2014-11-21)
Branch: git://anongit.freedesktop.org/drm-intel
drm-intel-nightly
Commit:cdb41f
Comment 37 Elizabeth 2017-10-06 14:36:20 UTC
Closing old verified.

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.