Hi Mark, Às 3:57 PM de 5/5/2017, Marc Zyngier escreveu: > Joao, > > On 05/05/17 15:11, Joao Pinto wrote: >> Hello, >> I am currently adding the support for both MSI and MSI-x in pcie-designware and >> I am now facing a dificulty. >> >> My test endpoint is a USB 3.1 MSI / MSI-X capable and I tested that with >> the changes introduced by this patch we are able to enable MSI and MSI-X >> in this endpoint (depends on the usage of the MSI_FLAG_PCI_MSIX flag). >> >> The problem I am facing now is that Intc for the USB 3.1 Endpoint is completely >> bogus (524288) when it should be 1, and so I am not receiving any interrupts >> from the endpoint. > > It is not bogus at all. It is computed from the PCI requester ID in > pci_msi_domain_calc_hwirq. What you're seeing is the PCI/MDI domain > view of that interrupt, which is completely virtual. > > The real thing happens in your own irqdomain, where the hwirq for IRQ46 > is probably 1 (only you can know that). As for why it doesn't work, see > below: > snip (...) > static struct irq_chip dw_msi_irq_chip = { > .name = "PCI-MSI", > - .irq_enable = pci_msi_unmask_irq, > - .irq_disable = pci_msi_mask_irq, > - .irq_mask = pci_msi_mask_irq, > - .irq_unmask = pci_msi_unmask_irq, > + .irq_mask = dw_msi_mask_irq, > + .irq_unmask = dw_msi_unmask_irq, > }; > > I haven't dug any further, but this should be fixed first. > > Thanks, > > M. > Thanks for the help! I will check it out! Joao