Created attachment 24344 [details] Test case The colors on my monitor are too bright when KMS is enabled, both in the console and in Xorg. I have a Radeon 9500 PRO, but Radeon 9000 is also affected[1]. I've attached a script to test the behavior in the console. It should display a gradient with yellow colors, and all colors should be distinguishable (except possibly the first two depending on the monitor settings). With KMS enabled, the colors are too bright and all but the last two are indistinguishable. I'm using Ubuntu 10.04 (alpha version with latest upgrades) with this kernel: Linux crashie2 2.6.32-9-generic #13-Ubuntu SMP Thu Dec 17 17:02:51 UTC 2009 i686 GNU/Linux [1] https://bugzilla.redhat.com/show_bug.cgi?id=505903
Created attachment 24345 [details] Output from dmesg
Created attachment 24346 [details] Output from "radeontool regs" with KMS disabled and enabled Here's the output from "radeontool regs" with KMS disabled and enabled, respective. As you can see there are a few registers that differ: -RADEON_DAC_MACRO_CNTL 00000808 +RADEON_DAC_MACRO_CNTL 00000000 -RADEON_TV_DAC_CNTL 07000040 +RADEON_TV_DAC_CNTL 07780142 -RADEON_CRTC_EXT_CNTL 00008040 +RADEON_CRTC_EXT_CNTL 0d008040 Maybe this is somehow related to this bug?
Created attachment 24351 [details] fix primary dac adj values This patch should fix it.
No, I still have the same problem with your patch (tried it with both the Ubuntu DRM modules and the latest modules in Linus' tree). And the radeontool regs still have the same values.
Can you attach a copy of your video bios? (as root): cd /sys/bus/pci/devices/<pci bus id> echo 1 > rom cat rom > /tmp/vbios.rom echo 0 > rom
Created attachment 24362 [details] Dump of video BIOS
Fixed in 2.6.34. Thank you!
I'm experiencing the same issue with Linux 3.2. Here is some info: ---------- 8< ---------- $ uname -r 3.2.0-4-686-pae $ dmesg | grep -Ei drm\|radeon [ 29.378928] [drm] Initialized drm 1.1.0 20060810 [ 29.555938] [drm] radeon kernel modesetting enabled. [ 29.557914] [drm] initializing kernel modesetting (R200 0x1002:0x514D 0x174B:0x7149). [ 29.557957] [drm] register mmio base: 0xE9000000 [ 29.557960] [drm] register mmio size: 65536 [ 29.559998] radeon 0000:02:00.0: putting AGP V2 device into 4x mode [ 29.568192] radeon 0000:02:00.0: GTT: 128M 0xE0000000 - 0xE7FFFFFF [ 29.568207] radeon 0000:02:00.0: VRAM: 256M 0x00000000D0000000 - 0x00000000DFFFFFFF (128M used) [ 29.568226] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010). [ 29.568229] [drm] Driver supports precise vblank timestamp query. [ 29.568265] [drm] radeon: irq initialized. [ 29.568460] [drm] Detected VRAM RAM=256M, BAR=256M [ 29.568466] [drm] RAM width 128bits DDR [ 29.569943] [drm] radeon: 128M of VRAM memory ready [ 29.569947] [drm] radeon: 128M of GTT memory ready. [ 29.571440] radeon 0000:02:00.0: WB disabled [ 29.572956] [drm] Loading R200 Microcode [ 29.649424] platform radeon_cp.0: firmware: agent loaded radeon/R200_cp.bin into memory [ 29.649935] [drm] radeon: ring at 0x00000000E0001000 [ 29.649956] [drm] ring test succeeded in 0 usecs [ 29.650307] [drm] radeon: ib pool ready. [ 29.650420] [drm] ib test succeeded in 0 usecs [ 29.651533] [drm] Radeon Display Connectors [ 29.651538] [drm] Connector 0: [ 29.651540] [drm] VGA [ 29.651544] [drm] DDC: 0x60 0x60 0x60 0x60 0x60 0x60 0x60 0x60 [ 29.651547] [drm] Encoders: [ 29.651549] [drm] CRT1: INTERNAL_DAC1 [ 29.651552] [drm] Connector 1: [ 29.651553] [drm] DVI-D [ 29.651555] [drm] HPD1 [ 29.651559] [drm] DDC: 0x64 0x64 0x64 0x64 0x64 0x64 0x64 0x64 [ 29.651561] [drm] Encoders: [ 29.651563] [drm] DFP1: INTERNAL_TMDS1 [ 29.893561] [drm] fb mappable at 0xD0040000 [ 29.893566] [drm] vram apper at 0xD0000000 [ 29.893569] [drm] size 5242880 [ 29.893571] [drm] fb depth is 24 [ 29.893574] [drm] pitch is 5120 [ 29.894525] fbcon: radeondrmfb (fb0) is primary device [ 29.895295] fb0: radeondrmfb frame buffer device [ 29.895297] drm: registered panic notifier [ 29.895312] [drm] Initialized radeon 2.12.0 20080528 for 0000:02:00.0 on minor 0 # lspci -vvvs 02:00.0 02:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Radeon R200 QM [Radeon 9100] (rev 80) (prog-if 00 [VGA controller]) Subsystem: PC Partner Limited Device 7149 Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32 (2000ns min), Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 19 Region 0: Memory at d0000000 (32-bit, prefetchable) [size=256M] Region 1: I/O ports at c000 [size=256] Region 2: Memory at e9000000 (32-bit, non-prefetchable) [size=64K] [virtual] Expansion ROM at e8000000 [disabled] [size=128K] Capabilities: [58] AGP version 2.0 Status: RQ=48 Iso- ArqSz=0 Cal=0 SBA+ ITACoh- GART64- HTrans- 64bit- FW+ AGP3- Rate=x1,x2,x4 Command: RQ=32 ArqSz=0 Cal=0 SBA+ AGP+ GART64- 64bit- FW- Rate=x4 Capabilities: [50] Power Management version 2 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Kernel driver in use: radeon ---------- >8 ----------
Created attachment 94171 [details] ATI Radeon 9100 registers (with and without KMS) I've tried `radeontool regs' both with and without KMS. The outputs are in the attached archive. Execution of `radeontool regset DAC_MACRO_CNTL 2056' fixes the problem.
Created attachment 94181 [details] ATI Radeon 9100 BIOS dump
Created attachment 94191 [details] add quirk for 9100 board This should fix your board.