aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc
diff options
context:
space:
mode:
authorTomas Winkler <tomas.winkler@intel.com>2013-07-17 08:13:15 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-07-23 22:31:34 -0400
commit315a383ad7dbd484fafb93ef08038e3dbafbb7a8 (patch)
treeb2768b3348f521a24729f689061c6a45f9a9d7eb /drivers/misc
parent9310f61a94ec779b2919864c7e66241ff80fe96d (diff)
mei: me: fix reset state machine
ME HW ready bit is down after hw reset was asserted or on error. Only on error we need to enter the reset flow, additional reset need to be prevented when reset was triggered during initialization , power up/down or a reset is already in progress Tested-by: Shuah Khan <shuah.kh@samsung.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/misc')
-rw-r--r--drivers/misc/mei/hw-me.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/misc/mei/hw-me.c b/drivers/misc/mei/hw-me.c
index e4f8dec4dc3c..a0e19e61e7df 100644
--- a/drivers/misc/mei/hw-me.c
+++ b/drivers/misc/mei/hw-me.c
@@ -483,7 +483,9 @@ irqreturn_t mei_me_irq_thread_handler(int irq, void *dev_id)
483 /* check if ME wants a reset */ 483 /* check if ME wants a reset */
484 if (!mei_hw_is_ready(dev) && 484 if (!mei_hw_is_ready(dev) &&
485 dev->dev_state != MEI_DEV_RESETTING && 485 dev->dev_state != MEI_DEV_RESETTING &&
486 dev->dev_state != MEI_DEV_INITIALIZING) { 486 dev->dev_state != MEI_DEV_INITIALIZING &&
487 dev->dev_state != MEI_DEV_POWER_DOWN &&
488 dev->dev_state != MEI_DEV_POWER_UP) {
487 dev_dbg(&dev->pdev->dev, "FW not ready.\n"); 489 dev_dbg(&dev->pdev->dev, "FW not ready.\n");
488 mei_reset(dev, 1); 490 mei_reset(dev, 1);
489 mutex_unlock(&dev->device_lock); 491 mutex_unlock(&dev->device_lock);