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

Marc Zyngier maz at kernel.org
Tue Sep 5 07:34:24 PDT 2023


On Tue, 05 Sep 2023 15:24:51 +0100,
Lorenzo Pieralisi <lpieralisi at kernel.org> 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.



More information about the linux-arm-kernel mailing list