Bug 97907

Summary: drm/i915: start adding dp mst audio break multi monitor setup
Product: DRI Reporter: Kim Lidström <dxtr>
Component: DRM/IntelAssignee: Rodrigo Vivi <rodrigo.vivi>
Status: CLOSED FIXED QA Contact: Intel GFX Bugs mailing list <intel-gfx-bugs>
Severity: major    
Priority: high CC: dhinakaran.pandiyan, intel-gfx-bugs, libin.yang, lyude, rodrigo.vivi
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: SKL i915 features: display/DP
Attachments:
Description Flags
Test only
none
Revert for " drm/i915/dp: DP audio API changes for MST"
none
Revert for "drm/i915: start adding dp mst audio" none

Description Kim Lidström 2016-09-23 20:36:34 UTC
When this patch is applied the screens connected to displayport through my dock just cycles off and on again continuously.

When I revert that commit it starts working as intended again.

I am running a Thinkpad X260.
Comment 1 Jani Nikula 2016-09-26 08:14:50 UTC
That would be

commit 3708d5e082c39913b26bd06845ffe80a0b689e2a
Author: Libin Yang <libin.yang@linux.intel.com>
Date:   Mon Sep 19 18:24:41 2016 -0700

    drm/i915: start adding dp mst audio

right?

We need to revert.
Comment 2 Jani Nikula 2016-09-26 08:24:52 UTC
Kim, what if you keep commit 3708d5e082 but revert this one instead:

commit f931894194b9395313d1c34f95ceb8d91f49790d
Author: Pandiyan, Dhinakaran <dhinakaran.pandiyan@intel.com>
Date:   Wed Sep 21 13:02:48 2016 -0700

    drm/i915/dp: DP audio API changes for MST
Comment 3 Libin Yang 2016-09-26 08:33:16 UTC
It seems this issue is caused by FIFO xrun.

However, it is OK when we are using 720p resolution.
Comment 4 Dhinakaran Pandiyan 2016-09-26 08:41:13 UTC
Please attach dmesg with drm.debug=0x14 if you can reproduce the issue.
Comment 5 Jani Nikula 2016-09-26 08:49:11 UTC
(In reply to Dhinakaran Pandiyan from comment #4)
> Please attach dmesg with drm.debug=0x14 if you can reproduce the issue.

drm.debug=0xe or drm.debug=14. It's a bitmap. 0x14 is not helpful.
Comment 6 Kim Lidström 2016-09-26 08:54:58 UTC
Will try to do that later this evening. Worst-case I'll do it tomorrow.

Regarding the resolution I am running 1920x1200, 1200x1920 and 1920x1080.
Comment 7 Dhinakaran Pandiyan 2016-09-27 04:50:22 UTC
I am having trouble in confirming that the revert is fixing the issue. The display does not cycle off and on continuously for me, instead the external displays go off and come up immediately when the cursor moves from one screen to another. However, this does not happen every time cursor crosses the screen boundary. IOW, the screen blinking is tied to the cursor movement. Reverting these patches is not helping. 

I am using a DP MST hub that connects to two external DP monitors @2560x1440. The eDP is set to 1920x1200.


Kim,
Can you please provide more details about when the screen start cycling off and on?
Comment 8 Elio 2016-09-27 20:08:38 UTC
I just trying to reproduce the issue, after compiling and installing the mentioned commit i got the 2 displays on the MST on the system but physically without output signal.
Perform hard-reset and unplug-plug of the MST hub having signal again on 3 monitors, 2 on MST hub, same display configuration.

Configuration:

Hardware: Intel(R) Core(TM) i5-6260U CPU @ 1.80GHz

OS: Ubuntu 16.04 (Clean).

Kernel : commit  f931894194b9395313d1c34f95ceb8d91f49790d
Comment 9 Elio 2016-09-27 20:13:38 UTC
(In reply to Kim Lidström from comment #6)
> Will try to do that later this evening. Worst-case I'll do it tomorrow.
> 
> Regarding the resolution I am running 1920x1200, 1200x1920 and 1920x1080.

Could you share your Graphic configuration? Mesa, Xorg, libva etc?
Comment 10 Dhinakaran Pandiyan 2016-09-28 05:18:41 UTC
I was finally able to reproduce the issue with a SKL NUC w/  i5-6260U CPU @ 1.80GHz

The flickers are triggered by underruns, which are in turn triggered when we set the enable bit in HSW_AUD_PIN_ELD_CP_VLD (inactive bit zero).

I tested it by setting the inactive bit in the same register along with the enable bit, this case did not trigger flickers.

So, it looks like the MST case needs to be handled differently.
Comment 11 Jani Nikula 2016-09-28 08:09:55 UTC
It doesn't seem like you have an obviously correct fix yet. Please send the revert or do I have to?
Comment 12 Kim Lidström 2016-09-28 08:20:20 UTC
Hi!
Sorry for the unresponsiveness. Sickness combined with family and a broken ISP :)

You seem to have discovered something, although I did not experience "flickering" but more like the monitors lost the signal for a few seconds, turned off and then the signal returned. Continuously. Maybe that's what you meant, though?

Also, regarding my graphic configuration I am runnig xorg 1.18.4, xf86-video-intel 20160823 and I libva 1.7.1 installed (I saw Elio asking for that, although I don't know about the graphics stack to know where it fits in)
Comment 13 Dhinakaran Pandiyan 2016-09-28 08:25:03 UTC
Created attachment 126821 [details] [review]
Test only

I might have a fix just in time. Can someone try this? This is not a full solution, the existing code needs a bit of rework
Comment 14 Dhinakaran Pandiyan 2016-09-28 09:35:47 UTC
Created attachment 126822 [details] [review]
Revert for " drm/i915/dp: DP audio API changes for MST"
Comment 15 Dhinakaran Pandiyan 2016-09-28 09:36:39 UTC
Created attachment 126823 [details] [review]
Revert for "drm/i915: start adding dp mst audio"
Comment 16 Dhinakaran Pandiyan 2016-09-28 09:38:29 UTC
The fix did not work for one of the configurations. So, I have attached the reverts here.
Comment 17 Jani Nikula 2016-09-28 10:56:10 UTC
Dhinakaran, please send to the list.
Comment 18 Jani Nikula 2016-09-29 08:40:20 UTC
Fixed by

commit be754b101f70076f6375c84db4e8bcc517a4524f
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date:   Wed Sep 28 23:55:04 2016 -0700

    Revert "drm/i915: start adding dp mst audio"

Kim, please reopen if the problem persists on current drm-intel-nightly. Thanks.

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.