On Wed, 28 Nov 2018, Mouse wrote:
This reminds me - how does a driver know if any kind of MSI support is even available?it shouldn't need to.Okay, then I'm missing something. I've seen hardware where enabling MSI is something device-specific (a value in a register, typically), meaning _something_ MD, presumably the driver, has to be involved if MSI is to be used. And how can a driver do this without knowing whether it's supported?
The driver can call pci_intr_type on the handle returned by pci_intr_alloc to see what kind of interrupt (INTx/MSI/MSI-X) was negotiated.