Bug 2737 - Cyrix and nsc drivers should be enhanced to redirect to the other driver when needed
Summary: Cyrix and nsc drivers should be enhanced to redirect to the other driver when...
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nsc (show other bugs)
Version: git
Hardware: x86 (IA32) Linux (All)
: high normal
Assignee: Xorg Project Team
QA Contact:
Depends on:
Reported: 2005-03-15 04:41 UTC by Mike A. Harris
Modified: 2014-01-23 00:19 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Note You need to log in before you can comment on or make changes to this bug.
Description Mike A. Harris 2005-03-15 04:41:47 UTC
The cyrix and nsc drivers have PCI ID overlap.  Natsemi reused the same PCI ID
with the same graphics chip, but changed the BIOS in an incompatible way
from what I understand.  The net result is that hardware autodetection software
that relies solely on the PCI device and vendor ID and subvendor/device ID,
and even revision fields in PCI config space, can not uniquely distinguish
between certain cyrix hardware and nsc hardware.

00:12.4 Class 0300: 1078:0104
Subsystem: 1078:0001
Flags: medium devsel
Memory at 40800000 (32-bit, non-prefetchable) [size=8M]

The only way to detect wether the hardware should use the cyrix or nsc
drivers is to do:

   outb(0x35, 0x3D4)
   check inb(0x3d5) = C
   outb(0x36, 0x3D5)
   check inb(0x3D5) = X  - if so VSA2 -> NSC driver

Both the cyrix and nsc drivers should be enhanced to do this autodetection
and if the wrong chip is detected, the driver should autoreload the
correct driver something like the "ati" driver does if possible.  Otherwise
it should steadfastly fail to load and print an error telling the user the
right driver to use.

The place to put this type of code is in the drivers, not in the configuration
software IMHO.
Comment 1 Mike A. Harris 2006-08-31 07:21:10 UTC
Not interested in tracking this any longer, and it seems rather unlikely
someone would be interested in aggregating the drivers at this point.
Comment 2 Martin-Éric Racine 2008-05-01 02:12:06 UTC
We're currently toying with the idea of merging "cyrix" and "nsc", to eliminate duplicate work between the two drivers and, eventually, merge the result into the unified "geode" driver that was renamed from "amd" recently.

We have access to some NSC hardware (specifically, the SC2200) but not to Cyrix hardware. Thus, the best that we can currently accomplish is to merge "nsc" into "geode", without any guaranty that this will still work for Cyrix hardware.

Since the "nsc" code has been neglected for too long, a simpler path might be to copy the recently cleaned gx_ files from the "geode" driver and call them gx1_, then add chipset-specific parts from "nsc" to complete the picture.

See http://wiki.x.org/wiki/AMDGeodeDriver for details on this proposal.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.