Re: AMD 8131 and MSI quirk
From: Grant Grundler
Date: Thu Oct 27 2005 - 12:05:00 EST
On Thu, Oct 27, 2005 at 08:08:45AM -0700, Roland Dreier wrote:
> Matthew> Perhaps the right thing to do is to change pad2 (in
> Matthew> struct pci_bus) to bus_flags and make bit 0
> Matthew> PCI_BRIDGE_FLAGS_NO_MSI ?
>
> Seems reasonable, but I'm still not sure how to implement this. Where
> does this bit get set and propagated to secondary buses?
Does it have to be propagate to secondary busses?
Can't the MSI init code walk up the tree until it hits a root node?
> To give a somewhat pathological real-world example, Mellanox PCI-X
> adapters have a PCI bridge in them; in other words, a single adapter
> looks like:
...
> Also, if someone hot-plugged such an adapter into a bus below an AMD
> 8131 host bridge (I believe eg Sun V40Zs have hot-pluggable slots like
> that), then the NO_MSI flag still needs to get propagated from the
> 8131 bridge to the Mellanox bridge and set no_msi on the final device.
>
> Where in the PCI driver code is the right place to handle all this (I
> hope by writing the code only once)?
I expect this could be contained in msi.c.
ie changes to msi_init(), pci_enable_msi(), msi_capability_init().
The flag would have to be set by whatever code claims the AMD 8131
chip.
hth,
grant
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/