Bug 86202 - [byt] EDID readout on DP port (with DP display connected) gives random results
Summary: [byt] EDID readout on DP port (with DP display connected) gives random results
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Intel GFX Bugs mailing list
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-12 14:22 UTC by Egbert Eich
Modified: 2017-07-24 22:50 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg log showing problem (106.80 KB, text/plain)
2014-11-12 14:22 UTC, Egbert Eich
no flags Details

Description Egbert Eich 2014-11-12 14:22:52 UTC
Created attachment 109342 [details]
dmesg log showing problem

EDID readout on an external DP port gives wrong results. On an internal eDP panel or on HDMI (connected to the same DP connector thru an adaper) it works.
Comment 1 Egbert Eich 2014-11-12 14:26:39 UTC
kernel used was from latest drm-intel-nightly branch. 
This issue is no regression - EDID readout on DP hasnt' worked with any kernels I've tested.
PCI ID of GPU: 8086:0f31
Comment 2 Jani Nikula 2014-11-12 14:46:55 UTC
I assume you've tested the same cable and display with some other device, and it works?
Comment 3 Egbert Eich 2014-11-12 18:43:31 UTC
(In reply to Jani Nikula from comment #2)
> I assume you've tested the same cable and display with some other device,
> and it works?

Definitely. I'm using this cable regularly for testing purposes. To make sure I've just tested the cable/monitor combo on a Haswell system. It worked without issues there.
I haven't been able to test with another monitor brand / other VLV system. I may be able to do so tomorrow or Friday.
Comment 4 Egbert Eich 2014-11-19 10:46:19 UTC
As it looks like, this issue is a fallout of 
  https://bugs.freedesktop.org/show_bug.cgi?id=86201
It does look like EDID readout did work on versions prior to commit 773538e86081d146e0020435d614f4b96996c1f9. 

I'm therefore marking this as a duplicate for now.

*** This bug has been marked as a duplicate of bug 86201 ***
Comment 5 Egbert Eich 2014-11-26 15:30:45 UTC
Further analysis has shown that this issue was actually fixed by the patch in
  https://bugs.freedesktop.org/attachment.cgi?id=109670
(attached to fdo#86201).
The reason for the issue is pretty much explained in that ticket.

Ville, do you mind making sure that this patch is queued for drm-intel-next so that it doesn't get lost? 
Thanks a lot :)
Comment 6 Ville Syrjala 2014-11-26 15:50:54 UTC
(In reply to Egbert Eich from comment #5)
> Further analysis has shown that this issue was actually fixed by the patch in
>   https://bugs.freedesktop.org/attachment.cgi?id=109670
> (attached to fdo#86201).
> The reason for the issue is pretty much explained in that ticket.
> 
> Ville, do you mind making sure that this patch is queued for drm-intel-next
> so that it doesn't get lost? 
> Thanks a lot :)

Ugh. That patch really shouldn't fix EDID reads. But I guess it's possible this is another one of those broken monitors that return garbage to AUX reads while waking up, and the locking makes the operation slow enoguh that the monitor falls back asleep between messages :( Either that or we have some nasty bug in our aux code somewhere that causes this. Is it a HP ZR24w?

If the problem is widespread and the aux code is not at fault, I'm thinking we may want to pursue the idea of waking up the sink around AUX transfers. I did think about doing that at some point. The main complication is making sure the sink doesn't get turned off when it should remain on. So maybe a ref count is needed, or maybe we have enough locking in place to make sure we can just return the sink to the same power state where we found it.
Comment 7 Egbert Eich 2014-11-26 19:20:32 UTC
> 
> Ugh. That patch really shouldn't fix EDID reads. But I guess it's possible
> this is another one of those broken monitors that return garbage to AUX
> reads while waking up, and the locking makes the operation slow enoguh that
> the monitor falls back asleep between messages :( Either that or we have
> some nasty bug in our aux code somewhere that causes this. Is it a HP ZR24w?
> 

The monitor is a DELL 2212HM in fact.
I agree, this should not happen even it I2C read out is slowed down considerably.

> If the problem is widespread and the aux code is not at fault, I'm thinking
> we may want to pursue the idea of waking up the sink around AUX transfers. I
> did think about doing that at some point. The main complication is making
> sure the sink doesn't get turned off when it should remain on. So maybe a
> ref count is needed, or maybe we have enough locking in place to make sure
> we can just return the sink to the same power state where we found it.

Right. Maybe you have seen the discussion Daniel and I had on the intel-gfx@.
I had a really simplistic approach but Daniel was afraid that this will not scale when adding more DP AUX transfers.
So implementing this the proper way is actually on my TODO. I didn't get to it, yet.
Comment 8 Ville Syrjala 2014-11-26 19:36:28 UTC
(In reply to Egbert Eich from comment #7)
> > 
> > Ugh. That patch really shouldn't fix EDID reads. But I guess it's possible
> > this is another one of those broken monitors that return garbage to AUX
> > reads while waking up, and the locking makes the operation slow enoguh that
> > the monitor falls back asleep between messages :( Either that or we have
> > some nasty bug in our aux code somewhere that causes this. Is it a HP ZR24w?
> > 
> 
> The monitor is a DELL 2212HM in fact.
> I agree, this should not happen even it I2C read out is slowed down
> considerably.
> 
> > If the problem is widespread and the aux code is not at fault, I'm thinking
> > we may want to pursue the idea of waking up the sink around AUX transfers. I
> > did think about doing that at some point. The main complication is making
> > sure the sink doesn't get turned off when it should remain on. So maybe a
> > ref count is needed, or maybe we have enough locking in place to make sure
> > we can just return the sink to the same power state where we found it.
> 
> Right. Maybe you have seen the discussion Daniel and I had on the intel-gfx@.
> I had a really simplistic approach but Daniel was afraid that this will not
> scale when adding more DP AUX transfers.
> So implementing this the proper way is actually on my TODO. I didn't get to
> it, yet.

That discussion seemed somewhat orthogonal. What I'm talking about is sending the sink the DP_SET_POWER command around other AUX transfers to make sure it doesn't drop into sleep even if we take approximately forever to perform the transfer. But the pre/post hooks could potentially be the place where the DP_SET_POWER is issued.
Comment 9 Jani Nikula 2015-01-29 15:13:29 UTC
Any chance this is fixed by
commit 7f1241ed1a06b4846ad7a2a57eb088b757e58e16
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Thu Dec 18 11:44:06 2014 +0200

    drm/i915: Kill check_power_well() calls
Comment 10 Jani Nikula 2015-02-12 12:19:39 UTC
I'm pretty sure this is fixed now. Egbert, please don't hesitate to reopen if the problem persists. Thanks for the report.


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.