summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin-Éric Racine <q-funk@iki.fi>2009-09-04 03:25:32 +0300
committerMartin-Éric Racine <q-funk@iki.fi>2009-09-04 03:25:32 +0300
commit842b7a47d583a7729099de3031ae20977dddf774 (patch)
tree146846938e8d010972a6bc30b9f928dc3d07dcd5
parent8e873185f4cbfb2a36e1f43fe7da47fd9fd5aeea (diff)
Updated the PCI Vendor and Device IDs for all Geode variants.
In practice, some of the native drivers for older Geode products have become deprecated due to lack of e.g. libpciaccess upgrade, but that's OK, since most distributions don't ship them anymore. In that case, we'll let X server fall back to good old VESA.
-rw-r--r--hw/xfree86/common/xf86AutoConfig.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
index c6c839a2a..5fb9677ef 100644
--- a/hw/xfree86/common/xf86AutoConfig.c
+++ b/hw/xfree86/common/xf86AutoConfig.c
@@ -144,10 +144,6 @@ static int
videoPtrToDriverList(struct pci_device *dev,
char *returnList[], int returnListMax)
{
- /*
- * things not handled yet:
- * cyrix/nsc. should be merged into geode anyway.
- */
int i;
/* Add more entries here if we ever return more than 4 drivers for
any device */
@@ -155,12 +151,28 @@ videoPtrToDriverList(struct pci_device *dev,
switch (dev->vendor_id)
{
+ /* AMD Geode LX */
case 0x1022:
if (dev->device_id == 0x2081) {
driverList[0] = "geode";
- driverList[1] = "amd";
}
break;
+ /* older Geode products acquired by AMD but still carrying an NSC vendor_id */
+ case 0x100B:
+ if (dev->device_id == 0x0030) {
+ /* NSC Geode GX2 specifically or... */
+ driverList[0] = "geode";
+ /* GX2 support started in NSC and was later forked by AMD for GEODE so we keep it as a backup */
+ driverList[1] = "nsc";
+ } else
+ /* ... any kind of NSC Geode SC variant */
+ driverList[0] = "nsc";
+ break;
+ /* Cyrix Geode GX1 */
+ case 0x1078:
+ if (dev->device_id == 0x0104)
+ driverList[0] = "cyrix";
+ break;
case 0x1142: driverList[0] = "apm"; break;
case 0xedd8: driverList[0] = "ark"; break;
case 0x1a03: driverList[0] = "ast"; break;