Bug 100051
Summary: | MSI interrupt not working in pci-imx6.c if PCIe switch is attached | ||
---|---|---|---|
Product: | Drivers | Reporter: | dave.mueller |
Component: | PCI | Assignee: | drivers_pci (drivers_pci) |
Status: | NEW --- | ||
Severity: | normal | CC: | szg00000 |
Priority: | P1 | ||
Hardware: | ARM | ||
OS: | Linux | ||
Kernel Version: | 4.0 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: | Proposed fix for IMX6 MSI interrupt problem |
Created attachment 180181 [details] Proposed fix for IMX6 MSI interrupt problem I have an i.MX6Q based custom board with an external PCIe NIC running Linux kernel 4.0 As long as the NIC is connected directly to the i.MX6 PCIe host, everything is fine. But if I insert an additional PCIe switch (PEX8603) between the host and the NIC, MSI interrupt are not working any longer. By try and error, I figured out that the MSI_ADDR_LO and MSI_ADDR_HI register get overwritten. The attached patch seems to fix the problem by calling the MSI init code later in the initialization process.