diff -ur xf86-video-avivo-1.0.0/src/avivo.c xf86-video-avivo-1.0.0.me/src/avivo.c --- xf86-video-avivo-1.0.0/src/avivo.c 2007-03-03 22:26:39.000000000 +0000 +++ xf86-video-avivo-1.0.0.me/src/avivo.c 2007-03-04 00:59:48.000000000 +0000 @@ -72,6 +72,7 @@ static const struct pci_id_match avivo_device_match[] = { { PCI_VENDOR_ATI, 0x724b, PCI_MATCH_ANY, PCI_MATCH_ANY, + PCI_VENDOR_ATI, 0x71c5, PCI_MATCH_ANY, PCI_MATCH_ANY, 0x00030000, 0x00ffffff, 0 }, @@ -83,11 +84,13 @@ * separate, and the nomenclature is beyond reproach. */ static SymTabRec avivo_chips[] = { { PCI_CHIP_R580_724B, "R580 (Radeon X1900 GT)" }, + { PCI_CHIP_RV530_71C5, "RV530 (Radeon X1600)" }, { -1, NULL } }; static PciChipsets avivo_pci_chips[] = { { PCI_CHIP_R580_724B, PCI_CHIP_R580_724B, RES_SHARED_VGA }, + { PCI_CHIP_RV530_71C5, PCI_CHIP_RV530_71C5, RES_SHARED_VGA }, { -1, -1, RES_UNDEFINED } }; @@ -820,6 +823,7 @@ int enable) { int value1, value2, value3, value4, value5; + ScrnInfoPtr screen_info = xf86Screens[0]; avivo_wait_idle(avivo); @@ -828,12 +832,12 @@ value5 = 0x00001010; if (enable) { - value1 = AVIVO_TMDS_MYSTERY1_EN; + value1 = AVIVO_TMDS_MYSTERY1_EN | 0x01010000; value2 = AVIVO_TMDS_MYSTERY2_EN; - value4 = 0x0000001f; + value4 = 0x00001f1f; if (output->output_num == 2) value4 |= 0x00000020; - value5 |= AVIVO_TMDS_EN; + value5 |= (AVIVO_TMDS_EN | 0x01000000); } else { value1 = 0x04000000; @@ -851,7 +855,7 @@ else if (output->output_num == 2) { OUTREG(AVIVO_TMDS2_MYSTERY1, value1); OUTREG(AVIVO_TMDS2_MYSTERY2, value2); - OUTREG(AVIVO_TMDS2_MYSTERY3, value3 | 0x20000000); + OUTREG(AVIVO_TMDS2_MYSTERY3, value3 | 0x00630000); OUTREG(AVIVO_TMDS2_CLOCK_CNTL, value4); OUTREG(AVIVO_TMDS2_CNTL, value5); } diff -ur xf86-video-avivo-1.0.0/src/avivo.h xf86-video-avivo-1.0.0.me/src/avivo.h --- xf86-video-avivo-1.0.0/src/avivo.h 2007-03-03 21:54:05.000000000 +0000 +++ xf86-video-avivo-1.0.0.me/src/avivo.h 2007-03-03 23:28:09.000000000 +0000 @@ -46,6 +46,7 @@ #define AVIVO_DRIVER_VERSION 1000 #define PCI_CHIP_R580_724B 0x724B +#define PCI_CHIP_RV530_71C5 0x71C5 #define INREG(x) MMIO_IN32(avivo->ctrl_base, x) #define OUTREG(x, y) MMIO_OUT32(avivo->ctrl_base, x, y)