aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/mei/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/mei/init.c')
-rw-r--r--drivers/misc/mei/init.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/misc/mei/init.c b/drivers/misc/mei/init.c
index fc3d97ce8300..1ab1fb1db07b 100644
--- a/drivers/misc/mei/init.c
+++ b/drivers/misc/mei/init.c
@@ -199,6 +199,24 @@ void mei_reset(struct mei_device *dev, int interrupts_enabled)
199 mei_cl_all_write_clear(dev); 199 mei_cl_all_write_clear(dev);
200} 200}
201 201
202void mei_stop(struct mei_device *dev)
203{
204 dev_dbg(&dev->pdev->dev, "stopping the device.\n");
205
206 mutex_lock(&dev->device_lock);
207
208 cancel_delayed_work(&dev->timer_work);
209
210 mei_wd_stop(dev);
211
212 dev->dev_state = MEI_DEV_POWER_DOWN;
213 mei_reset(dev, 0);
214
215 mutex_unlock(&dev->device_lock);
216
217 flush_scheduled_work();
218}
219
202 220
203 221
204 222