• L
    mfd: ab8500: actually handle the AB8500 GPIO IRQs correctly · e2ddf46a
    Linus Walleij 提交于
    The patch:
    "mfd: ab8500: prepare to handle AB8500 GPIO's IRQs correctly"
    altered the AB8500 IRQ mask/unmask functions such that they
    would handle masking on/off the falling edge IRQ if this was
    requested by the consumer. However the bit mask for hwirqs
    43 and 44 was shifting the bit mask incorrectly, resulting in
    the wrong IRQ being mased/unmasked.
    
    Further while the patch would mask/unmask the correct line,
    when the interrupt actually came in, it would still be treated
    as a valid hwirq. The offsetting applied when masking/unmasking
    was not applied when handling the IRQ, i.e. the falling edge
    lines were not routed back to the rising edge lines.
    
    This fixes both cases. The end result has been tested with
    the SIM detect IRQ, GPIO12, hwirq 46 and 62.
    
    Cc: Samuel Ortiz <sameo@linux.intel.com>
    Cc: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: NLinus Walleij <linus.walleij@stericsson.com>
    e2ddf46a
ab8500-core.c 36.5 KB