• H Hartley Sweeten's avatar
    [ARM] locomo: fix unpaired spin_lock_irqsave · c8c3dcb9
    H Hartley Sweeten authored
    The function locomo_m62332_senddata sends a three byte i2c message to
    a M62332 DAC. This entire function is guarded with a spin_lock_irqsave
    at the start of the function and a spin_unlock_irqrestore at the end.
    
    As each byte is transferred, the i2c ACK from the DAC is checked.
    Currently, if the ACK is missing the function simply returns without
    the unlock. It also leaves the i2c bus in an invalid state since the
    last byte transferred did not have a "stop" condition and leave the
    bus idle.
    
    Fix this by adding an exit path using goto.
    Signed-off-by: default avatarH Hartley Sweeten <hsweeten@visionengravers.com>
    Signed-off-by: default avatarEric Miao <eric.y.miao@gmail.com>
    c8c3dcb9
locomo.c 23.5 KB