On Fri, Jan 31, 2025 at 01:10:54PM +0100, Niklas Cassel wrote:
If SET_IRQTYPE is AUTO, how will test->irq_type be set?
I was thinking something like this:
pci_endpoint_test_set_irq() { u32 caps = pci_endpoint_test_readl(test, PCI_ENDPOINT_TEST_CAPS);
...
if (req_irq_type == IRQ_TYPE_AUTO) { if (caps & MSI_CAPABLE) test->irq_type = IRQ_TYPE_MSI; else if (caps & MSIX_CAPABLE) test->irq_type = IRQ_TYPE_MSIX; else test->irq_type = IRQ_TYPE_INTX;
}
... }
Or even simpler (since it requires less changes to pci_endpoint_test_set_irq()):
if (req_irq_type == IRQ_TYPE_AUTO) { if (caps & MSI_CAPABLE) req_irq_type = IRQ_TYPE_MSI; else if (caps & MSIX_CAPABLE) req_irq_type = IRQ_TYPE_MSIX; else req_irq_type = IRQ_TYPE_INTX;
}
...
/* Sets test->irq_type = req_irq_type; on success */ pci_endpoint_test_alloc_irq_vectors();
Kind regards, Niklas