aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb/host/whci/asl.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-02-12 17:27:56 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-02-12 17:27:56 +0900
commit41480ae7a383dcffa497decdd97b3cb2caaa18ec (patch)
treef1e3afce2cbd0bbc544cd86a73e5b3093eb081c4 /drivers/usb/host/whci/asl.c
parent508eb2ce222053e51e2243b7add8eeac85b1d250 (diff)
parent34aeb43e2d3800f4d8f96feb9f1b49cd506679d5 (diff)
Merge branch 'sh/stable-updates'
Diffstat (limited to 'drivers/usb/host/whci/asl.c')
-rw-r--r--drivers/usb/host/whci/asl.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/usb/host/whci/asl.c b/drivers/usb/host/whci/asl.c
index 577c0d29849..2291c5f5af5 100644
--- a/drivers/usb/host/whci/asl.c
+++ b/drivers/usb/host/whci/asl.c
@@ -170,12 +170,17 @@ void asl_stop(struct whc *whc)
void asl_update(struct whc *whc, uint32_t wusbcmd)
{
struct wusbhc *wusbhc = &whc->wusbhc;
+ long t;
mutex_lock(&wusbhc->mutex);
if (wusbhc->active) {
whc_write_wusbcmd(whc, wusbcmd, wusbcmd);
- wait_event(whc->async_list_wq,
- (le_readl(whc->base + WUSBCMD) & WUSBCMD_ASYNC_UPDATED) == 0);
+ t = wait_event_timeout(
+ whc->async_list_wq,
+ (le_readl(whc->base + WUSBCMD) & WUSBCMD_ASYNC_UPDATED) == 0,
+ msecs_to_jiffies(1000));
+ if (t == 0)
+ whc_hw_error(whc, "ASL update timeout");
}
mutex_unlock(&wusbhc->mutex);
}