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