Bug 14596

Summary: radeon DRI driver produces garbled console with KMS enabled on Thinkpad T42
Product: Drivers Reporter: Paul Martin (pm)
Component: Video(DRI - non Intel)Assignee: drivers_video-dri
Status: RESOLVED OBSOLETE    
Severity: normal CC: airlied, alan, egorov_egor
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.0 Subsystem:
Regression: Yes Bisected commit-id:
Attachments: Config file
dmesg output

Description Paul Martin 2009-11-13 20:34:42 UTC
I'm currently on 2.6.32-rc7-00052-g0a24168, but this has happened since KMS was introduced. Booting with radeon.modeset=0 works around the problem.

The display is OK, except that the console font is garbled horizontally, as if the pixels for each character are slightly permuted or interleaved.

 [drm] Initialized drm 1.1.0 20060810
 [drm] Initialized radeon 1.31.0 20080528 for 0000:01:00.0 on minor 0
 agpgart-intel 0000:00:00.0: AGP 2.0 bridge
 agpgart-intel 0000:00:00.0: putting AGP V2 device into 4x mode
 pci 0000:01:00.0: putting AGP V2 device into 4x mode
 [drm] Setting GART location based on new memory map
 [drm] Loading R100 Microcode
 platform radeon_cp.0: firmware: requesting radeon/R100_cp.bin
 [drm] writeback test succeeded in 1 usecs
 mtrr: no MTRR for e0000000,2000000 found
 [drm] Module unloaded
 [drm] Initialized drm 1.1.0 20060810
 [drm] radeon defaulting to kernel modesetting.
 [drm] radeon kernel modesetting enabled.
 [drm] radeon: Initializing kernel modesetting.
 [drm] register mmio base: 0xC0100000
 [drm] register mmio size: 65536
 [drm] GPU reset succeed (RBBM_STATUS=0x00000140)
 agpgart-intel 0000:00:00.0: AGP 2.0 bridge
 agpgart-intel 0000:00:00.0: putting AGP V2 device into 1x mode
 radeon 0000:01:00.0: putting AGP V2 device into 1x mode
 [drm] radeon: VRAM 64M
 [drm] radeon: VRAM from 0x00000000 to 0x03FFFFFF
 [drm] radeon: GTT 256M
 [drm] radeon: GTT from 0xD0000000 to 0xDFFFFFFF
 [drm] radeon: irq initialized.
 [drm] Detected VRAM RAM=64M, BAR=128M
 [drm] RAM width 64bits DDR
 [TTM] Zone  kernel: Available graphics memory: 443890 kiB.
 [TTM] Zone highmem: Available graphics memory: 1037494 kiB.
 [drm] radeon: 32M of VRAM memory ready
 [drm] radeon: 256M of GTT memory ready.
 [drm] radeon: cp idle (0x00008080)
 [drm] Loading R100 Microcode
 platform radeon_cp.0: firmware: requesting radeon/R100_cp.bin
 [drm] radeon: ring at 0x00000000D0000000
 [drm] ring test succeeded in 1 usecs
 [drm] radeon: ib pool ready.
 [drm] ib test succeeded in 0 usecs
 [drm] DFP table revision: 2
 [drm] Panel ID String: 1024x768
 [drm] Panel Size 1024x768
 [drm] Default TV standard: NTSC
 [drm] 27.000000000 MHz TV ref clk
 [drm] Radeon Display Connectors
 [drm] Connector 0:
 [drm]   VGA
 [drm]   DDC: 0x60 0x60 0x60 0x60 0x60 0x60 0x60 0x60
 [drm]   Encoders:
 [drm]     CRT1: INTERNAL_DAC1
 [drm] Connector 1:
 [drm]   DVI-D
 [drm]   DDC: 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64
 [drm]   Encoders:
 [drm]     DFP1: INTERNAL_TMDS1
 [drm] Connector 2:
 [drm]   LVDS
 [drm]   Encoders:
 [drm]     LCD1: INTERNAL_LVDS
 [drm] Connector 3:
 [drm]   S-video
 [drm]   Encoders:
 [drm]     TV1: INTERNAL_DAC2
 [drm] fb mappable at 0xE0040000
 [drm] vram apper at 0xE0000000
 [drm] size 3145728
 [drm] fb depth is 24
 [drm]    pitch is 4096
 [drm] LVDS-13: set mode 1024x768 17
 Console: switching to colour frame buffer device 128x48
 fb0: radeondrmfb frame buffer device
 registered panic notifier
 [drm] Initialized radeon 2.0.0 20080528 for 0000:01:00.0 on minor 0

Xorg identifies the card as:
(--) RADEON(0): Chipset: "ATI Radeon Mobility M7 LW (AGP)" (ChipID = 0x4c57)
(II) RADEON(0): Detected total video RAM=32768K, accessible=65536K (PCI BAR=131072K)
(--) RADEON(0): Mapped VideoRAM: 32768 kByte (64 bit DDR SDRAM)

lspci says:
01:00.0 VGA compatible controller: ATI Technologies Inc Radeon Mobility M7 LW [Radeon Mobility 7500]
Comment 1 Dave Airlie 2009-11-13 21:13:25 UTC
are you booting into X, stopping it, rmmod and modprobiing?

don't do this, boot with radeon.modeset=1 and see if this still happens.
Comment 2 Paul Martin 2009-11-13 23:12:51 UTC
The radeon module is loaded long before X starts, and causes console font garbling during boot.

fbset output with radeon modeset=1:

mode "1024x768-0"
    # D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
    geometry 1024 768 1024 768 32
    timings -1 0 0 0 0 0 0
    rgba 8/16,8/8,8/0,0/0
endmode

fbset output with radeonfb (having set depth to 32):

mode "1024x768-60"
    # D: 65.003 MHz, H: 48.365 kHz, V: 60.006 Hz
    geometry 1024 768 1024 768 32
    timings 15384 168 16 30 2 136 6
    hsync high
    vsync high
    rgba 8/16,8/8,8/0,0/0
endmode

radeonfb does not cause console corruption.
Comment 3 Michel Dänzer 2009-11-13 23:23:06 UTC
fbset -i

would give more interesting output.
Comment 4 Paul Martin 2009-11-13 23:46:55 UTC
radeon:

mode "1024x768-0"
    # D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
    geometry 1024 768 1024 768 32
    timings -1 0 0 0 0 0 0
    rgba 8/16,8/8,8/0,0/0
endmode

Frame buffer device information:
    Name        : radeondrmfb
    Address     : 0xe0040000
    Size        : 3145728
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 1
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 4096
    Accelerator : No

radeonfb:

mode "1024x768-60"
    # D: 65.003 MHz, H: 48.365 kHz, V: 60.006 Hz
    geometry 1024 768 1024 768 32
    timings 15384 168 16 30 2 136 6
    hsync high
    vsync high
    rgba 8/16,8/8,8/0,0/0
endmode

Frame buffer device information:
    Name        : ATI Radeon 4c57
    Address     : 0xe0000000
    Size        : 33554432
    Type        : PACKED PIXELS
    Visual      : DIRECTCOLOR
    XPanStep    : 8
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 4096
    MMIO Address: 0xc0100000
    MMIO Size   : 16384
    Accelerator : ATI Radeon family
Comment 5 Paul Martin 2009-11-14 04:23:50 UTC
In addirion, if I upgrade my X.Org drivers to a KMS/DRI2 capable version, the horizontal permutation of pixels seen on the console carries over into X.
Comment 6 Dave Airlie 2009-11-14 04:25:22 UTC
Are you loading both radeon and radeonfb on the same kernel ,perhaps post a full dmesg and config file. I have a T42 with Radeon 7500 at 1024x768 and it works fine.
Comment 7 Paul Martin 2009-11-14 13:47:47 UTC
I'm only loading either radeon or radeonfb, never both.
Comment 8 Paul Martin 2009-11-14 13:48:50 UTC
Created attachment 23780 [details]
Config file
Comment 9 Paul Martin 2009-11-14 15:10:49 UTC
Created attachment 23782 [details]
dmesg output
Comment 10 Paul Martin 2010-07-09 14:25:41 UTC
This problem doesn't exist in current kernels (2.3.34 and later).
Comment 11 Egor Y. Egorov 2010-07-09 17:45:24 UTC
Similar problem on 2.6.34 (gentoo- and zen-kernel).
To my PC connected monitor (DVI-0) and TV (S-video).
Monitor display is ok.
TV display fine with radeon.modeset-0
With radeon.modeset=1 screen has horizontal line (like http://bugs.freedesktop.org/show_bug.cgi?id=26915), but patch http://bugs.freedesktop.org/attachment.cgi?id=33809&action=edit dont fix it.

Sorry, my English is bad.

Some information about my system:

EGOROV eegorov # lspci | grep VGA
01:00.0 VGA compatible controller: ATI Technologies Inc RV570 [Radeon X1950 Pro] (rev 9a)

EGOROV eegorov # zgrep -i "radeon\|kms" /proc/config.gz 
CONFIG_DRM_KMS_HELPER=y
CONFIG_DRM_RADEON=y
CONFIG_DRM_RADEON_KMS=y
# CONFIG_FB_RADEON is not set

EGOROV eegorov # dmesg | grep drm
[drm] Initialized drm 1.1.0 20060810
[drm] radeon defaulting to kernel modesetting.
[drm] radeon kernel modesetting enabled.
[drm] initializing kernel modesetting (RV570 0x1002:0x7280).
[drm] register mmio base: 0xFBEE0000
[drm] register mmio size: 65536
[drm] GPU reset succeed (RBBM_STATUS=0x10000140)
[drm] Possible LM64 thermal controller at 0x4c
[drm] 1 Power State(s)
[drm] State 0 Default (default)
[drm]   16 PCIE Lanes
[drm]   1 Clock Mode(s)
[drm]           0 engine/memory: 600000/700000
[drm] radeon: power management initialized
[drm] Generation 2 PCI interface, using max accessible memory
[drm] radeon: using MSI.
[drm] radeon: irq initialized.
[drm] Detected VRAM RAM=256M, BAR=256M
[drm] RAM width 256bits DDR
[drm] radeon: 256M of VRAM memory ready
[drm] radeon: 512M of GTT memory ready.
[drm] GART: num cpu pages 131072, num gpu pages 131072
[drm] radeon: 3 quad pipes, 1 z pipes initialized.
[drm] PCIE GART of 512M enabled (table at 0x00040000).
[drm] radeon: cp idle (0x10000C03)
[drm] Loading R500 Microcode
[drm] radeon: ring at 0x0000000010000000
[drm] ring test succeeded in 3 usecs
[drm] radeon: ib pool ready.
[drm] ib test succeeded in 0 usecs
[drm] Default TV standard: PAL
[drm] Default TV standard: PAL
[drm] Default TV standard: PAL
[drm] Radeon Display Connectors
[drm] Connector 0:
[drm]   DVI-I
[drm]   HPD2
[drm]   DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7e4c 0x7e4c
[drm]   Encoders:
[drm]     CRT1: INTERNAL_KLDSCP_DAC1
[drm]     DFP3: INTERNAL_LVTM1
[drm] Connector 1:
[drm]   S-video
[drm]   Encoders:
[drm]     TV1: INTERNAL_KLDSCP_DAC2
[drm] Connector 2:
[drm]   DVI-I
[drm]   HPD1
[drm]   DDC: 0x7e50 0x7e50 0x7e54 0x7e54 0x7e58 0x7e58 0x7e5c 0x7e5c
[drm]   Encoders:
[drm]     CRT2: INTERNAL_KLDSCP_DAC2
[drm]     DFP1: INTERNAL_KLDSCP_TMDS1
[drm] fb mappable at 0xD00C0000
[drm] vram apper at 0xD0000000
[drm] size 5242880
[drm] fb depth is 24
[drm]    pitch is 5120
fbcon: radeondrmfb (fb0) is primary device
fb0: radeondrmfb frame buffer device
[drm] Initialized radeon 2.3.0 20080528 for 0000:01:00.0 on minor 0
Comment 12 Egor Y. Egorov 2010-11-09 07:22:05 UTC
on 2.6.36 same problem.
Comment 13 Egor Y. Egorov 2012-02-24 15:37:01 UTC
same on all 3.x
Comment 14 Alan 2015-02-19 15:35:26 UTC
This bug relates to a very old kernel. Closing as obsolete.

Please reopen if seen on a modern 3.x kernel (3.10+ say)