I've netbook Asus 1215B with AMD E-450 and HD6320.
When I connect my TV over HDMI I get 2 corrupted displays after a second or two.
I'm using drm-next branch of git://people.freedesktop.org/~airlied/linux from yesterday (04b3924db60f974d2b4af0b2e19a0ae7ca202dc7).
** LVDS corruption **
LVDS corruption consists of two problems:
1) Display is corrupted
2) Everything is moved (bottom and right parts of display are black)
After booting (without HDMI connected) register 0x6818 is set to 0x00000640. When I connect HDMI, driver changes it to 0x00000580. I have no idea why does it happen, but it's source of the corruption. Setting it back with:
avivotool regset 0x6818 0x00000640
removes corruption. I believe register is defined as:
#define EVERGREEN_GRPH_PITCH 0x6818
With fglrx register 0x6818 is set to 0x640 all the time (with HDMI and without)
After booting (without HDMI connected) register 0x6810 is set to 0x00000000. When I connect HDMI, driver changes it to 0x00142000. It's the source of moved display. Setting it back with:
avivotool regset 0x6810 0x00000000
removes movement. I believe register is defined as:
#define EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS 0x6810
With fglrx register 0x6810 is set to 0 all the time (with HDMI and without)
** LVDS corruption **
After disconnecting HDMI corruption does not disappear.
Switching to console (ALT+CTRL+F1) does not fix corruption.
However switching back to X (ALT+CTRL+F7) fixes the corruption.
One more interesting thing: DFP1 seems to be disconnected all the time according to xrandr:
DFP1 disconnected (normal left inverted right x axis y axis)
** HDMI corruption **
After connecting HDMI (and waiting second or two) my TV starts displaying something. That looks like green and white vertical stripes. However xrandr displays HDMI (DFP1) as disconnected and it really seems that DFP1 is not programmed at all.
When I compare regs between radeon and (fglrx or radeon-with-DFP1-attached-at-boot-time) [always with HDMI attached], there are a lot of differences. About 30 in low registers and over 100 differences in registers 0x28... and 0x29...
Just call me an idiot. I've been using fglrx Xorg driver with radeon kernel module...
Plain radeon + radeon works OK!