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.