[PATCH 2/2] ARM: versatile: fix MMC/SD interrupt assignment

Rob Herring robh at kernel.org
Tue Jan 5 15:43:47 PST 2016


On Tue, Jan 5, 2016 at 2:59 AM, Linus Walleij <linus.walleij at linaro.org> wrote:
> Commit 0976c946a610d06e907335b7a3afa6db046f8e1b
> "arm/versatile: Fix versatile irq specifications"
> has an off-by-one error on the Versatile AB that has
> been regressing the Versatile AB hardware for some time.
>
> However it seems like the interrupt assignments have
> never been correct and I have now adjusted them according
> to the specification. The masks for the valid interrupts
> made it impossible to assign the right SIC interrupt
> for the MMCI, so I went in and fixed these to correspond
> to the specifications, and added references if anyone
> wants to double-check.
>
> Due to the Versatile PB including the Versatile AB
> as a base DTS file, we need to override and correct
> some values to correspond to the actual changes in the
> hardware.
>
> For the Versatile PB I don't think the IRQ line
> assignment for MMCI has ever been correct for either of
> the two MMCI blocks. It would be nice if someone with the
> physical PB board could test this.
>
> Patch tested on the Versatile AB, QEMU for Versatile AB
> and QEMU for Versatile PB.
>
> Cc: Rob Herring <robh at kernel.org>
> Cc: Grant Likely <grant.likely at linaro.org>
> Cc: stable at vger.kernel.org
> Fixes: 0976c946a610 ("arm/versatile: Fix versatile irq specifications")
> Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
> ---
> ARM SoC people: please apply this directly for fixes if
> you find it OK.
> ---
>  arch/arm/boot/dts/versatile-ab.dts | 10 +++++++---
>  arch/arm/boot/dts/versatile-pb.dts | 20 +++++++++++++++++++-
>  2 files changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm/boot/dts/versatile-ab.dts b/arch/arm/boot/dts/versatile-ab.dts
> index 01f40197ea13..3279bf1a17a1 100644
> --- a/arch/arm/boot/dts/versatile-ab.dts
> +++ b/arch/arm/boot/dts/versatile-ab.dts
> @@ -110,7 +110,11 @@
>                         interrupt-parent = <&vic>;
>                         interrupts = <31>; /* Cascaded to vic */
>                         clear-mask = <0xffffffff>;
> -                       valid-mask = <0xffc203f8>;
> +                       /*
> +                        * Valid interrupt lines mask according to
> +                        * table 4-36 page 4-50 of ARM DUI 0225D
> +                        */
> +                       valid-mask = <0x0760031b>;

I never really liked valid-mask in the first place. Valid interrupts
are the ones specified by devices and we don't need this extra data.
If we do, then *every* interrupt controller needs this property.
Perhaps the driver should just ignore it. But you've already done the
work here, so this is okay too.

Rob



More information about the linux-arm-kernel mailing list