]> rtime.felk.cvut.cz Git - mcf548x/linux.git/commit
da9030_battery: Fix race between event handler and monitor
authorMike Rapoport <mike@compulab.co.il>
Mon, 8 Jun 2009 21:09:45 +0000 (01:09 +0400)
committerAnton Vorontsov <cbouatmailru@gmail.com>
Mon, 8 Jun 2009 21:12:38 +0000 (01:12 +0400)
commita35d01a5d2ac533edab94a8e3b6749ab213c91c5
treef29c751f52713f826ec9ed00c48f5339a0cd2d9b
parentc6f4a42de60b981dd210de01cd3e575835e3158e
da9030_battery: Fix race between event handler and monitor

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: Mike Rapoport <mike@compulab.co.il>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
drivers/power/da9030_battery.c