Lines Matching full:pio
6 PIO data transfer
14 #include "pio.h"
30 * PIO controller ID and store the packet index number in generate_cookie()
48 struct b43_pio *pio = &dev->pio; in parse_cookie() local
54 q = pio->tx_queue_AC_BK; in parse_cookie()
57 q = pio->tx_queue_AC_BE; in parse_cookie()
60 q = pio->tx_queue_AC_VI; in parse_cookie()
63 q = pio->tx_queue_AC_VO; in parse_cookie()
66 q = pio->tx_queue_mcast; in parse_cookie()
172 /* Enable Direct FIFO RX (PIO) on the engine. */ in b43_setup_pioqueue_rx()
209 #define destroy_queue_tx(pio, queue) do { \ argument
210 b43_destroy_pioqueue_tx((pio)->queue, __stringify(queue)); \
211 (pio)->queue = NULL; \
214 #define destroy_queue_rx(pio, queue) do { \ argument
215 b43_destroy_pioqueue_rx((pio)->queue, __stringify(queue)); \
216 (pio)->queue = NULL; \
221 struct b43_pio *pio; in b43_pio_free() local
225 pio = &dev->pio; in b43_pio_free()
227 destroy_queue_rx(pio, rx_queue); in b43_pio_free()
228 destroy_queue_tx(pio, tx_queue_mcast); in b43_pio_free()
229 destroy_queue_tx(pio, tx_queue_AC_VO); in b43_pio_free()
230 destroy_queue_tx(pio, tx_queue_AC_VI); in b43_pio_free()
231 destroy_queue_tx(pio, tx_queue_AC_BE); in b43_pio_free()
232 destroy_queue_tx(pio, tx_queue_AC_BK); in b43_pio_free()
237 struct b43_pio *pio = &dev->pio; in b43_pio_init() local
244 pio->tx_queue_AC_BK = b43_setup_pioqueue_tx(dev, 0); in b43_pio_init()
245 if (!pio->tx_queue_AC_BK) in b43_pio_init()
248 pio->tx_queue_AC_BE = b43_setup_pioqueue_tx(dev, 1); in b43_pio_init()
249 if (!pio->tx_queue_AC_BE) in b43_pio_init()
252 pio->tx_queue_AC_VI = b43_setup_pioqueue_tx(dev, 2); in b43_pio_init()
253 if (!pio->tx_queue_AC_VI) in b43_pio_init()
256 pio->tx_queue_AC_VO = b43_setup_pioqueue_tx(dev, 3); in b43_pio_init()
257 if (!pio->tx_queue_AC_VO) in b43_pio_init()
260 pio->tx_queue_mcast = b43_setup_pioqueue_tx(dev, 4); in b43_pio_init()
261 if (!pio->tx_queue_mcast) in b43_pio_init()
264 pio->rx_queue = b43_setup_pioqueue_rx(dev, 0); in b43_pio_init()
265 if (!pio->rx_queue) in b43_pio_init()
268 b43dbg(dev->wl, "PIO initialized\n"); in b43_pio_init()
274 destroy_queue_tx(pio, tx_queue_mcast); in b43_pio_init()
276 destroy_queue_tx(pio, tx_queue_AC_VO); in b43_pio_init()
278 destroy_queue_tx(pio, tx_queue_AC_VI); in b43_pio_init()
280 destroy_queue_tx(pio, tx_queue_AC_BE); in b43_pio_init()
282 destroy_queue_tx(pio, tx_queue_AC_BK); in b43_pio_init()
286 /* Static mapping of mac80211's queues (priorities) to b43 PIO queues. */
299 q = dev->pio.tx_queue_AC_VO; in select_queue_by_priority()
302 q = dev->pio.tx_queue_AC_VI; in select_queue_by_priority()
305 q = dev->pio.tx_queue_AC_BE; in select_queue_by_priority()
308 q = dev->pio.tx_queue_AC_BK; in select_queue_by_priority()
312 q = dev->pio.tx_queue_AC_BE; in select_queue_by_priority()
501 q = dev->pio.tx_queue_mcast; in b43_pio_tx()
515 b43dbg(dev->wl, "PIO: TX packet longer than queue.\n"); in b43_pio_tx()
520 b43warn(dev->wl, "PIO: TX packet overflow.\n"); in b43_pio_tx()
547 b43err(dev->wl, "PIO transmission failure\n"); in b43_pio_tx()
651 b43dbg(q->dev->wl, "PIO RX timed out\n"); in pio_rx_frame()
753 b43dbg(q->dev->wl, "PIO RX error: %s\n", err_msg); in pio_rx_frame()
806 b43_pio_tx_suspend_queue(dev->pio.tx_queue_AC_BK); in b43_pio_tx_suspend()
807 b43_pio_tx_suspend_queue(dev->pio.tx_queue_AC_BE); in b43_pio_tx_suspend()
808 b43_pio_tx_suspend_queue(dev->pio.tx_queue_AC_VI); in b43_pio_tx_suspend()
809 b43_pio_tx_suspend_queue(dev->pio.tx_queue_AC_VO); in b43_pio_tx_suspend()
810 b43_pio_tx_suspend_queue(dev->pio.tx_queue_mcast); in b43_pio_tx_suspend()
815 b43_pio_tx_resume_queue(dev->pio.tx_queue_mcast); in b43_pio_tx_resume()
816 b43_pio_tx_resume_queue(dev->pio.tx_queue_AC_VO); in b43_pio_tx_resume()
817 b43_pio_tx_resume_queue(dev->pio.tx_queue_AC_VI); in b43_pio_tx_resume()
818 b43_pio_tx_resume_queue(dev->pio.tx_queue_AC_BE); in b43_pio_tx_resume()
819 b43_pio_tx_resume_queue(dev->pio.tx_queue_AC_BK); in b43_pio_tx_resume()