Bug 28332 - [RV620] Can not re-enable LVDS after using HDMI only
[RV620] Can not re-enable LVDS after using HDMI only
Product: Drivers
Classification: Unclassified
Component: Video(DRI - non Intel)
All Linux
: P1 normal
Assigned To: drivers_video-dri
Depends on:
Blocks: 21782
  Show dependency treegraph
Reported: 2011-02-05 22:42 UTC by Rafał Miłecki
Modified: 2011-03-07 20:39 UTC (History)
5 users (show)

See Also:
Kernel Version: 2.6.37
Tree: Mainline
Regression: Yes

dump after enabling HDMI (20.04 KB, text/plain)
2011-02-05 22:44 UTC, Rafał Miłecki
dump after enabling HDMI, disabling LVDS, enabling LVDS (20.04 KB, text/plain)
2011-02-05 22:45 UTC, Rafał Miłecki
diff of dumps (1.83 KB, text/plain)
2011-02-05 22:46 UTC, Rafał Miłecki
dmesg from 2.6.36-rc3 (51.91 KB, text/plain)
2011-02-06 01:06 UTC, Rafał Miłecki
dmesg from 2.6.37 (43.35 KB, text/plain)
2011-02-06 01:07 UTC, Rafał Miłecki
vbios (63.50 KB, application/octet-stream)
2011-02-07 20:35 UTC, Rafał Miłecki

Description Rafał Miłecki 2011-02-05 22:42:23 UTC
I've compared this issue using 2 kernels:

1) Not-affected 2.6.36-rc3 built from drm-radeon-testing commit 5c752a91c4dbb57c88d34ab48e600ab087aaddb2
2) Affected 2.6.37 built from wireless-testing commit ae266db027ff4e3d985ac43c3afc1aed261554e5

Trees could be rebased since my checkouting :(

Test #1 (after cold boot):
xrandr --output LVDS --off
sleep 5s
xrandr --output LVDS --auto
Result: LVDS comes back

Test #2 (after cold boot):
xrandr --output HDMI-0 --auto
xrandr --output LVDS --off
sleep 5s
xrandr --output LVDS --auto
Result: LVDS stays black. When I type "init 0" my X closes and... both screens display console!
Comment 1 Rafał Miłecki 2011-02-05 22:44:52 UTC
Created attachment 46502 [details]
dump after enabling HDMI

xrandr --output HDMI-0 --auto
Comment 2 Rafał Miłecki 2011-02-05 22:45:51 UTC
Created attachment 46512 [details]
dump after enabling HDMI, disabling LVDS, enabling LVDS

xrandr --output HDMI-0 --auto
xrandr --output LVDS --off
sleep 5s
xrandr --output LVDS --auto
Comment 3 Rafał Miłecki 2011-02-05 22:46:43 UTC
Created attachment 46522 [details]
diff of dumps
Comment 4 Rafał Miłecki 2011-02-06 00:02:09 UTC
That radeontool is crappy. It really need options of dumping all regs!

There is what I need to perform after "xrandr --output LVDS --auto":
rhd_dump -w 0x7F80 0x0300001D 1:00.0
rhd_dump -w 0x6078 0x3FCFF3FC 1:00.0
rhd_dump -w 0x6080 0x00410311 1:00.0
rhd_dump -w 0x6084 0x00000000 1:00.0
rhd_dump -w 0x609C 0x00020002 1:00.0

The first one commands enabled my LVDS, but picture is totally meshy, blurry, etc. After executing all next 4 commands it becomes itself again. I suspect not all of these 4 commands are needed, but didn't bother to figure out which can be dropped.

Does this give you any hint?
Comment 5 Rafał Miłecki 2011-02-06 01:06:22 UTC
Created attachment 46532 [details]
dmesg from 2.6.36-rc3

I had to:
grep -v "drm:r600_irq_set" messages | grep -v "drm:drm_ioctl" | grep -v "drm:r600_irq_process"
Comment 6 Rafał Miłecki 2011-02-06 01:07:19 UTC
Created attachment 46542 [details]
dmesg from 2.6.37

I had to:
grep -v "drm:r600_irq_set" messages | grep -v "drm:drm_ioctl" | grep -v
Comment 7 Alex Deucher 2011-02-07 19:35:47 UTC
Can you attach your vbios and dmesg when the driver loads?  Any chance you could bisect this?

to dump your vbios:
(as root)
(use lspci to get the bus id)
cd /sys/bus/pci/devices/<pci bus id>
echo 1 > rom
cat rom > /tmp/vbios.rom
echo 0 > rom
Comment 8 Alex Deucher 2011-02-07 19:39:39 UTC
Also, radeontool only dumps r1xx-r4xx display regs.  For newer asics, use avivotool (included in the radeontool package http://cgit.freedesktop.org/~airlied/radeontool/).  E.g., 'avivotool regs all' or 'avivotool regmatch <reg offset>' or 'avivotool regset <reg offset> <value>'.
Comment 9 Rafał Miłecki 2011-02-07 20:35:28 UTC
Created attachment 46782 [details]
Comment 10 Rafał Miłecki 2011-02-07 20:36:38 UTC
Thanks for clarifying radeontool vs. avivotool.

My access to HDMI display is limited, won't have it for next ~10 days :( If you won't see something obvious, then wait, I'll try bisecting then.
Comment 11 Alex Deucher 2011-02-07 21:01:07 UTC
You can try forcing the hdmi on with xrandr for testing even if you don't have an hdmi monitor handy:
xrandr --addmode HDMI-0 1024x768
xrandr --output HDMI-0 --mode 1024x768

Also, FYI, I added a new radeonreg utility to radeontool/avivotool that will dump the appropriate display regs for your asic:
'radeonreg regs all'
Comment 12 Rafał Miłecki 2011-02-16 23:07:40 UTC
This does not happen in 2.6.38-rc4. I am not sure about final version of 2.6.37 yet.
Comment 13 Rafał Miłecki 2011-03-07 18:45:12 UTC
I've tried, it's free of this bug as well.

I had to be some quickly fixed regression I met in wireless-testing.

Note You need to log in before you can comment on or make changes to this bug.