Re: [PATCH v3 14/24] genirq/gic-v3-mbi: Remove unused wired MSI mechanics

From: Marc Zyngier
Date: Sat Jun 15 2024 - 13:24:18 EST


On Fri, 14 Jun 2024 11:23:53 +0100,
Shivamurthy Shastri <shivamurthy.shastri@xxxxxxxxxxxxx> wrote:
>
> From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
>
> Nothing builds a platform_device MSI domain for wire to MSI on top of
> this. The "regular" users of the platform MSI domain just provide their own
> irq_write_msi_msg() callback.
>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Signed-off-by: Anna-Maria Behnsen <anna-maria@xxxxxxxxxxxxx>
> Signed-off-by: Shivamurthy Shastri <shivamurthy.shastri@xxxxxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Marc Zyngier <maz@xxxxxxxxxx>
> ---
> drivers/irqchip/irq-gic-v3-mbi.c | 17 +----------------
> 1 file changed, 1 insertion(+), 16 deletions(-)
>
> diff --git a/drivers/irqchip/irq-gic-v3-mbi.c b/drivers/irqchip/irq-gic-v3-mbi.c
> index dbb8b1efda44..19298cc6c2ee 100644
> --- a/drivers/irqchip/irq-gic-v3-mbi.c
> +++ b/drivers/irqchip/irq-gic-v3-mbi.c
> @@ -199,31 +199,16 @@ static int mbi_allocate_pci_domain(struct irq_domain *nexus_domain,
> }
> #endif
>
> -static void mbi_compose_mbi_msg(struct irq_data *data, struct msi_msg *msg)
> -{
> - mbi_compose_msi_msg(data, msg);
> -
> - msg[1].address_hi = upper_32_bits(mbi_phys_base + GICD_CLRSPI_NSR);
> - msg[1].address_lo = lower_32_bits(mbi_phys_base + GICD_CLRSPI_NSR);
> - msg[1].data = data->parent_data->hwirq;
> -
> - iommu_dma_compose_msi_msg(irq_data_get_msi_desc(data), &msg[1]);
> -}
> -
> /* Platform-MSI specific irqchip */
> static struct irq_chip mbi_pmsi_irq_chip = {
> .name = "pMSI",
> - .irq_set_type = irq_chip_set_type_parent,
> - .irq_compose_msi_msg = mbi_compose_mbi_msg,
> - .flags = IRQCHIP_SUPPORTS_LEVEL_MSI,
> };
>
> static struct msi_domain_ops mbi_pmsi_ops = {
> };
>
> static struct msi_domain_info mbi_pmsi_domain_info = {
> - .flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS |
> - MSI_FLAG_LEVEL_CAPABLE),
> + .flags = (MSI_FLAG_USE_DEF_DOM_OPS | MSI_FLAG_USE_DEF_CHIP_OPS),
> .ops = &mbi_pmsi_ops,
> .chip = &mbi_pmsi_irq_chip,
> };

This patch doesn't do what it says. It simply kills any form of level
MSI support for *endpoints*, and has nothing to do with any sort of
"wire to MSI".

What replaces it?

M.

--
Without deviation from the norm, progress is not possible.