mei: me: fix waiting for hw ready

1. MEI_INTEROP_TIMEOUT is in seconds not in jiffies
so we use mei_secs_to_jiffies macro
While cold boot is fast this is relevant in resume
2. wait_event_interruptible_timeout can return with
-ERESTARTSYS so do not override it with -ETIMEDOUT
3.Adjust error message

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>
This commit is contained in:
Tomas Winkler 2013-07-17 15:13:17 +03:00 committed by Greg Kroah-Hartman
parent 99f22c4ef2
commit dab9bf41b2
1 changed files with 7 additions and 3 deletions

View File

@ -239,14 +239,18 @@ static int mei_me_hw_ready_wait(struct mei_device *dev)
if (mei_me_hw_is_ready(dev)) if (mei_me_hw_is_ready(dev))
return 0; return 0;
dev->recvd_hw_ready = false;
mutex_unlock(&dev->device_lock); mutex_unlock(&dev->device_lock);
err = wait_event_interruptible_timeout(dev->wait_hw_ready, err = wait_event_interruptible_timeout(dev->wait_hw_ready,
dev->recvd_hw_ready, MEI_INTEROP_TIMEOUT); dev->recvd_hw_ready,
mei_secs_to_jiffies(MEI_INTEROP_TIMEOUT));
mutex_lock(&dev->device_lock); mutex_lock(&dev->device_lock);
if (!err && !dev->recvd_hw_ready) { if (!err && !dev->recvd_hw_ready) {
if (!err)
err = -ETIMEDOUT;
dev_err(&dev->pdev->dev, dev_err(&dev->pdev->dev,
"wait hw ready failed. status = 0x%x\n", err); "wait hw ready failed. status = %d\n", err);
return -ETIMEDOUT; return err;
} }
dev->recvd_hw_ready = false; dev->recvd_hw_ready = false;