Aug. 26, 2014
1:39 p.m.
On Tue, 26 Aug 2014 08:33:18 +0200, Oscar Salvador said:
If I get the IRQ from the pci_dev, I get a X, but if I get the IRQ from the config space, I get another different number Y.
Would be you so kind to explain:
1- Why it's better use the values stored in pci_dev structure instead of read from config space. 2- Why the IRQ number is different? (Maybe this question is answered with the first question hehe)
The Linux kernel keeps track of both physical and logical IRQ numbers. So physical IRQ 0 is often wired to a timer on x86 systems, but logical IRQ 0 is used for NO_IRQ in dev->irq type usages. Screw it, I'll let Linus explain from a decade ago: http://yarchive.net/comp/linux/no_irq.html