Avivo with ATI X12xx
Matthew Mastracci
mmastrac at gmail.com
Sun Jul 29 16:48:57 PDT 2007
I'm working on getting my ATI X1200-series video card working with
Avivo, but I seem to be stuck.
I added my PCI IDs to the avivo source and installed it on FC7 64-bit
machine and fired up X while connected to my Dell FP LCD over DVI.
The screen goes blank and the monitor goes into power-saving mode. If
I switch VTs, text mode is restored properly and the monitor comes
back on.
I can try to dump registers and/or try various patches if necessary.
Any suggestions on where to start?
Here's the lspci output:
01:05.0 VGA compatible controller: ATI Technologies Inc Radeon X1200
Series (prog-if 00 [VGA])
Subsystem: Giga-byte Technology Unknown device d001
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR-
Latency: 32, Cache Line Size: 4 bytes
Interrupt: pin A routed to IRQ 18
Region 0: Memory at d8000000 (64-bit, prefetchable) [size=128M]
Region 2: Memory at fdfe0000 (64-bit, non-prefetchable) [size=64K]
Region 4: I/O ports at ee00 [size=256]
Region 5: Memory at fde00000 (32-bit, non-prefetchable) [size=1M]
Capabilities: [50] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [80] Message Signalled Interrupts: Mask- 64bit+
Queue=0/0 Enable-
Address: 0000000000000000 Data: 0000
Here's avivotool romtables mmap:
BIOS Tables:
------------
Header at 180, type: 36 [ATOM]
OEM ID: 01 01
ATOM BIOS detected !
Clock info block:
SCLK : 400.000000
MCLK : 200.000000
RefClk : 14.320000
PPLL Min: 0.000000
PPLL Max: 1200.000000
Connector table:
0: 0000c011 , Id: 0, Type: VGA, DDC: AVIVO connector #2?, DAC: CRT,
GPIO: 0x7E50
2: 00000051 , Id: 0, Type: STV, DDC: AVIVO connector #2?, DAC: CRT,
GPIO: 0x7E50
TMDS PLLs:
Maximum frequency: 165000Hz
0: 0Hz 0
1: 720Hz 1005
2: 0Hz 82aa
3: 22180Hz 1e8f
No LVDS
Here's my simple PCI ID hack:
diff --git a/include/avivo_chipset.h b/include/avivo_chipset.h
index 0629b02..1ef2ee7 100644
--- a/include/avivo_chipset.h
+++ b/include/avivo_chipset.h
@@ -98,7 +98,7 @@
#define PCI_CHIP_RV570_7288 0x7288
#define PCI_CHIP_RV530_7291 0x7291
#define PCI_CHIP_RV530_7293 0x7293
-
+#define PCI_CHIP_X1200 0x791E
enum avivo_chip_type {
CHIP_FAMILY_R520,
CHIP_FAMILY_R520_M58,
diff --git a/xorg/avivo_chipset.c b/xorg/avivo_chipset.c
index 449f9af..461c0a0 100644
--- a/xorg/avivo_chipset.c
+++ b/xorg/avivo_chipset.c
@@ -300,6 +300,10 @@ const struct pci_id_match avivo_device_match[] = {
PCI_VENDOR_ATI, 0x7293, PCI_MATCH_ANY, PCI_MATCH_ANY,
0x00030000, 0x00ffffff, 0
},
+ {
+ PCI_VENDOR_ATI, 0x791e, PCI_MATCH_ANY, PCI_MATCH_ANY,
+ 0x00030000, 0x00ffffff, 0
+ },
{ 0, 0, 0 },
};
@@ -376,10 +380,12 @@ SymTabRec avivo_chips[] = {
{ PCI_CHIP_RV570_7288, "RV570 (Radeon X1950 GT)" },
{ PCI_CHIP_RV530_7291, "RV530 (Radeon X1650 XT)" },
{ PCI_CHIP_RV530_7293, "RV530 (Radeon X1650)" },
+ { PCI_CHIP_X1200 "X1200" },
{ -1, NULL }
};
PciChipsets avivo_pci_chips[] = {
+ { PCI_CHIP_X1200, PCI_CHIP_MATT, RES_SHARED_VGA },
{ PCI_CHIP_R520_7100, PCI_CHIP_R520_7100, RES_SHARED_VGA },
{ PCI_CHIP_R520_M58_7102, PCI_CHIP_R520_M58_7102, RES_SHARED_VGA },
{ PCI_CHIP_R520_M58_7103, PCI_CHIP_R520_M58_7103, RES_SHARED_VGA },
@@ -525,6 +531,7 @@ static struct avivo_chipset_family chipset_family[] = {
{ PCI_CHIP_RV570_7288, CHIP_FAMILY_RV570 },
{ PCI_CHIP_RV530_7291, CHIP_ };
void
diff --git a/xorg/avivo_output.c b/xorg/avivo_output.c
FAMILY_RV530 },
{ PCI_CHIP_RV530_7293, CHIP_FAMILY_RV530 },
+ { PCI_CHIP_X1200, CHIP_FAMILY_RV515 },
More information about the xorg
mailing list