diff options
author | Juuso Oikarinen <juuso.oikarinen@nokia.com> | 2009-12-11 08:40:59 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-12-28 16:31:34 -0500 |
commit | 13f2dc52c69bcca074cd12d4806953b2af45c386 (patch) | |
tree | f05cd7abe8ca8d09efc3d870ef66c5996026a049 /drivers | |
parent | a6fe231361e35e3d068a63bbfd2318fa4e961ec5 (diff) |
wl1271: Fix event acknowledging functionality
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1271_event.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1271_event.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/wl1271_main.c | 5 |
3 files changed, 5 insertions, 8 deletions
diff --git a/drivers/net/wireless/wl12xx/wl1271_event.c b/drivers/net/wireless/wl12xx/wl1271_event.c index d13fdd99c85c..227caa14cbc5 100644 --- a/drivers/net/wireless/wl12xx/wl1271_event.c +++ b/drivers/net/wireless/wl12xx/wl1271_event.c | |||
@@ -184,7 +184,7 @@ void wl1271_event_mbox_config(struct wl1271 *wl) | |||
184 | wl->mbox_ptr[0], wl->mbox_ptr[1]); | 184 | wl->mbox_ptr[0], wl->mbox_ptr[1]); |
185 | } | 185 | } |
186 | 186 | ||
187 | int wl1271_event_handle(struct wl1271 *wl, u8 mbox_num, bool do_ack) | 187 | int wl1271_event_handle(struct wl1271 *wl, u8 mbox_num) |
188 | { | 188 | { |
189 | struct event_mailbox mbox; | 189 | struct event_mailbox mbox; |
190 | int ret; | 190 | int ret; |
@@ -204,9 +204,7 @@ int wl1271_event_handle(struct wl1271 *wl, u8 mbox_num, bool do_ack) | |||
204 | return ret; | 204 | return ret; |
205 | 205 | ||
206 | /* then we let the firmware know it can go on...*/ | 206 | /* then we let the firmware know it can go on...*/ |
207 | if (do_ack) | 207 | wl1271_spi_write32(wl, ACX_REG_INTERRUPT_TRIG, INTR_TRIG_EVENT_ACK); |
208 | wl1271_spi_write32(wl, ACX_REG_INTERRUPT_TRIG, | ||
209 | INTR_TRIG_EVENT_ACK); | ||
210 | 208 | ||
211 | return 0; | 209 | return 0; |
212 | } | 210 | } |
diff --git a/drivers/net/wireless/wl12xx/wl1271_event.h b/drivers/net/wireless/wl12xx/wl1271_event.h index 4e3f55ebb1a8..278f9206aa56 100644 --- a/drivers/net/wireless/wl12xx/wl1271_event.h +++ b/drivers/net/wireless/wl12xx/wl1271_event.h | |||
@@ -112,6 +112,6 @@ struct event_mailbox { | |||
112 | 112 | ||
113 | int wl1271_event_unmask(struct wl1271 *wl); | 113 | int wl1271_event_unmask(struct wl1271 *wl); |
114 | void wl1271_event_mbox_config(struct wl1271 *wl); | 114 | void wl1271_event_mbox_config(struct wl1271 *wl); |
115 | int wl1271_event_handle(struct wl1271 *wl, u8 mbox, bool do_ack); | 115 | int wl1271_event_handle(struct wl1271 *wl, u8 mbox); |
116 | 116 | ||
117 | #endif | 117 | #endif |
diff --git a/drivers/net/wireless/wl12xx/wl1271_main.c b/drivers/net/wireless/wl12xx/wl1271_main.c index 272a8fa677ef..d507dae19e17 100644 --- a/drivers/net/wireless/wl12xx/wl1271_main.c +++ b/drivers/net/wireless/wl12xx/wl1271_main.c | |||
@@ -450,14 +450,13 @@ static void wl1271_irq_work(struct work_struct *work) | |||
450 | intr &= WL1271_INTR_MASK; | 450 | intr &= WL1271_INTR_MASK; |
451 | 451 | ||
452 | if (intr & WL1271_ACX_INTR_EVENT_A) { | 452 | if (intr & WL1271_ACX_INTR_EVENT_A) { |
453 | bool do_ack = (intr & WL1271_ACX_INTR_EVENT_B) ? false : true; | ||
454 | wl1271_debug(DEBUG_IRQ, "WL1271_ACX_INTR_EVENT_A"); | 453 | wl1271_debug(DEBUG_IRQ, "WL1271_ACX_INTR_EVENT_A"); |
455 | wl1271_event_handle(wl, 0, do_ack); | 454 | wl1271_event_handle(wl, 0); |
456 | } | 455 | } |
457 | 456 | ||
458 | if (intr & WL1271_ACX_INTR_EVENT_B) { | 457 | if (intr & WL1271_ACX_INTR_EVENT_B) { |
459 | wl1271_debug(DEBUG_IRQ, "WL1271_ACX_INTR_EVENT_B"); | 458 | wl1271_debug(DEBUG_IRQ, "WL1271_ACX_INTR_EVENT_B"); |
460 | wl1271_event_handle(wl, 1, true); | 459 | wl1271_event_handle(wl, 1); |
461 | } | 460 | } |
462 | 461 | ||
463 | if (intr & WL1271_ACX_INTR_INIT_COMPLETE) | 462 | if (intr & WL1271_ACX_INTR_INIT_COMPLETE) |