[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#483699: video-nsc: PCI ID conflict with newer video-geode



On Mon, Jun 9, 2008 at 4:38 PM, Brice Goglin <Brice.Goglin@ens-lyon.org> wrote:
> Martin-Éric Racine wrote:
>> The patch generates a very rough list that makes it look like every
>> vendor supports every device. It completely disregards conditional
>> checks that the driver itself does.
>
> A quick grep shows:
>      numUsed = xf86MatchPciInstances(NSC_NAME, PCI_VENDOR_ID_NS,
>                                      GeodeChipsets, GeodePCIchipsets,
>                                      devSections, numDevSections,
>                                      drv, &usedChips);
> and
>      numUsed = xf86MatchPciInstances(NSC_NAME,
>                                      PCI_VENDOR_ID_CYRIX,
>                                      GeodeChipsets, GeodePCIchipsets,
>                                      devSections, numDevSections,
>                                      drv, &usedChips);
> which means that the driver claims support for all GeodePCIchipsets (4
> PCI ids) with vendor name CYRIX and NS. Even if it does the above under
> some special circumstances, we have no way to be so precise in the
> Debian specific nsc.ids anyway.

We have a way to be that precise, by statically defining what it
actually supports, rather than grepping the driver for every ID that
we find and hope that ALL resulting vendor+device combinations we
produce are actually supported. As it so happens, my static list was
validated by someone from AMD as being the correct one.

As to why NSC might claim support for more than it does, there several
explanations:

1) The Geode chipset has a history that spans 3 chip manufacturers. In
some cases, existing PCI ID were maintained, despite changes in the
device, between generations of chips made by the next manufacturer.

2) Small parts of the code are mutually-compatible between Geode
generations, but not enough to allow any driver to claim support for
all Geodes.

3) GX1 support exists in both -cyrix and -nsc natively, as produced by
each respective manufacturer. Theory has it that -nsc might have more
recent GX1 support than -cyrix, but this belief might be unfounded.

4) GX2 support was never a part of the upstream NSC driver.  However,
someone thought they would backport GX2 support into the NSC driver,
using code from the OLPC prototype's GIT tree.

5) Official support for the GX2 only exists in the -geode driver.
Because of this, any claim in -nsc to support it will definitely cause
problems, both because it has PCI ID conflicts, and because -nsc
doesn't have official upstream support.

6) LX support only exists in the -geode driver. This is currently the
only cleanly handled support in Debian.

-- 
Martin-Éric Racine
http://q-funk.iki.fi

Reply to: