Re: [PATCH 2/2] irqchip/gic-v3: Enable non-coherent redistributors/ITSes probing

From: Marc Zyngier
Date: Tue Sep 05 2023 - 12:34:08 EST


On Tue, 05 Sep 2023 15:24:51 +0100,
Lorenzo Pieralisi <lpieralisi@xxxxxxxxxx> wrote:
>
> On Tue, Sep 05, 2023 at 12:34:58PM +0100, Marc Zyngier wrote:

> > @@ -4808,6 +4812,11 @@ static const struct gic_quirk its_quirks[] = {
> > .init = its_enable_rk3588001,
> > },
> > #endif
> > + {
> > + .desc = "ITS: non-coherent attribute",
> > + .property = "dma-noncoherent",
> > + .init = its_set_non_coherent,
> > + },
>
> For the records, that requires adding a gic_enable_of_quirks() call for the
> ITS DT node that at the moment is not needed, something like this:
>
> -- >8 --
> diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
> index 25a12b46ce35..3ae3cb9aadd9 100644
> --- a/drivers/irqchip/irq-gic-v3-its.c
> +++ b/drivers/irqchip/irq-gic-v3-its.c
> @@ -4826,6 +4826,10 @@ static void its_enable_quirks(struct its_node *its)
> u32 iidr = readl_relaxed(its->base + GITS_IIDR);
>
> gic_enable_quirks(iidr, its_quirks, its);
> +
> + if (is_of_node(its->fwnode_handle))
> + gic_enable_of_quirks(to_of_node(its->fwnode_handle),
> + its_quirks, its);
> }
>

Ah, well spotted. Yes, please fold this in.

Thanks,

M.

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