Skip to content

Commit

Permalink
wl1251: Fix regression in IRQ loop handling
Browse files Browse the repository at this point in the history
In some cases, the IRQ loop handler could acknowledge an interrupt to
the chipset, but not service it.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Janne Ylalehto <janne.ylalehto@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Kalle Valo <kalle.valo@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Juuso Oikarinen authored and John W. Linville committed Nov 18, 2009
1 parent a1590f2 commit 79553f8
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions drivers/net/wireless/wl12xx/wl1251_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -308,9 +308,11 @@ static void wl1251_irq_work(struct work_struct *work)
wl1251_debug(DEBUG_IRQ,
"WL1251_ACX_INTR_INIT_COMPLETE");

intr = wl1251_reg_read32(wl, ACX_REG_INTERRUPT_CLEAR);
if (--ctr == 0)
break;

} while (intr && --ctr);
intr = wl1251_reg_read32(wl, ACX_REG_INTERRUPT_CLEAR);
} while (intr);

out_sleep:
wl1251_reg_write32(wl, ACX_REG_INTERRUPT_MASK, ~(wl->intr_mask));
Expand Down

0 comments on commit 79553f8

Please sign in to comment.