Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(458)

Side by Side Diff: chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/recv.c

Issue 3427005: CHROMIUMOS: ath9k: fix enabling ANI / tx monitor after bg scan (Closed) Base URL: ssh://gitrw.chromium.org/kernel.git
Patch Set: Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/main.c ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2008-2009 Atheros Communications Inc. 2 * Copyright (c) 2008-2009 Atheros Communications Inc.
3 * 3 *
4 * Permission to use, copy, modify, and/or distribute this software for any 4 * Permission to use, copy, modify, and/or distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above 5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies. 6 * copyright notice and this permission notice appear in all copies.
7 * 7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 ath_rx_addbuffer_edma(sc, ATH9K_RX_QUEUE_HP, 285 ath_rx_addbuffer_edma(sc, ATH9K_RX_QUEUE_HP,
286 sc->rx.rx_edma[ATH9K_RX_QUEUE_HP].rx_fifo_hwsize); 286 sc->rx.rx_edma[ATH9K_RX_QUEUE_HP].rx_fifo_hwsize);
287 287
288 ath_rx_addbuffer_edma(sc, ATH9K_RX_QUEUE_LP, 288 ath_rx_addbuffer_edma(sc, ATH9K_RX_QUEUE_LP,
289 sc->rx.rx_edma[ATH9K_RX_QUEUE_LP].rx_fifo_hwsize); 289 sc->rx.rx_edma[ATH9K_RX_QUEUE_LP].rx_fifo_hwsize);
290 290
291 spin_unlock_bh(&sc->rx.rxbuflock); 291 spin_unlock_bh(&sc->rx.rxbuflock);
292 292
293 ath_opmode_init(sc); 293 ath_opmode_init(sc);
294 294
295 » ath9k_hw_startpcureceive(sc->sc_ah, (sc->sc_flags & SC_OP_SCANNING)); 295 » ath9k_hw_startpcureceive(sc->sc_ah, (sc->sc_flags & SC_OP_OFFCHANNEL));
296 } 296 }
297 297
298 static void ath_edma_stop_recv(struct ath_softc *sc) 298 static void ath_edma_stop_recv(struct ath_softc *sc)
299 { 299 {
300 spin_lock_bh(&sc->rx.rxbuflock); 300 spin_lock_bh(&sc->rx.rxbuflock);
301 ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_HP); 301 ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_HP);
302 ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_LP); 302 ath_rx_remove_buffer(sc, ATH9K_RX_QUEUE_LP);
303 spin_unlock_bh(&sc->rx.rxbuflock); 303 spin_unlock_bh(&sc->rx.rxbuflock);
304 } 304 }
305 305
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 if (list_empty(&sc->rx.rxbuf)) 491 if (list_empty(&sc->rx.rxbuf))
492 goto start_recv; 492 goto start_recv;
493 493
494 bf = list_first_entry(&sc->rx.rxbuf, struct ath_buf, list); 494 bf = list_first_entry(&sc->rx.rxbuf, struct ath_buf, list);
495 ath9k_hw_putrxbuf(ah, bf->bf_daddr); 495 ath9k_hw_putrxbuf(ah, bf->bf_daddr);
496 ath9k_hw_rxena(ah); 496 ath9k_hw_rxena(ah);
497 497
498 start_recv: 498 start_recv:
499 spin_unlock_bh(&sc->rx.rxbuflock); 499 spin_unlock_bh(&sc->rx.rxbuflock);
500 ath_opmode_init(sc); 500 ath_opmode_init(sc);
501 » ath9k_hw_startpcureceive(ah, (sc->sc_flags & SC_OP_SCANNING)); 501 » ath9k_hw_startpcureceive(ah, (sc->sc_flags & SC_OP_OFFCHANNEL));
502 502
503 return 0; 503 return 0;
504 } 504 }
505 505
506 bool ath_stoprecv(struct ath_softc *sc) 506 bool ath_stoprecv(struct ath_softc *sc)
507 { 507 {
508 struct ath_hw *ah = sc->sc_ah; 508 struct ath_hw *ah = sc->sc_ah;
509 bool stopped; 509 bool stopped;
510 510
511 ath9k_hw_stoppcurecv(ah); 511 ath9k_hw_stoppcurecv(ah);
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after
1225 } else { 1225 } else {
1226 list_move_tail(&bf->list, &sc->rx.rxbuf); 1226 list_move_tail(&bf->list, &sc->rx.rxbuf);
1227 ath_rx_buf_link(sc, bf); 1227 ath_rx_buf_link(sc, bf);
1228 } 1228 }
1229 } while (1); 1229 } while (1);
1230 1230
1231 spin_unlock_bh(&sc->rx.rxbuflock); 1231 spin_unlock_bh(&sc->rx.rxbuflock);
1232 1232
1233 return 0; 1233 return 0;
1234 } 1234 }
OLDNEW
« no previous file with comments | « chromeos/compat-wireless/drivers/net/wireless/ath/ath9k/main.c ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698