Thread (16 messages) 16 messages, 4 authors, 2006-03-01

[patch] [radeonfb] Radeon Mobility X700 (M26) and ATOM bios support

STALE7522d

From: Stuffed Crust <hidden>
Date: 2006-01-03 20:48:56

Signed-off-by:  Solomon Peachy <redacted>

Newer Radeon graphics cards use a different table layout in their 
BIOSes, known as 'ATOM'.  

I've attached a patch (against 2.6.15) which implements the PLL and LVDS
parsing out of the ATOM BIOSes, using the current X.org sources as a
reference.  Notably absent is the code which detects the connectors and
TDMS information, but it's of lesser importance at the moment.

This code still has quirks, but I'm not sure if those are due to bugs in
my patch or incomplete/buggy support for the RV410.  So I'd appreciate
it if people could try this out, especially if they have a newer ATOM
BIOS in their radeon card, and let me know what happens. 

Finally, this patch also has PCI IDs added for my Radeon Mobility X700 
(M26) adapter. 

Below is the dump of my system with this driver:

radeonfb_pci_register BEGIN
ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 18 (level, low) -> IRQ 217
radeonfb (0000:01:00.0): Found 131072k of DDR 128 bits wide videoram
radeonfb (0000:01:00.0): mapped 16384k videoram
ATOM BIOS detected
radeonfb: Retreived PLL infos from BIOS
radeonfb: Reference=27.00 MHz (RefDiv=12) Memory=330.00 Mhz, System=358.00 MHz
radeonfb: PLL min 20000 max 50000
XXXX Write ATOM BIOS connector parse
Starting monitor auto detection...
radeonfb: I2C (port 1) ... not found
radeonfb: I2C (port 2) ... not found
radeonfb: I2C (port 3) ... not found
radeonfb: I2C (port 4) ... not found
radeonfb: I2C (port 2) ... not found
radeonfb: I2C (port 4) ... not found
Non-DDC laptop panel detected
radeonfb: I2C (port 3) ... not found
radeonfb: I2C (port 4) ... not found
radeonfb: Monitor 1 type LCD found
radeonfb: Monitor 2 type CRT found
radeonfb: detected LVDS panel size from BIOS: 1680x1050
BIOS provided panel power delay: 15369
Setting up default mode based on panel info
radeonfb: Dynamic Clock Power Management enabled
hStart = 1728, hEnd = 1760, hTotal = 1840
vStart = 1053, vEnd = 1059, vTotal = 1080
h_total_disp = 0xd100e5           hsync_strt_wid = 0x406ba
v_total_disp = 0x4190437          vsync_strt_wid = 0x6041c
pixclock = 8387
freq = 11923
freq = 11923, PLL min = 20000, PLL max = 50000
ref_div = 12, ref_clk = 2700, output_freq = 23846
ref_div = 12, ref_clk = 2700, output_freq = 23846
post div = 0x1
fb_div = 0x6a
ppll_div_3 = 0x1006a
Console: switching to colour frame buffer device 210x65
radeonfb (0000:01:00.0): ATI Radeon VS 
radeonfb_pci_register END

And at this point, I have yummy hires fbdev goodness.  

I also have a question about the panel_info.pwr_delay field --- Is this
is supposed to be the time we wait for the LCD to settle after a power
state change?  X.org seems to use 200ms everywhere, but the default in
radeonfb seems to be 2000ms, and my panel is reporting a whopping
15369ms.  I'm also forced to use the default pll.ref_div of 12, and I've
tweaked the code to make that default universal if the BIOS information
is clearly bogus.

 - Solomon
-- 
Solomon Peachy        				 ICQ: 1318344
Melbourne, FL 					 
Quidquid latine dictum sit, altum viditur.

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help