Skip to content

Commit

Permalink
thermal: da9062/61: Prevent hardware access during system suspend
Browse files Browse the repository at this point in the history
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. commit 51e20d0 ("thermal: Prevent polling from
happening during system suspend").

Fixes: 608567a ("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>
  • Loading branch information
geertu authored and Eduardo Valentin committed Oct 25, 2018
1 parent 697ee78 commit 760eea4
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/thermal/da9062-thermal.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}

Expand All @@ -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;
}
Expand Down

0 comments on commit 760eea4

Please sign in to comment.