Re: [PATCH V3 05/11] i3c: mipi-i3c-hci-pci: Enable MSI support

Frank Li
2025-12-16T17:04:06Z

On Tue, Dec 16, 2025 at 06:56:36PM +0200, Adrian Hunter wrote:
> Enable MSI support by using pci_alloc_irq_vectors() to request all
> supported IRQ types. Do not call pci_free_irq_vectors() because for
> resource-managed devices (those initialized with pcim_enable_device()),
> IRQ vector allocation is automatically managed. See
> pci_setup_msi_context() and pcim_setup_msi_release() for details.
>
> Note: The current documentation for pci_alloc_irq_vectors() does not
> mention this behavior.
>
> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
> ---

Reviewed-by: Frank Li <Frank.Li@nxp.com>

>
>
> Changes in V3:
>
> Enhance commit message
>
> Changes in V2:
> New patch split from "i3c: mipi-i3c-hci-pci: Add support for
> Multi-Bus Instances"
>
>
> drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
> index 8ade911e3835..0fd3587671e1 100644
> --- a/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
> +++ b/drivers/i3c/master/mipi-i3c-hci/mipi-i3c-hci-pci.c
> @@ -203,6 +203,10 @@ static int mipi_i3c_hci_pci_probe(struct pci_dev *pci,
>
> pci_set_master(pci);
>
> + ret = pci_alloc_irq_vectors(pci, 1, 1, PCI_IRQ_ALL_TYPES);
> + if (ret < 0)
> + return ret;
> +
> memset(&res, 0, sizeof(res));
>
> res[0].flags = IORESOURCE_MEM;
> @@ -210,8 +214,8 @@ static int mipi_i3c_hci_pci_probe(struct pci_dev *pci,
> res[0].end = pci_resource_end(pci, 0);
>
> res[1].flags = IORESOURCE_IRQ;
> - res[1].start = pci->irq;
> - res[1].end = pci->irq;
> + res[1].start = pci_irq_vector(hci->pci, 0);
> + res[1].end = res[1].start;
>
> dev_id = ida_alloc(&mipi_i3c_hci_pci_ida, GFP_KERNEL);
> if (dev_id < 0)
> --
> 2.51.0
>
>
> --
> linux-i3c mailing list
> linux-i3c@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-i3c