• Home
  • Raw
  • Download

Lines Matching refs:rt2x00dev

49 static bool rt2800usb_hwcrypt_disabled(struct rt2x00_dev *rt2x00dev)  in rt2800usb_hwcrypt_disabled()  argument
59 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2800usb_start_queue() local
64 reg = rt2x00usb_register_read(rt2x00dev, MAC_SYS_CTRL); in rt2800usb_start_queue()
66 rt2x00usb_register_write(rt2x00dev, MAC_SYS_CTRL, reg); in rt2800usb_start_queue()
69 reg = rt2x00usb_register_read(rt2x00dev, BCN_TIME_CFG); in rt2800usb_start_queue()
73 rt2x00usb_register_write(rt2x00dev, BCN_TIME_CFG, reg); in rt2800usb_start_queue()
82 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2800usb_stop_queue() local
87 reg = rt2x00usb_register_read(rt2x00dev, MAC_SYS_CTRL); in rt2800usb_stop_queue()
89 rt2x00usb_register_write(rt2x00dev, MAC_SYS_CTRL, reg); in rt2800usb_stop_queue()
92 reg = rt2x00usb_register_read(rt2x00dev, BCN_TIME_CFG); in rt2800usb_stop_queue()
96 rt2x00usb_register_write(rt2x00dev, BCN_TIME_CFG, reg); in rt2800usb_stop_queue()
107 static bool rt2800usb_txstatus_pending(struct rt2x00_dev *rt2x00dev) in rt2800usb_txstatus_pending() argument
111 tx_queue_for_each(rt2x00dev, queue) { in rt2800usb_txstatus_pending()
128 rt2x00_dbg(entry->queue->rt2x00dev, in rt2800usb_entry_txstatus_timeout()
135 static bool rt2800usb_txstatus_timeout(struct rt2x00_dev *rt2x00dev) in rt2800usb_txstatus_timeout() argument
140 tx_queue_for_each(rt2x00dev, queue) { in rt2800usb_txstatus_timeout()
150 static bool rt2800usb_tx_sta_fifo_read_completed(struct rt2x00_dev *rt2x00dev, in rt2800usb_tx_sta_fifo_read_completed() argument
156 rt2x00_warn(rt2x00dev, "TX status read failed %d\n", in rt2800usb_tx_sta_fifo_read_completed()
164 if (!kfifo_put(&rt2x00dev->txstatus_fifo, tx_status)) in rt2800usb_tx_sta_fifo_read_completed()
165 rt2x00_warn(rt2x00dev, "TX status FIFO overrun\n"); in rt2800usb_tx_sta_fifo_read_completed()
167 queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work); in rt2800usb_tx_sta_fifo_read_completed()
174 if (rt2800usb_txstatus_timeout(rt2x00dev)) in rt2800usb_tx_sta_fifo_read_completed()
175 queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work); in rt2800usb_tx_sta_fifo_read_completed()
177 if (rt2800usb_txstatus_pending(rt2x00dev)) { in rt2800usb_tx_sta_fifo_read_completed()
179 hrtimer_start(&rt2x00dev->txstatus_timer, in rt2800usb_tx_sta_fifo_read_completed()
186 clear_bit(TX_STATUS_READING, &rt2x00dev->flags); in rt2800usb_tx_sta_fifo_read_completed()
192 if (rt2800usb_txstatus_pending(rt2x00dev) && in rt2800usb_tx_sta_fifo_read_completed()
193 !test_and_set_bit(TX_STATUS_READING, &rt2x00dev->flags)) in rt2800usb_tx_sta_fifo_read_completed()
199 static void rt2800usb_async_read_tx_status(struct rt2x00_dev *rt2x00dev) in rt2800usb_async_read_tx_status() argument
202 if (test_and_set_bit(TX_STATUS_READING, &rt2x00dev->flags)) in rt2800usb_async_read_tx_status()
206 hrtimer_start(&rt2x00dev->txstatus_timer, in rt2800usb_async_read_tx_status()
213 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2800usb_tx_dma_done() local
215 rt2800usb_async_read_tx_status(rt2x00dev); in rt2800usb_tx_dma_done()
220 struct rt2x00_dev *rt2x00dev = in rt2800usb_tx_sta_fifo_timeout() local
223 rt2x00usb_register_read_async(rt2x00dev, TX_STA_FIFO, in rt2800usb_tx_sta_fifo_timeout()
232 static int rt2800usb_autorun_detect(struct rt2x00_dev *rt2x00dev) in rt2800usb_autorun_detect() argument
246 ret = rt2x00usb_vendor_request(rt2x00dev, USB_DEVICE_MODE, in rt2800usb_autorun_detect()
261 static char *rt2800usb_get_firmware_name(struct rt2x00_dev *rt2x00dev) in rt2800usb_get_firmware_name() argument
266 static int rt2800usb_write_firmware(struct rt2x00_dev *rt2x00dev, in rt2800usb_write_firmware() argument
277 if (rt2x00_rt(rt2x00dev, RT2860) || in rt2800usb_write_firmware()
278 rt2x00_rt(rt2x00dev, RT2872) || in rt2800usb_write_firmware()
279 rt2x00_rt(rt2x00dev, RT3070)) { in rt2800usb_write_firmware()
290 retval = rt2800usb_autorun_detect(rt2x00dev); in rt2800usb_write_firmware()
294 rt2x00_info(rt2x00dev, in rt2800usb_write_firmware()
296 __clear_bit(REQUIRE_FIRMWARE, &rt2x00dev->cap_flags); in rt2800usb_write_firmware()
298 rt2x00usb_register_multiwrite(rt2x00dev, FIRMWARE_IMAGE_BASE, in rt2800usb_write_firmware()
302 rt2x00usb_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0); in rt2800usb_write_firmware()
303 rt2x00usb_register_write(rt2x00dev, H2M_MAILBOX_STATUS, ~0); in rt2800usb_write_firmware()
309 status = rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, in rt2800usb_write_firmware()
313 rt2x00_err(rt2x00dev, "Failed to write Firmware to device\n"); in rt2800usb_write_firmware()
318 rt2x00usb_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0); in rt2800usb_write_firmware()
326 static int rt2800usb_init_registers(struct rt2x00_dev *rt2x00dev) in rt2800usb_init_registers() argument
333 if (rt2800_wait_csr_ready(rt2x00dev)) in rt2800usb_init_registers()
336 reg = rt2x00usb_register_read(rt2x00dev, PBF_SYS_CTRL); in rt2800usb_init_registers()
337 rt2x00usb_register_write(rt2x00dev, PBF_SYS_CTRL, reg & ~0x00002000); in rt2800usb_init_registers()
342 rt2x00usb_register_write(rt2x00dev, MAC_SYS_CTRL, reg); in rt2800usb_init_registers()
344 rt2x00usb_vendor_request_sw(rt2x00dev, USB_DEVICE_MODE, 0, in rt2800usb_init_registers()
347 rt2x00usb_register_write(rt2x00dev, MAC_SYS_CTRL, 0x00000000); in rt2800usb_init_registers()
352 static int rt2800usb_enable_radio(struct rt2x00_dev *rt2x00dev) in rt2800usb_enable_radio() argument
356 if (unlikely(rt2800_wait_wpdma_ready(rt2x00dev))) in rt2800usb_enable_radio()
367 ((rt2x00dev->rx->limit * DATA_FRAME_SIZE) in rt2800usb_enable_radio()
371 rt2x00usb_register_write(rt2x00dev, USB_DMA_CFG, reg); in rt2800usb_enable_radio()
373 return rt2800_enable_radio(rt2x00dev); in rt2800usb_enable_radio()
376 static void rt2800usb_disable_radio(struct rt2x00_dev *rt2x00dev) in rt2800usb_disable_radio() argument
378 rt2800_disable_radio(rt2x00dev); in rt2800usb_disable_radio()
381 static int rt2800usb_set_state(struct rt2x00_dev *rt2x00dev, in rt2800usb_set_state() argument
385 rt2800_mcu_request(rt2x00dev, MCU_WAKEUP, 0xff, 0, 2); in rt2800usb_set_state()
387 rt2800_mcu_request(rt2x00dev, MCU_SLEEP, 0xff, 0xff, 2); in rt2800usb_set_state()
392 static int rt2800usb_set_device_state(struct rt2x00_dev *rt2x00dev, in rt2800usb_set_device_state() argument
404 rt2800usb_set_state(rt2x00dev, STATE_AWAKE); in rt2800usb_set_device_state()
406 retval = rt2800usb_enable_radio(rt2x00dev); in rt2800usb_set_device_state()
413 rt2800usb_disable_radio(rt2x00dev); in rt2800usb_set_device_state()
414 rt2800usb_set_state(rt2x00dev, STATE_SLEEP); in rt2800usb_set_device_state()
424 retval = rt2800usb_set_state(rt2x00dev, state); in rt2800usb_set_device_state()
432 rt2x00_err(rt2x00dev, "Device failed to enter state %d (%d)\n", in rt2800usb_set_device_state()
536 rt2x00_dbg(entry->queue->rt2x00dev, in rt2800usb_txdone_entry_check()
545 static void rt2800usb_txdone(struct rt2x00_dev *rt2x00dev) in rt2800usb_txdone() argument
553 while (kfifo_get(&rt2x00dev->txstatus_fifo, &reg)) { in rt2800usb_txdone()
559 queue = rt2x00queue_get_tx_queue(rt2x00dev, qid); in rt2800usb_txdone()
562 rt2x00_dbg(rt2x00dev, "Got TX status for an empty queue %u, dropping\n", in rt2800usb_txdone()
571 rt2x00_warn(rt2x00dev, "Data pending for entry %u in queue %u\n", in rt2800usb_txdone()
581 static void rt2800usb_txdone_nostatus(struct rt2x00_dev *rt2x00dev) in rt2800usb_txdone_nostatus() argument
593 tx_queue_for_each(rt2x00dev, queue) { in rt2800usb_txdone_nostatus()
612 struct rt2x00_dev *rt2x00dev = in rt2800usb_work_txdone() local
615 while (!kfifo_is_empty(&rt2x00dev->txstatus_fifo) || in rt2800usb_work_txdone()
616 rt2800usb_txstatus_timeout(rt2x00dev)) { in rt2800usb_work_txdone()
618 rt2800usb_txdone(rt2x00dev); in rt2800usb_work_txdone()
620 rt2800usb_txdone_nostatus(rt2x00dev); in rt2800usb_work_txdone()
627 if (rt2800usb_txstatus_pending(rt2x00dev)) in rt2800usb_work_txdone()
628 rt2800usb_async_read_tx_status(rt2x00dev); in rt2800usb_work_txdone()
669 rt2x00_err(entry->queue->rt2x00dev, in rt2800usb_fill_rxdone()
736 static int rt2800usb_efuse_detect(struct rt2x00_dev *rt2x00dev) in rt2800usb_efuse_detect() argument
740 retval = rt2800usb_autorun_detect(rt2x00dev); in rt2800usb_efuse_detect()
745 return rt2800_efuse_detect(rt2x00dev); in rt2800usb_efuse_detect()
748 static int rt2800usb_read_eeprom(struct rt2x00_dev *rt2x00dev) in rt2800usb_read_eeprom() argument
752 retval = rt2800usb_efuse_detect(rt2x00dev); in rt2800usb_read_eeprom()
756 retval = rt2800_read_eeprom_efuse(rt2x00dev); in rt2800usb_read_eeprom()
758 retval = rt2x00usb_eeprom_read(rt2x00dev, rt2x00dev->eeprom, in rt2800usb_read_eeprom()
764 static int rt2800usb_probe_hw(struct rt2x00_dev *rt2x00dev) in rt2800usb_probe_hw() argument
768 retval = rt2800_probe_hw(rt2x00dev); in rt2800usb_probe_hw()
775 rt2x00dev->txstatus_timer.function = rt2800usb_tx_sta_fifo_timeout; in rt2800usb_probe_hw()
780 INIT_WORK(&rt2x00dev->txdone_work, rt2800usb_work_txdone); in rt2800usb_probe_hw()
867 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2800usb_queue_init() local
870 rt2800_get_txwi_rxwi_size(rt2x00dev, &txwi_size, &rxwi_size); in rt2800usb_queue_init()