• Mike Rapoport's avatar
    da9030_battery: Fix race between event handler and monitor · a35d01a5
    Mike Rapoport authored
    There are cases when charging monitor and the event handler try to
    change the charger state simultaneously. For instance, a charger is
    connected to the system, there's the detection event and the event
    handler tries to enable charging. It is possible that the periodic
    charging monitor runs at the same time and it still thinks there's
    no external charger. So it tries to disable the charging. As the
    result, even if the conditions necessary to charge the battery hold,
    there will be no actual charging.
    
    The patch changes the event handler so that instead of enabling/
    disabling the charger immediately it would rather make the monitor
    run. The monitor code then decides what should be the charger state.
    Signed-off-by: default avatarMike Rapoport <mike@compulab.co.il>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarAnton Vorontsov <cbouatmailru@gmail.com>
    a35d01a5
da9030_battery.c 15.9 KB