How to map multiple ISRs with a PCI device generating multiple MSIs?

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

 



Hello,

Please help if you have any idea.

Brief description of my system and software:
We have intel x86 processor connected with our system via PCIe bus. Our system
is visible as bus XX, device YY and function Z from x86. We are using RHEL 6.1
as OS on x86. Our system (basically a PCIe device for x86), supports 32
interrupt sources. Whenever there is any interrupt, an MSI will be passed to x86
local IOAPIC as a unique MSI. So there can be 32 MSIs from my single PCI device.
I made a Linux PCI device driver for this device. I have enabled MSI using
pci_enable_msi and registered an IRQ accordingly with an ISR.

Question:
When MSI is received at x86 PCI device driver (and ISR is called), how do I
verify that the IRQ is for which MSI? I thought of using pci_enable_msi_block()
but the question remains the same. How do the ISR in PCI device driver knows
that it is being called for which MSI?How can I register separate 32 ISRs for my
PCI device? Moreover in existing Linux kernel, I don't see any driver using
pci_enable_msi_block(). If you have any open source code to understand it's
usage, that will be a great help.

Thanks for any response from any of you.

- Bhavin

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux