• Home
  • Raw
  • Download

Lines Matching refs:rt2x00dev

37 int rt2x00usb_vendor_request(struct rt2x00_dev *rt2x00dev,  in rt2x00usb_vendor_request()  argument
43 struct usb_device *usb_dev = to_usb_device_intf(rt2x00dev->dev); in rt2x00usb_vendor_request()
50 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00usb_vendor_request()
62 clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags); in rt2x00usb_vendor_request()
67 rt2x00_err(rt2x00dev, in rt2x00usb_vendor_request()
75 int rt2x00usb_vendor_req_buff_lock(struct rt2x00_dev *rt2x00dev, in rt2x00usb_vendor_req_buff_lock() argument
82 BUG_ON(!mutex_is_locked(&rt2x00dev->csr_mutex)); in rt2x00usb_vendor_req_buff_lock()
87 if (unlikely(!rt2x00dev->csr.cache || buffer_length > CSR_CACHE_SIZE)) { in rt2x00usb_vendor_req_buff_lock()
88 rt2x00_err(rt2x00dev, "CSR cache not available\n"); in rt2x00usb_vendor_req_buff_lock()
93 memcpy(rt2x00dev->csr.cache, buffer, buffer_length); in rt2x00usb_vendor_req_buff_lock()
95 status = rt2x00usb_vendor_request(rt2x00dev, request, requesttype, in rt2x00usb_vendor_req_buff_lock()
96 offset, 0, rt2x00dev->csr.cache, in rt2x00usb_vendor_req_buff_lock()
100 memcpy(buffer, rt2x00dev->csr.cache, buffer_length); in rt2x00usb_vendor_req_buff_lock()
106 int rt2x00usb_vendor_request_buff(struct rt2x00_dev *rt2x00dev, in rt2x00usb_vendor_request_buff() argument
115 mutex_lock(&rt2x00dev->csr_mutex); in rt2x00usb_vendor_request_buff()
122 status = rt2x00usb_vendor_req_buff_lock(rt2x00dev, request, in rt2x00usb_vendor_request_buff()
131 mutex_unlock(&rt2x00dev->csr_mutex); in rt2x00usb_vendor_request_buff()
137 int rt2x00usb_regbusy_read(struct rt2x00_dev *rt2x00dev, in rt2x00usb_regbusy_read() argument
144 if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) in rt2x00usb_regbusy_read()
148 rt2x00usb_register_read_lock(rt2x00dev, offset, reg); in rt2x00usb_regbusy_read()
154 rt2x00_err(rt2x00dev, "Indirect register access failed: offset=0x%.08x, value=0x%.08x\n", in rt2x00usb_regbusy_read()
166 struct rt2x00_dev *rt2x00dev; member
173 if (rd->callback(rd->rt2x00dev, urb->status, le32_to_cpu(rd->reg))) { in rt2x00usb_register_read_async_cb()
180 void rt2x00usb_register_read_async(struct rt2x00_dev *rt2x00dev, in rt2x00usb_register_read_async() argument
184 struct usb_device *usb_dev = to_usb_device_intf(rt2x00dev->dev); in rt2x00usb_register_read_async()
198 rd->rt2x00dev = rt2x00dev; in rt2x00usb_register_read_async()
236 struct rt2x00_dev *rt2x00dev = in rt2x00usb_work_txdone() local
241 tx_queue_for_each(rt2x00dev, queue) { in rt2x00usb_work_txdone()
257 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2x00usb_interrupt_txdone() local
271 if (rt2x00dev->ops->lib->tx_dma_done) in rt2x00usb_interrupt_txdone()
272 rt2x00dev->ops->lib->tx_dma_done(entry); in rt2x00usb_interrupt_txdone()
277 if (!rt2x00_has_cap_flag(rt2x00dev, REQUIRE_TXSTATUS_FIFO) || in rt2x00usb_interrupt_txdone()
278 !kfifo_is_empty(&rt2x00dev->txstatus_fifo)) in rt2x00usb_interrupt_txdone()
279 queue_work(rt2x00dev->workqueue, &rt2x00dev->txdone_work); in rt2x00usb_interrupt_txdone()
284 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2x00usb_kick_tx_entry() local
285 struct usb_device *usb_dev = to_usb_device_intf(rt2x00dev->dev); in rt2x00usb_kick_tx_entry()
299 length = rt2x00dev->ops->lib->get_tx_data_len(entry); in rt2x00usb_kick_tx_entry()
304 rt2x00_warn(rt2x00dev, "TX SKB padding error, out of memory\n"); in rt2x00usb_kick_tx_entry()
319 clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags); in rt2x00usb_kick_tx_entry()
332 struct rt2x00_dev *rt2x00dev = in rt2x00usb_work_rxdone() local
338 while (!rt2x00queue_empty(rt2x00dev->rx)) { in rt2x00usb_work_rxdone()
339 entry = rt2x00queue_get_entry(rt2x00dev->rx, Q_INDEX_DONE); in rt2x00usb_work_rxdone()
362 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2x00usb_interrupt_rxdone() local
384 queue_work(rt2x00dev->workqueue, &rt2x00dev->rxdone_work); in rt2x00usb_interrupt_rxdone()
389 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2x00usb_kick_rx_entry() local
390 struct usb_device *usb_dev = to_usb_device_intf(rt2x00dev->dev); in rt2x00usb_kick_rx_entry()
408 clear_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags); in rt2x00usb_kick_rx_entry()
446 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; in rt2x00usb_flush_entry() local
459 (rt2x00_has_cap_flag(rt2x00dev, REQUIRE_BEACON_GUARD))) in rt2x00usb_flush_entry()
482 completion = &queue->rt2x00dev->txdone_work; in rt2x00usb_flush_queue()
485 completion = &queue->rt2x00dev->rxdone_work; in rt2x00usb_flush_queue()
504 queue_work(queue->rt2x00dev->workqueue, completion); in rt2x00usb_flush_queue()
517 rt2x00_warn(queue->rt2x00dev, "TX queue %d DMA timed out, invoke forced forced reset\n", in rt2x00usb_watchdog_tx_dma()
533 void rt2x00usb_watchdog(struct rt2x00_dev *rt2x00dev) in rt2x00usb_watchdog() argument
537 tx_queue_for_each(rt2x00dev, queue) { in rt2x00usb_watchdog()
549 void rt2x00usb_disable_radio(struct rt2x00_dev *rt2x00dev) in rt2x00usb_disable_radio() argument
551 rt2x00usb_vendor_request_sw(rt2x00dev, USB_RX_CONTROL, 0, 0, in rt2x00usb_disable_radio()
571 struct usb_device *usb_dev = to_usb_device_intf(queue->rt2x00dev->dev); in rt2x00usb_assign_endpoint()
588 static int rt2x00usb_find_endpoints(struct rt2x00_dev *rt2x00dev) in rt2x00usb_find_endpoints() argument
590 struct usb_interface *intf = to_usb_interface(rt2x00dev->dev); in rt2x00usb_find_endpoints()
593 struct data_queue *queue = rt2x00dev->tx; in rt2x00usb_find_endpoints()
607 rt2x00usb_assign_endpoint(rt2x00dev->rx, ep_desc); in rt2x00usb_find_endpoints()
609 (queue != queue_end(rt2x00dev))) { in rt2x00usb_find_endpoints()
620 if (!rt2x00dev->rx->usb_endpoint || !rt2x00dev->tx->usb_endpoint) { in rt2x00usb_find_endpoints()
621 rt2x00_err(rt2x00dev, "Bulk-in/Bulk-out endpoints not found\n"); in rt2x00usb_find_endpoints()
630 txall_queue_for_each(rt2x00dev, queue) { in rt2x00usb_find_endpoints()
640 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2x00usb_alloc_entries() local
658 !rt2x00_has_cap_flag(rt2x00dev, REQUIRE_BEACON_GUARD)) in rt2x00usb_alloc_entries()
673 struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; in rt2x00usb_free_entries() local
693 !rt2x00_has_cap_flag(rt2x00dev, REQUIRE_BEACON_GUARD)) in rt2x00usb_free_entries()
703 int rt2x00usb_initialize(struct rt2x00_dev *rt2x00dev) in rt2x00usb_initialize() argument
711 status = rt2x00usb_find_endpoints(rt2x00dev); in rt2x00usb_initialize()
718 queue_for_each(rt2x00dev, queue) { in rt2x00usb_initialize()
727 rt2x00usb_uninitialize(rt2x00dev); in rt2x00usb_initialize()
733 void rt2x00usb_uninitialize(struct rt2x00_dev *rt2x00dev) in rt2x00usb_uninitialize() argument
737 queue_for_each(rt2x00dev, queue) in rt2x00usb_uninitialize()
745 static void rt2x00usb_free_reg(struct rt2x00_dev *rt2x00dev) in rt2x00usb_free_reg() argument
747 kfree(rt2x00dev->rf); in rt2x00usb_free_reg()
748 rt2x00dev->rf = NULL; in rt2x00usb_free_reg()
750 kfree(rt2x00dev->eeprom); in rt2x00usb_free_reg()
751 rt2x00dev->eeprom = NULL; in rt2x00usb_free_reg()
753 kfree(rt2x00dev->csr.cache); in rt2x00usb_free_reg()
754 rt2x00dev->csr.cache = NULL; in rt2x00usb_free_reg()
757 static int rt2x00usb_alloc_reg(struct rt2x00_dev *rt2x00dev) in rt2x00usb_alloc_reg() argument
759 rt2x00dev->csr.cache = kzalloc(CSR_CACHE_SIZE, GFP_KERNEL); in rt2x00usb_alloc_reg()
760 if (!rt2x00dev->csr.cache) in rt2x00usb_alloc_reg()
763 rt2x00dev->eeprom = kzalloc(rt2x00dev->ops->eeprom_size, GFP_KERNEL); in rt2x00usb_alloc_reg()
764 if (!rt2x00dev->eeprom) in rt2x00usb_alloc_reg()
767 rt2x00dev->rf = kzalloc(rt2x00dev->ops->rf_size, GFP_KERNEL); in rt2x00usb_alloc_reg()
768 if (!rt2x00dev->rf) in rt2x00usb_alloc_reg()
776 rt2x00usb_free_reg(rt2x00dev); in rt2x00usb_alloc_reg()
786 struct rt2x00_dev *rt2x00dev; in rt2x00usb_probe() local
801 rt2x00dev = hw->priv; in rt2x00usb_probe()
802 rt2x00dev->dev = &usb_intf->dev; in rt2x00usb_probe()
803 rt2x00dev->ops = ops; in rt2x00usb_probe()
804 rt2x00dev->hw = hw; in rt2x00usb_probe()
806 rt2x00_set_chip_intf(rt2x00dev, RT2X00_CHIP_INTF_USB); in rt2x00usb_probe()
808 INIT_WORK(&rt2x00dev->rxdone_work, rt2x00usb_work_rxdone); in rt2x00usb_probe()
809 INIT_WORK(&rt2x00dev->txdone_work, rt2x00usb_work_txdone); in rt2x00usb_probe()
810 hrtimer_init(&rt2x00dev->txstatus_timer, CLOCK_MONOTONIC, in rt2x00usb_probe()
813 retval = rt2x00usb_alloc_reg(rt2x00dev); in rt2x00usb_probe()
817 retval = rt2x00lib_probe_dev(rt2x00dev); in rt2x00usb_probe()
824 rt2x00usb_free_reg(rt2x00dev); in rt2x00usb_probe()
841 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00usb_disconnect() local
846 rt2x00lib_remove_dev(rt2x00dev); in rt2x00usb_disconnect()
847 rt2x00usb_free_reg(rt2x00dev); in rt2x00usb_disconnect()
862 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00usb_suspend() local
864 return rt2x00lib_suspend(rt2x00dev, state); in rt2x00usb_suspend()
871 struct rt2x00_dev *rt2x00dev = hw->priv; in rt2x00usb_resume() local
873 return rt2x00lib_resume(rt2x00dev); in rt2x00usb_resume()