[Bug 31339] HP/Compaq 8510w HDMI port only works when booted with monitor attached

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Nov 3 09:29:08 PDT 2010


https://bugs.freedesktop.org/show_bug.cgi?id=31339

--- Comment #10 from Tyson Whitehead <twhitehead at gmail.com> 2010-11-03 09:29:06 PDT ---
Created an attachment (id=40015)
 View: https://bugs.freedesktop.org/attachment.cgi?id=40015
 Review: https://bugs.freedesktop.org/review?bug=31339&attachment=40015

Patch to correct (likely) typo in indexing in atom bios data walking code

Hi Alex,

I gave your patch a try.  It didn't work as it, but I'm pretty sure that is
because of an index typo in the atom bios router object walking code.  I'm
attaching a patch to fix this.

With this patch, and some additional dump code in the atom bios data walking
code, I get the following in my dmesg log

[   25.805592] [drm] Connector Object 0: (id,num,type) = (05,1,3)
[   25.805595] [drm]   Graph Object 0: (id,num,type) = (15,1,2)
[   25.805650] [drm] Connector Object 1: (id,num,type) = (0c,1,3)
[   25.805652] [drm]   Graph Object 0: (id,num,type) = (13,2,2)
[   25.805677] [drm]   Graph Object 1: (id,num,type) = (01,1,4)
[   25.805679] [drm]     Router Object 0: (id) = (4101)
[   25.805681] [drm]       Atom I2C Record: (info,addr) = (76,41)
[   25.805683] [drm]       DDC Path Selector: (type,pin,state) = (2,6,2)
[   25.805685] [drm]       Data Clock Patch Selector: (type,pin,state) =
(2,1,0)
[   25.805734] [drm] Connector Object 2: (id,num,type) = (04,1,3)
[   25.805736] [drm]   Graph Object 0: (id,num,type) = (13,1,2)
[   25.805759] [drm]   Graph Object 1: (id,num,type) = (01,1,4)
[   25.805761] [drm]     Router Object 0: (id) = (4101)
[   25.805763] [drm]       Atom I2C Record: (info,addr) = (02,41)
[   25.805765] [drm]       DDC Path Selector: (type,pin,state) = (2,6,4)
[   25.805767] [drm]       Data Clock Patch Selector: (type,pin,state) =
(2,1,1)
[   25.805813] [drm] Connector Object 3: (id,num,type) = (0e,1,3)
[   25.805815] [drm]   Graph Object 0: (id,num,type) = (0f,1,2)
[   25.805882] [drm] Connector Object 4: (id,num,type) = (0f,1,3)
[   25.805884] [drm]   Graph Object 0: (id,num,type) = (16,1,2)
[   25.805952] [drm] Connector Object 5: (id,num,type) = (0f,1,3)
[   25.805954] [drm] Radeon Display Connectors
[   25.805956] [drm] Connector 0:
[   25.805957] [drm]   VGA
[   25.805959] [drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c
0x7e4c
[   25.805961] [drm]   Encoders:
[   25.805962] [drm]     CRT1: INTERNAL_KLDSCP_DAC1
[   25.805964] [drm] Connector 1:
[   25.805965] [drm]   HDMI-A
[   25.805966] [drm]   HPD2
[   25.805968] [drm]   DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c
0x7e5c
[   25.805970] [drm]   DDC Router 0x6/0x2
[   25.805972] [drm]   Clock/Data Router 0x1/0x0
[   25.805973] [drm]   Encoders:
[   25.805974] [drm]     DFP1: INTERNAL_KLDSCP_TMDS1
[   25.805976] [drm] Connector 2:
[   25.805977] [drm]   DVI-D
[   25.805978] [drm]   HPD1
[   25.805980] [drm]   DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c
0x7e5c
[   25.805982] [drm]   DDC Router 0x6/0x4
[   25.805984] [drm]   Clock/Data Router 0x1/0x1
[   25.805985] [drm]   Encoders:
[   25.805986] [drm]     DFP2: INTERNAL_KLDSCP_TMDS1
[   25.805988] [drm] Connector 3:
[   25.805989] [drm]   LVDS
[   25.805991] [drm]   DDC: 0xac0 0xac0 0xac4 0xac4 0xac8 0xac8 0xacc 0xacc
[   25.805993] [drm]   DDC Router 0x6/0x4
[   25.805994] [drm]   Clock/Data Router 0x1/0x1
[   25.805996] [drm]   Encoders:
[   25.805997] [drm]     LCD1: INTERNAL_LVTM1
[   25.805999] [drm] Connector 4:
[   25.806000] [drm]   DIN
[   25.806001] [drm]   Encoders:
[   25.806002] [drm]     TV1: INTERNAL_KLDSCP_DAC2

and the display comes up properly on plugin after start and resume.  Without it
the router object is ignored as it doesn't have the same index as the
associated graph object, and the display does not come up properly on plugin
after start or resume unless I manually write the i2c registers using i2cset.

Unfortunately, this patch also seems to result in detection confusion between
the HDMI and DVI port.  The monitor is listed as being plugged into both ports
again (as detailed in comment 21 and 22 of 18564), and the system defaults to
trying to turn on the DVI one, which doesn't work.

I then have to manually turn off the DVI one with "xrandr --output DVI-0 --off"
and on the HDMI on "xrandr --output HDMI-0 --auto" in order to get my display. 
All in all, I'm pretty excited though.  This seems to be getting very close.

Cheers!  -Tyson

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the xorg-driver-ati mailing list