Roland Dreier wrote: > > > At least on my device (PCI ID 1131:7162) there is no MSI-X capability, > > > so that's not an option for you. The current Linux implementation > > > does not support more than one MSI interrupt, so you just get one > > > interrupt with pci_enable_msi(). > > > > This would mean MSI or MSI-X ? A bit confused now. > > As I said, the device I have in my system: > > 02:00.0 Multimedia controller: Philips Semiconductors Unknown device 7162 > Subsystem: Animation Technologies Inc. Unknown device 0820 > Flags: bus master, fast devsel, latency 0, IRQ 11 > Memory at 90200000 (64-bit, non-prefetchable) [size=1M] > Capabilities: [40] Message Signalled Interrupts: Mask- 64bit+ > Queue=0/5 Enable- > Capabilities: [50] Express Endpoint IRQ 0 > Capabilities: [74] Power Management version 2 > Capabilities: [80] Vendor Specific Information > > ...has only an MSI capability (the "[40] Message Signalled Interrupts" > line). So MSI-X is not possible, since the device cannot do it. And > that means you can at most do pci_enable_msi(). The current Linux MSI > support only handles a single interrupt, just like you get normally > (no matter how many MSI interrupts a device can handle). To get > multiple interrupts from a single device under Linux, you must use > MSI-X and pci_enable_msix -- but for this to work, your device must > support MSI-X of course. > > A device that supports both MSI and MSI-X would look like: > > 0b:00.0 InfiniBand: Mellanox Technologies MT25204 [InfiniHost III Lx HCA] > (rev 20) > Subsystem: Mellanox Technologies MT25204 [InfiniHost III Lx HCA] > Flags: bus master, fast devsel, latency 0, IRQ 16 > Memory at fc600000 (64-bit, non-prefetchable) [size=1M] > Memory at d8800000 (64-bit, prefetchable) [size=8M] > Capabilities: [40] Power Management version 2 > Capabilities: [48] Vital Product Data > Capabilities: [90] Message Signalled Interrupts: Mask- 64bit+ > Queue=0/5 Enable- > Capabilities: [84] MSI-X: Enable- Mask- TabSize=32 > Capabilities: [60] Express Endpoint IRQ 0 > > with both "Message Signalled Interrupts" and "MSI-X" capabilities. >
Thanks for the explanation. > However, as I said before I think you shouldn't worry about MSI right > now. Since there are many systems where MSI doesn't work, you'll need > to get the driver working with legacy (INTx) interrupts anyway. And > you seem to be in a bit over your head just doing that without adding > the complexity of MSI on top, hence my recommendation to just focus on > the basic driver. True, compatibility would be important. Thanks, Manu - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/