mei: me: drop harmful wait optimization
authorTomas Winkler <tomas.winkler@intel.com>
Mon, 12 May 2014 09:19:40 +0000 (12:19 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 May 2014 21:15:25 +0000 (14:15 -0700)
It my take time till ME_RDY will be cleared after the reset,
so we cannot check the bit before we got the interrupt

Cc: stable@vger.kernel.org
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mei/hw-me.c

index ac76a6377794c8b38001ca4ad73dd11f1a70fee7..031efcfed39e322faf2c2873829191e04323466b 100644 (file)
@@ -203,6 +203,7 @@ static int mei_me_hw_reset(struct mei_device *dev, bool intr_enable)
        else
                hcsr &= ~H_IE;
 
+       dev->recvd_hw_ready = false;
        mei_me_reg_write(hw, H_CSR, hcsr);
 
        if (intr_enable == false)
@@ -254,10 +255,7 @@ static bool mei_me_hw_is_ready(struct mei_device *dev)
 static int mei_me_hw_ready_wait(struct mei_device *dev)
 {
        int err;
-       if (mei_me_hw_is_ready(dev))
-               return 0;
 
-       dev->recvd_hw_ready = false;
        mutex_unlock(&dev->device_lock);
        err = wait_event_interruptible_timeout(dev->wait_hw_ready,
                        dev->recvd_hw_ready,