forked from Minki/linux
thermal: da9062/61: Prevent hardware access during system suspend
The workqueue used for monitoring the hardware may run while the device is already suspended. Fix this by using the freezable system workqueue instead, cfr. commit51e20d0e3a
("thermal: Prevent polling from happening during system suspend"). Fixes:608567aac3
("thermal: da9062/61: Thermal junction temperature monitoring driver") Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Steve Twiss <stwiss.opensource@diasemi.com> Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
This commit is contained in:
parent
697ee786f1
commit
760eea43f8
@ -106,7 +106,7 @@ static void da9062_thermal_poll_on(struct work_struct *work)
|
||||
THERMAL_EVENT_UNSPECIFIED);
|
||||
|
||||
delay = msecs_to_jiffies(thermal->zone->passive_delay);
|
||||
schedule_delayed_work(&thermal->work, delay);
|
||||
queue_delayed_work(system_freezable_wq, &thermal->work, delay);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -125,7 +125,7 @@ static irqreturn_t da9062_thermal_irq_handler(int irq, void *data)
|
||||
struct da9062_thermal *thermal = data;
|
||||
|
||||
disable_irq_nosync(thermal->irq);
|
||||
schedule_delayed_work(&thermal->work, 0);
|
||||
queue_delayed_work(system_freezable_wq, &thermal->work, 0);
|
||||
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user