On Wed, Dec 07, 2022 at 04:35:37PM -0600, Bjorn Helgaas wrote: > Hi Mika, > > On Wed, Dec 07, 2022 at 10:41:05AM +0200, Mika Westerberg wrote: > > Only Root Ports and Event Collectors use MSI for AER. PCIe Switch ports > > or endpoints on the other hand only send messages (that get collected by > > the former). For this reason do not require PCIe switch ports and > > endpoints to use interrupt if they support AER. > > > > This allows portdrv to attach PCIe switch ports of Intel DG1 and DG2 > > discrete graphics cards. These do not declare MSI or legacy interrupts. > > Help me understand more about this situation. I guess we want portdrv > to attach not to a GPU itself, but to a switch port on the card that > *leads* to the GPU? Yes correct. > >From the patch, it looks like the only PCIe port service this switch > port advertises is AER (not PME, DPC, hotplug, etc), and it doesn't > have MSI or MSI-X. Correct. > So aerdriver should be able to register for PCIE_PORT_SERVICE_AER, but > aer_probe() ignores everything except Root Ports and RCECs. What's > the benefit then? I must be missing something. The portdrv is needed for power management and everything else PCI even if there is no actual "service" attached.