Bug 55193 - xf86-video-intel modesetting fails to properly detect EDID mode for Intel G45 chipset
Summary: xf86-video-intel modesetting fails to properly detect EDID mode for Intel G45...
Status: CLOSED FIXED
Alias: None
Product: DRI
Classification: Unclassified
Component: DRM/Intel (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: medium normal
Assignee: Daniel Vetter
QA Contact: Intel GFX Bugs mailing list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-21 11:00 UTC by Marco De Michele
Modified: 2017-07-24 23:00 UTC (History)
4 users (show)

See Also:
i915 platform:
i915 features:


Attachments
G45 xorg log (17.61 KB, text/plain)
2012-09-21 11:00 UTC, Marco De Michele
no flags Details
Sandy Bridge Xorg log (36.36 KB, text/plain)
2012-09-21 12:48 UTC, Marco De Michele
no flags Details
G45 dmesg (53.00 KB, text/plain)
2012-09-21 12:49 UTC, Marco De Michele
no flags Details
Sandy bridge dmesg (50.25 KB, text/plain)
2012-09-21 12:50 UTC, Marco De Michele
no flags Details
Sandy bridge xrandr (880 bytes, text/plain)
2012-09-21 12:51 UTC, Marco De Michele
no flags Details
G45 dmesg with drm.debug=6 (87.67 KB, text/plain)
2012-09-21 12:59 UTC, Marco De Michele
no flags Details
G45 dmesg (kernel 3.6_rc6) with dri.debug=6 (115.18 KB, text/plain)
2012-09-21 13:46 UTC, Marco De Michele
no flags Details
G45 xorg log (kernel 3.6_rc6) (17.61 KB, text/plain)
2012-09-21 13:47 UTC, Marco De Michele
no flags Details
G45 xorg log (kernel gmbus-irq) (16.55 KB, text/plain)
2012-09-24 08:56 UTC, Marco De Michele
no flags Details
G45 dmesg (kernel gmbus-irq drm-debug=6) (73.10 KB, text/plain)
2012-09-24 08:57 UTC, Marco De Michele
no flags Details
G45 get-edid output (898 bytes, text/plain)
2012-09-24 09:00 UTC, Marco De Michele
no flags Details
disable gmbus (445 bytes, patch)
2012-09-25 16:34 UTC, Daniel Vetter
no flags Details | Splinter Review
G45 xorg log (kernel 2.6.32-r20) (27.88 KB, text/plain)
2012-09-26 07:51 UTC, Marco De Michele
no flags Details

Description Marco De Michele 2012-09-21 11:00:21 UTC
Created attachment 67492 [details]
G45 xorg log

I'm using the following sw versions:

intel driver 2.20.8
xorg-server 1.12.2
libdrm 2.4.33
kernel 3.3.8

I cannot get EDID mode from two different monitors (Acer x223w and Asus VH222), using an Intel G45 video chipset. I didn't have this problem with previous sw version (intel driver 2.9.1 / xorg-server 1.7.7-r2/ libdrm 2.4.20-r1 / kernel 2.6.32).

I got correctly EDID mode from the same monitors using the same sw versions above, on a different hw (Sandy Bridge based), so I think there is a specific regression on G45 chipset.

I made some debugging on sna_output_attach_edid in sna_display.c code and I obtained (errno: Invalid argument) on call to function:

drmIoctl(sna->kgem.fd, DRM_IOCTL_MODE_GETPROPBLOB, &blob)

I also had the same behaviour using UXA acceleration instead of SNA, in that case the function that is called is intel_output_attach_edid inside intel_display.c.

I attach Xorg.0.log.
Comment 1 Chris Wilson 2012-09-21 11:20:23 UTC
Right, that just means that there is no EDID assosicated with the connector. So the query goes to the kernel as to why it is not successfully retrieving the EDID. Can you post your dmesg and also if you still have it available, the xrandr and dmesg from the working kernel?
Comment 2 Marco De Michele 2012-09-21 12:48:22 UTC
Created attachment 67500 [details]
Sandy Bridge Xorg log
Comment 3 Marco De Michele 2012-09-21 12:49:33 UTC
Created attachment 67501 [details]
G45 dmesg
Comment 4 Marco De Michele 2012-09-21 12:50:19 UTC
Created attachment 67502 [details]
Sandy bridge dmesg
Comment 5 Marco De Michele 2012-09-21 12:51:17 UTC
Created attachment 67503 [details]
Sandy bridge xrandr
Comment 6 Chris Wilson 2012-09-21 12:53:44 UTC
Ok, I was expecting to see a warning in the G45 dmesg. I was wrong. Can you please append drm.debug=6 to your kernel command line and attach the resulting dmesg after booting the G45?
Comment 7 Daniel Vetter 2012-09-21 12:56:48 UTC
Most likely fixed with

commit f1a2f5b7c5f0941d23eef0a095c0b99bf8d051e6
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Mon Aug 13 13:22:35 2012 +0300

    drm/i915: fall back to bit-banging if GMBUS fails in CRT EDID reads

Can you please try the latest 3.6-rc kernel?
Comment 8 Marco De Michele 2012-09-21 12:59:47 UTC
Created attachment 67504 [details]
G45 dmesg with drm.debug=6
Comment 9 Marco De Michele 2012-09-21 13:44:34 UTC
(In reply to comment #7)
> Most likely fixed with
> 
> commit f1a2f5b7c5f0941d23eef0a095c0b99bf8d051e6
> Author: Jani Nikula <jani.nikula@intel.com>
> Date:   Mon Aug 13 13:22:35 2012 +0300
> 
>     drm/i915: fall back to bit-banging if GMBUS fails in CRT EDID reads
> 
> Can you please try the latest 3.6-rc kernel?

I tried 3.6_rc6 kernel, but I have the same behaviour. I attach dmesg (dri.debug=6) and Xorg.log.
Comment 10 Marco De Michele 2012-09-21 13:46:10 UTC
Created attachment 67508 [details]
G45 dmesg (kernel 3.6_rc6) with dri.debug=6
Comment 11 Marco De Michele 2012-09-21 13:47:43 UTC
Created attachment 67509 [details]
G45 xorg log (kernel 3.6_rc6)
Comment 12 Daniel Vetter 2012-09-21 14:59:54 UTC
Hm, it looks like we just can't read the edid. Two things to try:

- Can you please test the gmbus-irq git branch from http://cgit.freedesktop.org/~danvet/drm

- Can you please use the read-edid to check whether the edid can be read from a different i2c bus (sometimes oems wire things up the wrong way round).

Also, what kind of outputs does your machine (physically) have?
Comment 13 Marco De Michele 2012-09-24 08:55:07 UTC
(In reply to comment #12)
> Hm, it looks like we just can't read the edid. Two things to try:
> 
> - Can you please test the gmbus-irq git branch from
> http://cgit.freedesktop.org/~danvet/drm
> 
> - Can you please use the read-edid to check whether the edid can be read
> from a different i2c bus (sometimes oems wire things up the wrong way round).
> 
> Also, what kind of outputs does your machine (physically) have?

I tested the same behaviour even with gmbus-irq git branch kernel. I attach Xorg.0.log e dmesg (drm.debug=6).

I also attach get-edid output.

The G45 chipset motherboard I'm using is an Intel DG45FC with onboard DVI-I and HDMI display ports. I dont' think that it has hardware issues, because I tested just this DG45FC motherboard, with older software versions (intel driver 2.9.1 / xorg-server 1.7.7-r2/ libdrm 2.4.20-r1 / kernel 2.6.32) reading correctly EDID data from the same display.
Comment 14 Marco De Michele 2012-09-24 08:56:15 UTC
Created attachment 67615 [details]
G45 xorg log (kernel gmbus-irq)
Comment 15 Marco De Michele 2012-09-24 08:57:32 UTC
Created attachment 67616 [details]
G45 dmesg (kernel gmbus-irq drm-debug=6)
Comment 16 Marco De Michele 2012-09-24 09:00:40 UTC
Created attachment 67617 [details]
G45 get-edid output
Comment 17 Chris Wilson 2012-09-25 12:21:28 UTC
Random link: http://www.polypux.org/projects/read-edid/read-edid-i2c.tar.gz
Comment 18 Daniel Vetter 2012-09-25 14:03:38 UTC
(In reply to comment #17)
> Random link: http://www.polypux.org/projects/read-edid/read-edid-i2c.tar.gz

Thanks Chris. Marco, can you please re-run the edid reading with this tool, the previous one uses the wrong interfaces (sorry for the confusion, I'm currently travelling around and don't have my usual setup with me ...)?
Comment 19 Marco De Michele 2012-09-25 16:18:58 UTC
(In reply to comment #18)
> (In reply to comment #17)
> > Random link: http://www.polypux.org/projects/read-edid/read-edid-i2c.tar.gz
> 
> Thanks Chris. Marco, can you please re-run the edid reading with this tool,
> the previous one uses the wrong interfaces (sorry for the confusion, I'm
> currently travelling around and don't have my usual setup with me ...)?

Ok, this is the output I get testing with the right command (read-edid-i2c):

"Looks like no busses have an EDID. Sorry!"
Comment 20 Daniel Vetter 2012-09-25 16:34:20 UTC
Created attachment 67689 [details] [review]
disable gmbus

Can you please try this patch quickly (also with the read-edid-i2c too) please?
Comment 21 Marco De Michele 2012-09-25 18:01:32 UTC
(In reply to comment #20)
> Created attachment 67689 [details] [review] [review]
> disable gmbus
> 
> Can you please try this patch quickly (also with the read-edid-i2c too)
> please?

I tried it but I get the same message:

"Looks like no busses have an EDID. Sorry!"
Comment 22 Daniel Vetter 2012-09-26 05:40:45 UTC
This is very strange, somehow we don't seem to be able to get at the right ddc bus to read the edid of your screen at all. Which is the first time I've ever seen this. I suspect your old setup still uses ums, which iirc uses the vbios to do edid readings. If you can dig out Xorg.log of the old working setup, that would be interesting (if just to confirm my theory).

Also, is there any other gpu in your system or is there anything other special (all-in-one machine?) that could explain why your machine has a really unusual ddc setup?
Comment 23 Marco De Michele 2012-09-26 07:50:03 UTC
(In reply to comment #22)
> This is very strange, somehow we don't seem to be able to get at the right
> ddc bus to read the edid of your screen at all. Which is the first time I've
> ever seen this. I suspect your old setup still uses ums, which iirc uses the
> vbios to do edid readings. If you can dig out Xorg.log of the old working
> setup, that would be interesting (if just to confirm my theory).
> 
> Also, is there any other gpu in your system or is there anything other
> special (all-in-one machine?) that could explain why your machine has a
> really unusual ddc setup?

You're right, finally I found that using the adaptor DVI-I --> VGA (I tried 3 different adaptors all with all DVI-I pins and anyway I used it in all of these tests), causes the kernel not to get EDID data in this particular software/hardware case.

Changing the adaptor/cable with a DVI cable, allow kernel to correctly read EDID data. I can see it from the Xorg.0.log and of course display resolution (if I use in this case the read-edid command you link me, I get anyway the same error message: "Looks like no busses have an EDID. Sorry!").

It's strange because using the same adaptor/cable/monitor with the same motherboard (Intel DG45FC) and the previuos software releases I get correctly EDID data. I attach the Xorg.0.log (kernel 2.6.32-r20)

And it's also strange that using the same adaptor/cable/monitor with a new motherboard, also equipped with DVI-I port connector (Intel DH77DF with a Sandy Bridge CPU) and the current software releases, I get EDID data without any problem.

Do you think there is no software issue even if restricted to the adaptor DVI-I VGA usage on G45 chipset?
Comment 24 Marco De Michele 2012-09-26 07:51:25 UTC
Created attachment 67709 [details]
G45 xorg log (kernel 2.6.32-r20)
Comment 25 Daniel Vetter 2012-09-26 10:19:31 UTC
On Wed, Sep 26, 2012 at 9:50 AM,  <bugzilla-daemon@freedesktop.org> wrote:
> Do you think there is no software issue even if restricted to the adaptor
> DVI-I VGA usage on G45 chipset?

Yeah, it looks like the edid is on another line pair than what the
driver expects. And the tool doesn't seem to work. I'll look into this
again once I'm back home next week, currently travelling.
Comment 26 Chris Wilson 2012-12-07 19:46:12 UTC
*poke*
Comment 27 Daniel Vetter 2013-08-18 19:01:34 UTC
Hm, this bug was idling for a long time. Can you please retest on latest bits to check whether your issue still exists?
Comment 28 Marco De Michele 2013-08-19 08:10:30 UTC
(In reply to comment #27)
> Hm, this bug was idling for a long time. Can you please retest on latest
> bits to check whether your issue still exists?

Yes, you're right, I tested on kernel 3.8.13 + driver Intel 2.20.13 and it works correctly.
Comment 29 Daniel Vetter 2013-08-19 08:32:33 UTC
Cool. Thanks for reporting back and please reopen (or file a new bug) if something breaks again.


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.