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.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/misc/mei/init.c b/drivers/misc/mei/init.c
index 7929e14627ba..557eed2a1595 100644
--- a/drivers/misc/mei/init.c
+++ b/drivers/misc/mei/init.c
@@ -149,12 +149,20 @@ void mei_reset(struct mei_device *dev, int interrupts_enabled)
149 dev->hbm_state = MEI_HBM_IDLE; 149 dev->hbm_state = MEI_HBM_IDLE;
150 150
151 if (dev->dev_state != MEI_DEV_INITIALIZING) { 151 if (dev->dev_state != MEI_DEV_INITIALIZING) {
152
152 if (dev->dev_state != MEI_DEV_DISABLED && 153 if (dev->dev_state != MEI_DEV_DISABLED &&
153 dev->dev_state != MEI_DEV_POWER_DOWN) 154 dev->dev_state != MEI_DEV_POWER_DOWN)
154 dev->dev_state = MEI_DEV_RESETTING; 155 dev->dev_state = MEI_DEV_RESETTING;
155 156
157
158 /* remove all waiting requests */
159 mei_cl_all_write_clear(dev);
160
156 mei_cl_all_disconnect(dev); 161 mei_cl_all_disconnect(dev);
157 162
163 /* wake up all readings so they can be interrupted */
164 mei_cl_all_wakeup(dev);
165
158 /* remove entry if already in list */ 166 /* remove entry if already in list */
159 dev_dbg(&dev->pdev->dev, "remove iamthif and wd from the file list.\n"); 167 dev_dbg(&dev->pdev->dev, "remove iamthif and wd from the file list.\n");
160 mei_cl_unlink(&dev->wd_cl); 168 mei_cl_unlink(&dev->wd_cl);
@@ -195,11 +203,6 @@ void mei_reset(struct mei_device *dev, int interrupts_enabled)
195 203
196 mei_hbm_start_req(dev); 204 mei_hbm_start_req(dev);
197 205
198 /* wake up all readings so they can be interrupted */
199 mei_cl_all_wakeup(dev);
200
201 /* remove all waiting requests */
202 mei_cl_all_write_clear(dev);
203} 206}
204EXPORT_SYMBOL_GPL(mei_reset); 207EXPORT_SYMBOL_GPL(mei_reset);
205 208