Skip to content

Commit

Permalink
wl1271: Fix event acknowledging functionality
Browse files Browse the repository at this point in the history
In reference source, events are acknowledged separately - fix the driver to
do the same.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Juuso Oikarinen authored and John W. Linville committed Dec 28, 2009
1 parent a6fe231 commit 13f2dc5
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 8 deletions.
6 changes: 2 additions & 4 deletions drivers/net/wireless/wl12xx/wl1271_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ void wl1271_event_mbox_config(struct wl1271 *wl)
wl->mbox_ptr[0], wl->mbox_ptr[1]);
}

int wl1271_event_handle(struct wl1271 *wl, u8 mbox_num, bool do_ack)
int wl1271_event_handle(struct wl1271 *wl, u8 mbox_num)
{
struct event_mailbox mbox;
int ret;
Expand All @@ -204,9 +204,7 @@ int wl1271_event_handle(struct wl1271 *wl, u8 mbox_num, bool do_ack)
return ret;

/* then we let the firmware know it can go on...*/
if (do_ack)
wl1271_spi_write32(wl, ACX_REG_INTERRUPT_TRIG,
INTR_TRIG_EVENT_ACK);
wl1271_spi_write32(wl, ACX_REG_INTERRUPT_TRIG, INTR_TRIG_EVENT_ACK);

return 0;
}
2 changes: 1 addition & 1 deletion drivers/net/wireless/wl12xx/wl1271_event.h
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,6 @@ struct event_mailbox {

int wl1271_event_unmask(struct wl1271 *wl);
void wl1271_event_mbox_config(struct wl1271 *wl);
int wl1271_event_handle(struct wl1271 *wl, u8 mbox, bool do_ack);
int wl1271_event_handle(struct wl1271 *wl, u8 mbox);

#endif
5 changes: 2 additions & 3 deletions drivers/net/wireless/wl12xx/wl1271_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -450,14 +450,13 @@ static void wl1271_irq_work(struct work_struct *work)
intr &= WL1271_INTR_MASK;

if (intr & WL1271_ACX_INTR_EVENT_A) {
bool do_ack = (intr & WL1271_ACX_INTR_EVENT_B) ? false : true;
wl1271_debug(DEBUG_IRQ, "WL1271_ACX_INTR_EVENT_A");
wl1271_event_handle(wl, 0, do_ack);
wl1271_event_handle(wl, 0);
}

if (intr & WL1271_ACX_INTR_EVENT_B) {
wl1271_debug(DEBUG_IRQ, "WL1271_ACX_INTR_EVENT_B");
wl1271_event_handle(wl, 1, true);
wl1271_event_handle(wl, 1);
}

if (intr & WL1271_ACX_INTR_INIT_COMPLETE)
Expand Down

0 comments on commit 13f2dc5

Please sign in to comment.