Hi,
Our customer is debugging PCIe communitcation with other device, it is a problem happened that we can't solve the problem.
Hope you can help us to solve it !!!
Thanks very much.
--Platform: MCIMX6Q-SDB
--Linux ver: L4.1.15 dtb: imx6q-sabresd.dtb
--Question:
PCIe device can be recognized, and probes our PCIe driver. But the problem happens when PCIe driver request MSI interrupt from pci_msi_setup_msi_irqs, return -28. Our PCIe device needs 15 interrupts.
Solved! Go to Solution.
Hi Jimmy,
you need to select MSI in kernel.
See drivers/pci/Kconfig
.......
config PCI_MSI
bool "Message Signaled Interrupts (MSI and MSI-X)"
depends on PCI
select GENERIC_MSI_IRQ
help
This allows device drivers to enable MSI (Message Signaled
Interrupts). Message Signaled Interrupts enable a device to
generate an interrupt using an inbound Memory Write on its
PCI bus instead of asserting a device IRQ pin.
Use of PCI MSI interrupts can be disabled at kernel boot time
by using the 'pci=nomsi' option. This disables MSI for the
entire system.
If you don't know what to do here, say Y.
config PCI_MSI_IRQ_DOMAIN
bool
depends on PCI_MSI
select GENERIC_MSI_IRQ_DOMAIN
......
Have a nice day!
Weidong
Hi Jimmy,
you need to select MSI in kernel.
See drivers/pci/Kconfig
.......
config PCI_MSI
bool "Message Signaled Interrupts (MSI and MSI-X)"
depends on PCI
select GENERIC_MSI_IRQ
help
This allows device drivers to enable MSI (Message Signaled
Interrupts). Message Signaled Interrupts enable a device to
generate an interrupt using an inbound Memory Write on its
PCI bus instead of asserting a device IRQ pin.
Use of PCI MSI interrupts can be disabled at kernel boot time
by using the 'pci=nomsi' option. This disables MSI for the
entire system.
If you don't know what to do here, say Y.
config PCI_MSI_IRQ_DOMAIN
bool
depends on PCI_MSI
select GENERIC_MSI_IRQ_DOMAIN
......
Have a nice day!
Weidong
Hi Weidong,
Y.
I don't know how to fix the problem. Hope you can show me how to fix it.
Thanks very much.