diff options
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl1251.c')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1251.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1251.c b/drivers/net/wireless/wl12xx/wl1251.c index 903624a540a3..5f6e75c61128 100644 --- a/drivers/net/wireless/wl12xx/wl1251.c +++ b/drivers/net/wireless/wl12xx/wl1251.c | |||
@@ -401,6 +401,7 @@ static void wl1251_irq_work(struct work_struct *work) | |||
401 | u32 intr; | 401 | u32 intr; |
402 | struct wl12xx *wl = | 402 | struct wl12xx *wl = |
403 | container_of(work, struct wl12xx, irq_work); | 403 | container_of(work, struct wl12xx, irq_work); |
404 | int ret; | ||
404 | 405 | ||
405 | mutex_lock(&wl->mutex); | 406 | mutex_lock(&wl->mutex); |
406 | 407 | ||
@@ -409,7 +410,9 @@ static void wl1251_irq_work(struct work_struct *work) | |||
409 | if (wl->state == WL12XX_STATE_OFF) | 410 | if (wl->state == WL12XX_STATE_OFF) |
410 | goto out; | 411 | goto out; |
411 | 412 | ||
412 | wl12xx_ps_elp_wakeup(wl); | 413 | ret = wl12xx_ps_elp_wakeup(wl); |
414 | if (ret < 0) | ||
415 | goto out; | ||
413 | 416 | ||
414 | wl12xx_reg_write32(wl, ACX_REG_INTERRUPT_MASK, WL1251_ACX_INTR_ALL); | 417 | wl12xx_reg_write32(wl, ACX_REG_INTERRUPT_MASK, WL1251_ACX_INTR_ALL); |
415 | 418 | ||
@@ -489,6 +492,7 @@ static void wl1251_irq_work(struct work_struct *work) | |||
489 | 492 | ||
490 | out_sleep: | 493 | out_sleep: |
491 | wl12xx_ps_elp_sleep(wl); | 494 | wl12xx_ps_elp_sleep(wl); |
495 | |||
492 | out: | 496 | out: |
493 | mutex_unlock(&wl->mutex); | 497 | mutex_unlock(&wl->mutex); |
494 | } | 498 | } |