• Linus Walleij's avatar
    ARM: dts: MSM8064 remove flags from SPMI/MPP IRQs · ca88696e
    Linus Walleij authored
    The Qualcomm PMIC GPIO and MPP lines are problematic: the
    are fetched from the main MFD driver with platform_get_irq()
    which means that at this point they will all be assigned the
    flags set up for the interrupts in the device tree.
    
    That is problematic since these are flagged as rising edge
    and an this point the interrupt descriptor is assigned a
    rising edge, while the only thing the GPIO/MPP drivers really
    do is issue irq_get_irqchip_state() on the line to read it
    out and to provide a .to_irq() helper for *other* IRQ
    consumers.
    
    If another device tree node tries to flag the same IRQ
    for use as something else than rising edge, the kernel
    irqdomain core will protest like this:
    
      type mismatch, failed to map hwirq-NN for <FOO>!
    
    Which is what happens when the device tree defines two
    contradictory flags for the same interrupt line.
    
    To work around this and alleviate the problem, assign 0
    as flag for the interrupts taken by the PM GPIO and MPP
    drivers. This will lead to the flag being unset, and a
    second consumer requesting rising, falling, both or level
    interrupts will be respected. This is what the qcom-pm*.dtsi
    files already do.
    
    Switched to using the symbolic name IRQ_TYPE_NONE so that
    we get this more readable.
    
    Cc: stable@vger.kernel.org
    Fixes: bce36046 ("ARM: dts: apq8064: add pm8921 mpp support")
    Fixes: 874443fe ("ARM: dts: apq8064: Add pm8921 mfd and its gpio node")
    Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Cc: Stephen Boyd <sboyd@codeaurora.org>
    Cc: Björn Andersson <bjorn.andersson@linaro.org>
    Cc: Ivan T. Ivanov <ivan.ivanov@linaro.org>
    Cc: John Stultz <john.stultz@linaro.org>
    Cc: Andy Gross <andy.gross@linaro.org>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarAndy Gross <andy.gross@linaro.org>
    ca88696e
qcom-apq8064.dtsi 23.2 KB