From 76344a3706d6acb83022615d872fc4cac058e49e Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Oct 29 2008 05:59:59 +0000 Subject: - radeon-6.9.0-add-hd3300.patch - add missing pciid (#466706) - radeon-6.9.0-quirk-agp.patch - from Ubuntu. --- diff --git a/radeon-6.9.0-add-hd3300.patch b/radeon-6.9.0-add-hd3300.patch new file mode 100644 index 0000000..afc4610 --- /dev/null +++ b/radeon-6.9.0-add-hd3300.patch @@ -0,0 +1,69 @@ +commit df061f6e95f2e33a25ac44b6aad974b7788f97e7 +Author: Dave Airlie +Date: Wed Oct 29 15:53:57 2008 +1000 + + pciid: add HD3300 - 790GX chipset. + + RH BZ (#466706) + +diff --git a/src/ati_pciids_gen.h b/src/ati_pciids_gen.h +index 633c5d3..ba7832e 100644 +--- a/src/ati_pciids_gen.h ++++ b/src/ati_pciids_gen.h +@@ -383,3 +383,4 @@ + #define PCI_CHIP_RS780_9611 0x9611 + #define PCI_CHIP_RS780_9612 0x9612 + #define PCI_CHIP_RS780_9613 0x9613 ++#define PCI_CHIP_RS780_9614 0x9614 +diff --git a/src/pcidb/ati_pciids.csv b/src/pcidb/ati_pciids.csv +index 07e71a3..9366600 100644 +--- a/src/pcidb/ati_pciids.csv ++++ b/src/pcidb/ati_pciids.csv +@@ -384,3 +384,4 @@ + "0x9611","RS780_9611","RS780",,1,,,1,"ATI Radeon 3100 Graphics" + "0x9612","RS780_9612","RS780",,1,,,1,"ATI Radeon HD 3200 Graphics" + "0x9613","RS780_9613","RS780",,1,,,1,"ATI Radeon 3100 Graphics" ++"0x9614","RS780_9614","RS780",,1,,,1,"ATI Radeon HD 3300 Graphics" +diff --git a/src/radeon_chipinfo_gen.h b/src/radeon_chipinfo_gen.h +index daaf717..3e9cfb9 100644 +--- a/src/radeon_chipinfo_gen.h ++++ b/src/radeon_chipinfo_gen.h +@@ -303,4 +303,5 @@ RADEONCardInfo RADEONCards[] = { + { 0x9611, CHIP_FAMILY_RS780, 0, 1, 0, 0, 1 }, + { 0x9612, CHIP_FAMILY_RS780, 0, 1, 0, 0, 1 }, + { 0x9613, CHIP_FAMILY_RS780, 0, 1, 0, 0, 1 }, ++ { 0x9614, CHIP_FAMILY_RS780, 0, 1, 0, 0, 1 }, + }; +diff --git a/src/radeon_chipset_gen.h b/src/radeon_chipset_gen.h +index 79b094a..2a96267 100644 +--- a/src/radeon_chipset_gen.h ++++ b/src/radeon_chipset_gen.h +@@ -303,5 +303,6 @@ static SymTabRec RADEONChipsets[] = { + { PCI_CHIP_RS780_9611, "ATI Radeon 3100 Graphics" }, + { PCI_CHIP_RS780_9612, "ATI Radeon HD 3200 Graphics" }, + { PCI_CHIP_RS780_9613, "ATI Radeon 3100 Graphics" }, ++ { PCI_CHIP_RS780_9614, "ATI Radeon HD 3300 Graphics" }, + { -1, NULL } + }; +diff --git a/src/radeon_pci_chipset_gen.h b/src/radeon_pci_chipset_gen.h +index ff1801f..48dea44 100644 +--- a/src/radeon_pci_chipset_gen.h ++++ b/src/radeon_pci_chipset_gen.h +@@ -303,5 +303,6 @@ PciChipsets RADEONPciChipsets[] = { + { PCI_CHIP_RS780_9611, PCI_CHIP_RS780_9611, RES_SHARED_VGA }, + { PCI_CHIP_RS780_9612, PCI_CHIP_RS780_9612, RES_SHARED_VGA }, + { PCI_CHIP_RS780_9613, PCI_CHIP_RS780_9613, RES_SHARED_VGA }, ++ { PCI_CHIP_RS780_9614, PCI_CHIP_RS780_9614, RES_SHARED_VGA }, + { -1, -1, RES_UNDEFINED } + }; +diff --git a/src/radeon_pci_device_match_gen.h b/src/radeon_pci_device_match_gen.h +index d650f9f..da6e5f7 100644 +--- a/src/radeon_pci_device_match_gen.h ++++ b/src/radeon_pci_device_match_gen.h +@@ -303,5 +303,6 @@ static const struct pci_id_match radeon_device_match[] = { + ATI_DEVICE_MATCH( PCI_CHIP_RS780_9611, 0 ), + ATI_DEVICE_MATCH( PCI_CHIP_RS780_9612, 0 ), + ATI_DEVICE_MATCH( PCI_CHIP_RS780_9613, 0 ), ++ ATI_DEVICE_MATCH( PCI_CHIP_RS780_9614, 0 ), + { 0, 0, 0 } + }; diff --git a/radeon-6.9.0-quirk-agp.patch b/radeon-6.9.0-quirk-agp.patch new file mode 100644 index 0000000..5c23180 --- /dev/null +++ b/radeon-6.9.0-quirk-agp.patch @@ -0,0 +1,93 @@ +commit 937b7ac2a259cf504a19dcf62a58b1db1afb8eb9 +Author: Bryce Harrington +Date: Wed Oct 29 01:31:50 2008 -0400 + + Add AGP quirk table + + - set known good default agp modes for problematic chip/bridge combos + - should fix bug 17360, others + +diff --git a/src/atipciids.h b/src/atipciids.h +index f24f8fb..7735e93 100644 +--- a/src/atipciids.h ++++ b/src/atipciids.h +@@ -35,8 +35,11 @@ + + /* PCI Vendor */ + #define PCI_VENDOR_ATI 0x1002 ++#define PCI_VENDOR_IBM 0x1014 + #define PCI_VENDOR_AMD 0x1022 + #define PCI_VENDOR_DELL 0x1028 ++#define PCI_VENDOR_VIA 0x1106 ++#define PCI_VENDOR_INTEL 0x8086 + + #include "ati_pciids_gen.h" + +diff --git a/src/radeon_dri.c b/src/radeon_dri.c +index 5542d2b..cb7df2c 100644 +--- a/src/radeon_dri.c ++++ b/src/radeon_dri.c +@@ -719,6 +719,41 @@ static void RADEONDRIInitGARTValues(RADEONInfoPtr info) + info->dri->log2GARTTexGran = l; + } + ++/* AGP Mode Quirk List - Certain hostbridge/gfx-card combos don't work with ++ * the standard AGPMode settings, so we detect and handle these ++ * on a case-by-base basis with quirks. To see if an AGPMode is valid, test ++ * it by setting Option "AGPMode" "1" (or "2", or "4" or "8"). */ ++typedef struct { ++ unsigned int hostbridgeVendor; ++ unsigned int hostbridgeDevice; ++ unsigned int chipVendor; ++ unsigned int chipDevice; ++ unsigned int subsysVendor; ++ unsigned int subsysDevice; ++ unsigned int defaultMode; ++} radeon_agpmode_quirk, *radeon_agpmode_quirk_ptr; ++ ++/* Keep sorted by hostbridge vendor and device */ ++static radeon_agpmode_quirk radeon_agpmode_quirk_list[] = { ++ ++ /* Intel 82865G/PE/P DRAM Controller/Host-Hub / Mobility 9800 Needs AGPMode 4 (deb #462590) */ ++ { PCI_VENDOR_INTEL,0x2570, PCI_VENDOR_ATI,0x4a4e, PCI_VENDOR_DELL,0x5106, 4 }, ++ /* Intel 82855PM Processor to I/O Controller / Mobility M6 LY Needs AGPMode 1 (deb #467235) */ ++ { PCI_VENDOR_INTEL,0x3340, PCI_VENDOR_ATI,0x4c59, 0x1014,0x052f, 1}, ++ /* Intel 82830 830 Chipset Host Bridge / Mobility M6 LY Needs AGPMode 2 (fdo #17360)*/ ++ { PCI_VENDOR_INTEL,0x3575, PCI_VENDOR_ATI,0x4c59, PCI_VENDOR_DELL,0x00e3, 2 }, ++ /* Intel 82852/82855 host bridge / Mobility 9600 M10 RV350 Needs AGPMode 1 (deb #467460) */ ++ { PCI_VENDOR_INTEL,0x3580, PCI_VENDOR_ATI,0x4e50, 0x1025,0x0061, 1 }, ++ ++ /* ASRock K7VT4A+ AGP 8x / ATI Radeon 9250 AGP Needs AGPMode 4 (LP: #133192) */ ++ { 0x1849,0x3189, PCI_VENDOR_ATI,0x5960, 0x1787, 0x5960, 4}, ++ ++ /* VIA VT8377 Host Bridge / R200 QM [Radeon 9100] Needs AGPMode 4 (deb #461144) */ ++ { 0x1106,0x3189, PCI_VENDOR_ATI,0x514d, 0x174b,0x7149, 4 }, ++ ++ { 0, 0, 0, 0, 0, 0, 0 }, ++}; ++ + /* Set AGP transfer mode according to requests and constraints */ + static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen) + { +@@ -741,6 +776,21 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen) + else defaultMode = 1; + } + ++ /* Apply AGPMode Quirks */ ++ radeon_agpmode_quirk_ptr p = radeon_agpmode_quirk_list; ++ while (p && p->chipDevice != 0) { ++ if (vendor == p->hostbridgeVendor && ++ device == p->hostbridgeDevice && ++ PCI_DEV_VENDOR_ID(info->PciInfo) == p->chipVendor && ++ PCI_DEV_DEVICE_ID(info->PciInfo) == p->chipDevice && ++ PCI_SUB_VENDOR_ID(info->PciInfo) == p->subsysVendor && ++ PCI_SUB_DEVICE_ID(info->PciInfo) == p->subsysDevice) ++ { ++ defaultMode = p->defaultMode; ++ } ++ ++p; ++ } ++ + from = X_DEFAULT; + + if (xf86GetOptValInteger(info->Options, OPTION_AGP_MODE, &info->dri->agpMode)) { diff --git a/radeon.xinf b/radeon.xinf index 4c2a2bd..8df7e04 100644 --- a/radeon.xinf +++ b/radeon.xinf @@ -301,3 +301,4 @@ alias pcivideo:v00001002d00009610sv*sd*bc*sc*i* radeon # ATI Radeon HD 3200 Grap alias pcivideo:v00001002d00009611sv*sd*bc*sc*i* radeon # ATI Radeon 3100 Graphics alias pcivideo:v00001002d00009612sv*sd*bc*sc*i* radeon # ATI Radeon HD 3200 Graphics alias pcivideo:v00001002d00009613sv*sd*bc*sc*i* radeon # ATI Radeon 3100 Graphics +alias pcivideo:v00001002d00009614sv*sd*bc*sc*i* radeon # ATI Radeon HD 3300 Graphics diff --git a/xorg-x11-drv-ati.spec b/xorg-x11-drv-ati.spec index 148e003..b2a39f8 100644 --- a/xorg-x11-drv-ati.spec +++ b/xorg-x11-drv-ati.spec @@ -5,7 +5,7 @@ Summary: Xorg X11 ati video driver Name: xorg-x11-drv-ati Version: 6.9.0 -Release: 35%{?dist} +Release: 36%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X Hardware Support @@ -19,6 +19,8 @@ Patch1: radeon-modeset.patch Patch4: radeon-6.9.0-remove-limit-heuristics.patch Patch5: radeon-6.9.0-panel-size-sanity.patch Patch6: radeon-6.9.0-bgnr-enable.patch +Patch7: radeon-6.9.0-add-hd3300.patch +Patch8: radeon-6.9.0-quirk-agp.patch ExcludeArch: s390 s390x @@ -45,6 +47,8 @@ X.Org X11 ati video driver. %patch4 -p1 -b .remove-limit-heuristics %patch5 -p1 -b .panel-size %patch6 -p1 -b .bgnr +%patch7 -p1 -b .pciid +%patch8 -p1 -b .quirk %build autoreconf @@ -76,6 +80,10 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man4/radeon.4* %changelog +* Wed Oct 29 2008 Dave Airlie 6.9.0-36 +- radeon-6.9.0-add-hd3300.patch - add missing pciid (#466706) +- radeon-6.9.0-quirk-agp.patch - from Ubuntu. + * Wed Oct 29 2008 Dave Airlie 6.9.0-35 - radeon-6.9.0-bgnr-enable.patch - enable bg none when kms enabled (#468879)