Re: [PATCH v1 1/1] irqchip/gic-v3: Enable Rockchip 3588001 erratum workaround for RK3588S

From: Marc Zyngier
Date: Mon Jul 03 2023 - 12:54:45 EST


On Mon, 03 Jul 2023 17:41:29 +0100,
Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx> wrote:
>
> Commit a8707f553884 ("irqchip/gic-v3: Add Rockchip 3588001 erratum
> workaround") mentioned RK3588S (the slimmed down variant of RK3588)
> being affected, but did not check for its compatible value. Thus the
> quirk is not applied on RK3588S. Since the GIC ITS node got added to the
> upstream DT, boards using RK3588S are no longer booting without this
> quirk being applied.
>
> Fixes: 06cdac8e8407 ("arm64: dts: rockchip: add GIC ITS support to rk3588")
> Signed-off-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
> ---
> I recently got a Rock 5A and noticed this issue. Apart from it, the Indiedroid
> Nova should also be affected (I don't have that board). There are no other
> upstream RK3588S boards at the moment.

What about "khadas,edge2"?

> ---
> drivers/irqchip/irq-gic-v3-its.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
> index 1994541eaef8..034ece9ac47c 100644
> --- a/drivers/irqchip/irq-gic-v3-its.c
> +++ b/drivers/irqchip/irq-gic-v3-its.c
> @@ -4727,7 +4727,8 @@ static bool __maybe_unused its_enable_rk3588001(void *data)
> {
> struct its_node *its = data;
>
> - if (!of_machine_is_compatible("rockchip,rk3588"))
> + if (!of_machine_is_compatible("rockchip,rk3588") &&
> + !of_machine_is_compatible("rockchip,rk3588s"))
> return false;
>
> its->flags |= ITS_FLAGS_FORCE_NON_SHAREABLE;

I don't mind taking this, but it also mean that only a new kernel will
boot. Shouldn't you *also* fix the DT so that it advertises rk3588 as
a fallback to rk3588s? This would ensure that an old kernel can boot
as well.

M.

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