• Hans de Goede's avatar
    i2c-cht-wc: Workaround CHT GPIO controller IRQ issues · ed109401
    Hans de Goede authored
    The Cherry Trail Whiskey Cove PMIC's IRQ line is attached to one of
    the GPIOs of the Cherry Trail SoC. The CHT GPIO controller sometimes
    fails to deliver IRQs (seen when there is an IRQ storm on another pin).
    
    This commit works around this by reducing the long timeout which was
    a poor attempt to workaround this from 3s to 30ms and after that
    manually checking the status register for transfer completion by
    calling the threaded IRQ handler directly.
    
    This is safe todo as the entire threaded IRQ handler is protected
    by a mutex.
    
    Note 30ms should be more then long enough, at 100KHz any smbus single
    byte transaction should be finished in 4ms.
    Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
    Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
    ed109401
i2c-cht-wc.c 9.73 KB