diff options
Diffstat (limited to 'drivers/misc/mei/init.c')
-rw-r--r-- | drivers/misc/mei/init.c | 18 |
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 | ||
202 | void 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 | ||