Bug 119788 - [TRACKER] Update pcitable, Cards, and pciids.sf.net
Summary: [TRACKER] Update pcitable, Cards, and pciids.sf.net
Alias: None
Product: Fedora
Classification: Fedora
Component: hwdata
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: X/OpenGL Maintenance List
QA Contact:
Depends On: 119789 119790 119791 119792 119793 119794 119795 119796 119797 119798 119799 119800 119801 119802 119804 119805 119806 119807
Blocks: FC4Target
TreeView+ depends on / blocked
Reported: 2004-04-02 07:03 UTC by Mike A. Harris
Modified: 2007-11-30 22:10 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2005-04-11 01:47:18 UTC

Attachments (Terms of Use)

Description Mike A. Harris 2004-04-02 07:03:09 UTC
This is a personal tracker item for myself.

The pcitable and Cards databases need to be updated to more closely
reflect the actual list of hardware supported by current xorg-x11.
Also, pciids.sf.net needs to be updated and various corrections

This is a rather time consuming ordeal to get all of these updated
to be accurate, so I felt it best to log this tracker, and try to
break it down into smaller tasks that can be prioritized more

All of the video drivers in current X.org X11 need to be eyeballed
one at a time to determine what PCI IDs they support, and that needs
to be compared with our pcitable to see what entries are missing,
and get them added, and then add to the Cards database as well.

That often involves surfing hardware vendor's websites to get Windows
INF files also, as X drivers often have mistakes in their lists,
which uncover mistakes in pcitable, and needs to be merged with
pciids.sf.net, yada yada yada - essentially the biggest nastiest
hairball.  <grin>  Very tedious, which is why the list is often
out of date.

As such, my priority is to focus on the drivers that are the most
commonly used and most frequently change for now.  Right now, in
rough order of priority, this includes:

- radeon
- nv
- i810
- via
- sis
- savage

Other drivers may be out of date, but rarely change, and are much
lower priority, but still need to be accounted for in the long run
for completeness.

Future problems to solve:
Each architecture supports a different set of drivers, however our
pcitable and Cards database are a single database shared between
all architectures.  That means that we either:

1) Have one common database that is shared between all architectures,
   which is accurate for x86, and inaccurate for all other


2) We fork the hwdata package and maintain separate instances of it
   for each arch, having to add/remove/change new stuff in multiple


3) We put per arch files all in one hwdata package, and have it
   generate the lists at build time for the proper architecture.


4) We modify the pcitable and Cards file formats to be able to have
   ifarch/ifnarch data.

The problem is more complex than that though, because some hardware
is supported on some architectures only in PCI form factor or only
in AGP form factor.  In other cases, certain driver features need to
be disabled like DRI, or certain extra driver options are needed
on PCI cards but not AGP, or other serious convolutions.  We've
managed to "get by" to date, but that does not mean this is a good
solution, nor that it is "good enough" for the future.  I believe
we need to strive to be "better", and that a new solution is needed
for the future, which needs to be well designed from the beginning,
and not just implemented as a quick ugly hack, or a simple add on
to what we have that is a half solution.

So, for the short term, we can "get by" with what we have now,
and just update these files for current X support.

In the long term though, I want to move video related configuration
metadata into a separate set of database file(s).  I believe it
would be better to move to a metadata file featureset that more
closely resembles Windows .INF files, as that keeps both the
PCI ID data, and the video card data and configuration info in one
place for that hardware.  This is not a small task however, and
while I do have a draft design for this new format, it is something
that I would like to have done upstream on freedesktop.org as a new
X driver metadata standard, and perhaps even a general driver
metadata standard like .INF files.  pcitable works fine for the
kernel, as all kernel drivers are monolithic in one place and
probably always will be, but X drivers, while monolithic now, will
be changing in the future, and when we move to the model where we
have modular drivers upstream, and in the distro, we need to make
driver updates more scaleable.  It makes sense to keep the metadata
_with_ the driver.  That way the metadata can be autogenerated also
during driver building.  The end result is metadata files that are
always up to date with what the driver supports, and lower engineering
maintenance costs.  Users have less "my card isn't detected" bug
reports, and it's more robust all around.

"Short term" above, I define as FC2, FC3, RHEL4 at least.  Long
term I define as FC4 and later, and RHEL5 and later.  It may even
be longer than that because I want to have it done upstream rather
than internally, and I want it to be done right, and not rushed
to get into a particular release, possibly broken, or possibly
missing features, and then have to support the broken setup for
compatibility in the future.  So a lot of this is pie in the sky
rambling right now, but it is nonetheless a problem that needs to
be solved in the OSS X world, if Linux is to be taken seriously
on the mass market of desktop systems out there in the future, which
is one of the goals on our plate for RHEL5 era.

Ok, enough of an essay to myself.  Now back to the job at hand.

Comment 1 Mike A. Harris 2005-04-11 01:47:18 UTC
All of the blockers of this tracker are now resolved.  Closing tracker
as resolved in rawhide.

Note You need to log in before you can comment on or make changes to this bug.