Lines Matching +full:chip +full:- +full:id

1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2 /* Copyright(c) 2018-2019 Realtek Corporation
33 struct rtw_tx_desc *tx_desc = (struct rtw_tx_desc *)skb->data; in rtw_usb_fill_tx_checksum()
34 struct rtw_dev *rtwdev = rtwusb->rtwdev; in rtw_usb_fill_tx_checksum()
37 le32p_replace_bits(&tx_desc->w7, agg_num, RTW_TX_DESC_W7_DMA_TXAGG_NUM); in rtw_usb_fill_tx_checksum()
38 pkt_info.pkt_offset = le32_get_bits(tx_desc->w1, RTW_TX_DESC_W1_PKT_OFFSET); in rtw_usb_fill_tx_checksum()
39 rtw_tx_fill_txdesc_checksum(rtwdev, &pkt_info, skb->data); in rtw_usb_fill_tx_checksum()
45 struct usb_device *udev = rtwusb->udev; in rtw_usb_reg_sec()
67 if (status != t_len && status != -ENODEV) in rtw_usb_reg_sec()
75 struct usb_device *udev = rtwusb->udev; in rtw_usb_read()
81 spin_lock_irqsave(&rtwusb->usb_lock, flags); in rtw_usb_read()
83 idx = rtwusb->usb_data_index; in rtw_usb_read()
84 rtwusb->usb_data_index = (idx + 1) & (RTW_USB_MAX_RXTX_COUNT - 1); in rtw_usb_read()
86 spin_unlock_irqrestore(&rtwusb->usb_lock, flags); in rtw_usb_read()
88 data = &rtwusb->usb_data[idx]; in rtw_usb_read()
93 if (ret < 0 && ret != -ENODEV && count++ < 4) in rtw_usb_read()
97 if (rtwdev->chip->id == RTW_CHIP_TYPE_8822C || in rtw_usb_read()
98 rtwdev->chip->id == RTW_CHIP_TYPE_8822B || in rtw_usb_read()
99 rtwdev->chip->id == RTW_CHIP_TYPE_8821C) in rtw_usb_read()
122 struct rtw_usb *rtwusb = (struct rtw_usb *)rtwdev->priv; in rtw_usb_write()
123 struct usb_device *udev = rtwusb->udev; in rtw_usb_write()
129 spin_lock_irqsave(&rtwusb->usb_lock, flags); in rtw_usb_write()
131 idx = rtwusb->usb_data_index; in rtw_usb_write()
132 rtwusb->usb_data_index = (idx + 1) & (RTW_USB_MAX_RXTX_COUNT - 1); in rtw_usb_write()
134 spin_unlock_irqrestore(&rtwusb->usb_lock, flags); in rtw_usb_write()
136 data = &rtwusb->usb_data[idx]; in rtw_usb_write()
143 if (ret < 0 && ret != -ENODEV && count++ < 4) in rtw_usb_write()
147 if (rtwdev->chip->id == RTW_CHIP_TYPE_8822C || in rtw_usb_write()
148 rtwdev->chip->id == RTW_CHIP_TYPE_8822B || in rtw_usb_write()
149 rtwdev->chip->id == RTW_CHIP_TYPE_8821C) in rtw_usb_write()
172 struct usb_device *udev = rtwusb->udev; in rtw_usb_write_firmware_page()
178 switch (rtwdev->chip->id) { in rtw_usb_write_firmware_page()
207 if (ret != -ENODEV) in rtw_usb_write_firmware_page()
216 size -= n; in rtw_usb_write_firmware_page()
234 return -EINVAL; in dma_mapping_to_ep()
242 struct usb_host_interface *host_interface = &interface->altsetting[0]; in rtw_usb_parse()
243 struct usb_interface_descriptor *interface_desc = &host_interface->desc; in rtw_usb_parse()
248 const struct rtw_chip_info *chip = rtwdev->chip; in rtw_usb_parse() local
251 for (i = 0; i < interface_desc->bNumEndpoints; i++) { in rtw_usb_parse()
252 endpoint = &host_interface->endpoint[i].desc; in rtw_usb_parse()
257 if (rtwusb->pipe_in) { in rtw_usb_parse()
259 return -EINVAL; in rtw_usb_parse()
262 rtwusb->pipe_in = num; in rtw_usb_parse()
267 if (rtwusb->pipe_interrupt) { in rtw_usb_parse()
269 return -EINVAL; in rtw_usb_parse()
272 rtwusb->pipe_interrupt = num; in rtw_usb_parse()
277 if (num_out_pipes >= ARRAY_SIZE(rtwusb->out_ep)) { in rtw_usb_parse()
279 return -EINVAL; in rtw_usb_parse()
282 rtwusb->out_ep[num_out_pipes++] = num; in rtw_usb_parse()
286 rtwdev->hci.bulkout_num = num_out_pipes; in rtw_usb_parse()
290 return -EINVAL; in rtw_usb_parse()
293 rqpn = &chip->rqpn_table[num_out_pipes]; in rtw_usb_parse()
295 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID0] = dma_mapping_to_ep(rqpn->dma_map_be); in rtw_usb_parse()
296 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID1] = dma_mapping_to_ep(rqpn->dma_map_bk); in rtw_usb_parse()
297 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID2] = dma_mapping_to_ep(rqpn->dma_map_bk); in rtw_usb_parse()
298 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID3] = dma_mapping_to_ep(rqpn->dma_map_be); in rtw_usb_parse()
299 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID4] = dma_mapping_to_ep(rqpn->dma_map_vi); in rtw_usb_parse()
300 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID5] = dma_mapping_to_ep(rqpn->dma_map_vi); in rtw_usb_parse()
301 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID6] = dma_mapping_to_ep(rqpn->dma_map_vo); in rtw_usb_parse()
302 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID7] = dma_mapping_to_ep(rqpn->dma_map_vo); in rtw_usb_parse()
303 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID8] = -EINVAL; in rtw_usb_parse()
304 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID9] = -EINVAL; in rtw_usb_parse()
305 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID10] = -EINVAL; in rtw_usb_parse()
306 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID11] = -EINVAL; in rtw_usb_parse()
307 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID12] = -EINVAL; in rtw_usb_parse()
308 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID13] = -EINVAL; in rtw_usb_parse()
309 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID14] = -EINVAL; in rtw_usb_parse()
310 rtwusb->qsel_to_ep[TX_DESC_QSEL_TID15] = -EINVAL; in rtw_usb_parse()
311 rtwusb->qsel_to_ep[TX_DESC_QSEL_BEACON] = dma_mapping_to_ep(rqpn->dma_map_hi); in rtw_usb_parse()
312 rtwusb->qsel_to_ep[TX_DESC_QSEL_HIGH] = dma_mapping_to_ep(rqpn->dma_map_hi); in rtw_usb_parse()
313 rtwusb->qsel_to_ep[TX_DESC_QSEL_MGMT] = dma_mapping_to_ep(rqpn->dma_map_mg); in rtw_usb_parse()
314 rtwusb->qsel_to_ep[TX_DESC_QSEL_H2C] = dma_mapping_to_ep(rqpn->dma_map_hi); in rtw_usb_parse()
321 struct rtw_usb_txcb *txcb = urb->context; in rtw_usb_write_port_tx_complete()
322 struct rtw_dev *rtwdev = txcb->rtwdev; in rtw_usb_write_port_tx_complete()
323 struct ieee80211_hw *hw = rtwdev->hw; in rtw_usb_write_port_tx_complete()
326 struct sk_buff *skb = skb_dequeue(&txcb->tx_ack_queue); in rtw_usb_write_port_tx_complete()
336 skb_pull(skb, rtwdev->chip->tx_pkt_desc_sz); in rtw_usb_write_port_tx_complete()
339 if (info->flags & IEEE80211_TX_CTL_REQ_TX_STATUS) { in rtw_usb_write_port_tx_complete()
340 rtw_tx_report_enqueue(rtwdev, skb, tx_data->sn); in rtw_usb_write_port_tx_complete()
346 if (info->flags & IEEE80211_TX_CTL_NO_ACK) in rtw_usb_write_port_tx_complete()
347 info->flags |= IEEE80211_TX_STAT_NOACK_TRANSMITTED; in rtw_usb_write_port_tx_complete()
349 info->flags |= IEEE80211_TX_STAT_ACK; in rtw_usb_write_port_tx_complete()
359 if (qsel >= ARRAY_SIZE(rtwusb->qsel_to_ep)) in qsel_to_ep()
360 return -EINVAL; in qsel_to_ep()
362 return rtwusb->qsel_to_ep[qsel]; in qsel_to_ep()
369 struct usb_device *usbd = rtwusb->udev; in rtw_usb_write_port()
378 pipe = usb_sndbulkpipe(usbd, rtwusb->out_ep[ep]); in rtw_usb_write_port()
381 return -ENOMEM; in rtw_usb_write_port()
383 usb_fill_bulk_urb(urb, usbd, pipe, skb->data, skb->len, cb, context); in rtw_usb_write_port()
384 urb->transfer_flags |= URB_ZERO_PACKET; in rtw_usb_write_port()
394 struct rtw_dev *rtwdev = rtwusb->rtwdev; in rtw_usb_tx_agg_skb()
410 txcb->rtwdev = rtwdev; in rtw_usb_tx_agg_skb()
411 skb_queue_head_init(&txcb->tx_ack_queue); in rtw_usb_tx_agg_skb()
430 skb_put_data(skb_head, skb_iter->data, skb_iter->len); in rtw_usb_tx_agg_skb()
432 align_next = ALIGN(skb_iter->len, 8) - skb_iter->len; in rtw_usb_tx_agg_skb()
436 skb_queue_tail(&txcb->tx_ack_queue, skb_iter); in rtw_usb_tx_agg_skb()
438 spin_lock_irqsave(&list->lock, flags); in rtw_usb_tx_agg_skb()
443 skb_iter->len + skb_head->len <= RTW_USB_MAX_XMITBUF_SZ && in rtw_usb_tx_agg_skb()
444 agg_num < rtwdev->chip->usb_tx_agg_desc_num) in rtw_usb_tx_agg_skb()
448 spin_unlock_irqrestore(&list->lock, flags); in rtw_usb_tx_agg_skb()
455 skb_queue_tail(&txcb->tx_ack_queue, skb_head); in rtw_usb_tx_agg_skb()
456 tx_desc = (struct rtw_tx_desc *)skb_head->data; in rtw_usb_tx_agg_skb()
457 qsel = le32_get_bits(tx_desc->w1, RTW_TX_DESC_W1_QSEL); in rtw_usb_tx_agg_skb()
469 for (i = ARRAY_SIZE(rtwusb->tx_queue) - 1; i >= 0; i--) { in rtw_usb_tx_handler()
471 struct sk_buff_head *list = &rtwusb->tx_queue[i]; in rtw_usb_tx_handler()
481 struct rtw_dev *rtwdev = rtwusb->rtwdev; in rtw_usb_tx_queue_purge()
484 for (i = 0; i < ARRAY_SIZE(rtwusb->tx_queue); i++) in rtw_usb_tx_queue_purge()
485 ieee80211_purge_tx_queue(rtwdev->hw, &rtwusb->tx_queue[i]); in rtw_usb_tx_queue_purge()
490 struct sk_buff *skb = urb->context; in rtw_usb_write_port_complete()
499 const struct rtw_chip_info *chip = rtwdev->chip; in rtw_usb_write_data() local
505 size = pkt_info->tx_pkt_size; in rtw_usb_write_data()
506 qsel = pkt_info->qsel; in rtw_usb_write_data()
508 skb = dev_alloc_skb(chip->tx_pkt_desc_sz + size); in rtw_usb_write_data()
510 return -ENOMEM; in rtw_usb_write_data()
512 skb_reserve(skb, chip->tx_pkt_desc_sz); in rtw_usb_write_data()
514 skb_push(skb, chip->tx_pkt_desc_sz); in rtw_usb_write_data()
515 memset(skb->data, 0, chip->tx_pkt_desc_sz); in rtw_usb_write_data()
517 rtw_tx_fill_txdesc_checksum(rtwdev, pkt_info, skb->data); in rtw_usb_write_data()
530 const struct rtw_chip_info *chip = rtwdev->chip; in rtw_usb_write_data_rsvd_page() local
535 pkt_info.offset = chip->tx_pkt_desc_sz; in rtw_usb_write_data_rsvd_page()
553 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; in rtw_usb_tx_queue_mapping_to_qsel()
554 __le16 fc = hdr->frame_control; in rtw_usb_tx_queue_mapping_to_qsel()
559 else if (is_broadcast_ether_addr(hdr->addr1) || in rtw_usb_tx_queue_mapping_to_qsel()
560 is_multicast_ether_addr(hdr->addr1)) in rtw_usb_tx_queue_mapping_to_qsel()
563 qsel = skb->priority; in rtw_usb_tx_queue_mapping_to_qsel()
575 const struct rtw_chip_info *chip = rtwdev->chip; in rtw_usb_tx_write() local
580 pkt_info->qsel = rtw_usb_tx_queue_mapping_to_qsel(skb); in rtw_usb_tx_write()
581 pkt_desc = skb_push(skb, chip->tx_pkt_desc_sz); in rtw_usb_tx_write()
582 memset(pkt_desc, 0, chip->tx_pkt_desc_sz); in rtw_usb_tx_write()
583 ep = qsel_to_ep(rtwusb, pkt_info->qsel); in rtw_usb_tx_write()
585 rtw_tx_fill_txdesc_checksum(rtwdev, pkt_info, skb->data); in rtw_usb_tx_write()
587 tx_data->sn = pkt_info->sn; in rtw_usb_tx_write()
589 skb_queue_tail(&rtwusb->tx_queue[ep], skb); in rtw_usb_tx_write()
598 queue_work(rtwusb->txwq, &rtwusb->tx_work); in rtw_usb_tx_kick_off()
604 struct rtw_dev *rtwdev = rtwusb->rtwdev; in rtw_usb_rx_handler()
609 u32 pkt_desc_sz = rtwdev->chip->rx_pkt_desc_sz; in rtw_usb_rx_handler()
617 rx_skb = skb_dequeue(&rtwusb->rx_queue); in rtw_usb_rx_handler()
621 if (skb_queue_len(&rtwusb->rx_queue) >= RTW_USB_MAX_RXQ_LEN) { in rtw_usb_rx_handler()
622 dev_dbg_ratelimited(rtwdev->dev, "failed to get rx_queue, overflow\n"); in rtw_usb_rx_handler()
627 rx_desc = rx_skb->data; in rtw_usb_rx_handler()
661 memcpy(skb->cb, &rx_status, sizeof(rx_status)); in rtw_usb_rx_handler()
662 ieee80211_rx_irqsafe(rtwdev->hw, skb); in rtw_usb_rx_handler()
668 } while (rx_desc + pkt_desc_sz < rx_skb->data + rx_skb->len); in rtw_usb_rx_handler()
670 if (skb_queue_len(&rtwusb->rx_free_queue) >= RTW_USB_RX_SKB_NUM) in rtw_usb_rx_handler()
673 skb_queue_tail(&rtwusb->rx_free_queue, rx_skb); in rtw_usb_rx_handler()
683 struct rtw_dev *rtwdev = rtwusb->rtwdev; in rtw_usb_rx_resubmit()
687 rx_skb = skb_dequeue(&rtwusb->rx_free_queue); in rtw_usb_rx_resubmit()
695 rx_skb->len = 0; in rtw_usb_rx_resubmit()
697 rxcb->rx_skb = rx_skb; in rtw_usb_rx_resubmit()
699 usb_fill_bulk_urb(rxcb->rx_urb, rtwusb->udev, in rtw_usb_rx_resubmit()
700 usb_rcvbulkpipe(rtwusb->udev, rtwusb->pipe_in), in rtw_usb_rx_resubmit()
701 rxcb->rx_skb->data, RTW_USB_MAX_RECVBUF_SZ, in rtw_usb_rx_resubmit()
704 error = usb_submit_urb(rxcb->rx_urb, gfp); in rtw_usb_rx_resubmit()
706 skb_queue_tail(&rtwusb->rx_free_queue, rxcb->rx_skb); in rtw_usb_rx_resubmit()
708 if (error != -ENODEV) in rtw_usb_rx_resubmit()
712 if (error == -ENOMEM) in rtw_usb_rx_resubmit()
719 rxcb->rx_skb = NULL; in rtw_usb_rx_resubmit()
720 queue_work(rtwusb->rxwq, &rtwusb->rx_urb_work); in rtw_usb_rx_resubmit()
730 rxcb = &rtwusb->rx_cb[i]; in rtw_usb_rx_resubmit_work()
732 if (!rxcb->rx_skb) in rtw_usb_rx_resubmit_work()
739 struct rx_usb_ctrl_block *rxcb = urb->context; in rtw_usb_read_port_complete()
740 struct rtw_dev *rtwdev = rxcb->rtwdev; in rtw_usb_read_port_complete()
742 struct sk_buff *skb = rxcb->rx_skb; in rtw_usb_read_port_complete()
744 if (urb->status == 0) { in rtw_usb_read_port_complete()
745 if (urb->actual_length >= RTW_USB_MAX_RECVBUF_SZ || in rtw_usb_read_port_complete()
746 urb->actual_length < 24) { in rtw_usb_read_port_complete()
748 urb->actual_length); in rtw_usb_read_port_complete()
749 skb_queue_tail(&rtwusb->rx_free_queue, skb); in rtw_usb_read_port_complete()
751 skb_put(skb, urb->actual_length); in rtw_usb_read_port_complete()
752 skb_queue_tail(&rtwusb->rx_queue, skb); in rtw_usb_read_port_complete()
753 queue_work(rtwusb->rxwq, &rtwusb->rx_work); in rtw_usb_read_port_complete()
757 skb_queue_tail(&rtwusb->rx_free_queue, skb); in rtw_usb_read_port_complete()
759 switch (urb->status) { in rtw_usb_read_port_complete()
760 case -EINVAL: in rtw_usb_read_port_complete()
761 case -EPIPE: in rtw_usb_read_port_complete()
762 case -ENODEV: in rtw_usb_read_port_complete()
763 case -ESHUTDOWN: in rtw_usb_read_port_complete()
764 case -ENOENT: in rtw_usb_read_port_complete()
765 case -EPROTO: in rtw_usb_read_port_complete()
766 case -EILSEQ: in rtw_usb_read_port_complete()
767 case -ETIME: in rtw_usb_read_port_complete()
768 case -ECOMM: in rtw_usb_read_port_complete()
769 case -EOVERFLOW: in rtw_usb_read_port_complete()
770 case -EINPROGRESS: in rtw_usb_read_port_complete()
773 rtw_err(rtwdev, "status %d\n", urb->status); in rtw_usb_read_port_complete()
785 rxcb = &rtwusb->rx_cb[i]; in rtw_usb_cancel_rx_bufs()
786 usb_kill_urb(rxcb->rx_urb); in rtw_usb_cancel_rx_bufs()
796 rxcb = &rtwusb->rx_cb[i]; in rtw_usb_free_rx_bufs()
797 usb_kill_urb(rxcb->rx_urb); in rtw_usb_free_rx_bufs()
798 usb_free_urb(rxcb->rx_urb); in rtw_usb_free_rx_bufs()
807 struct rx_usb_ctrl_block *rxcb = &rtwusb->rx_cb[i]; in rtw_usb_alloc_rx_bufs()
809 rxcb->rtwdev = rtwusb->rtwdev; in rtw_usb_alloc_rx_bufs()
810 rxcb->rx_urb = usb_alloc_urb(0, GFP_KERNEL); in rtw_usb_alloc_rx_bufs()
811 if (!rxcb->rx_urb) in rtw_usb_alloc_rx_bufs()
818 return -ENOMEM; in rtw_usb_alloc_rx_bufs()
849 enum usb_device_speed speed = rtwusb->udev->speed; in rtw_usb_init_burst_pkt_len()
902 } else if (rtwusb->udev->speed == USB_SPEED_SUPER) { in rtw_usb_dynamic_rx_agg_v2()
919 switch (rtwdev->chip->id) { in rtw_usb_dynamic_rx_agg()
968 rtwusb->rxwq = alloc_workqueue("rtw88_usb: rx wq", WQ_BH, 0); in rtw_usb_init_rx()
969 if (!rtwusb->rxwq) { in rtw_usb_init_rx()
971 return -ENOMEM; in rtw_usb_init_rx()
974 skb_queue_head_init(&rtwusb->rx_queue); in rtw_usb_init_rx()
975 skb_queue_head_init(&rtwusb->rx_free_queue); in rtw_usb_init_rx()
977 INIT_WORK(&rtwusb->rx_work, rtw_usb_rx_handler); in rtw_usb_init_rx()
978 INIT_WORK(&rtwusb->rx_urb_work, rtw_usb_rx_resubmit_work); in rtw_usb_init_rx()
983 skb_queue_tail(&rtwusb->rx_free_queue, rx_skb); in rtw_usb_init_rx()
995 struct rx_usb_ctrl_block *rxcb = &rtwusb->rx_cb[i]; in rtw_usb_setup_rx()
1005 skb_queue_purge(&rtwusb->rx_queue); in rtw_usb_deinit_rx()
1007 destroy_workqueue(rtwusb->rxwq); in rtw_usb_deinit_rx()
1009 skb_queue_purge(&rtwusb->rx_free_queue); in rtw_usb_deinit_rx()
1017 rtwusb->txwq = create_singlethread_workqueue("rtw88_usb: tx wq"); in rtw_usb_init_tx()
1018 if (!rtwusb->txwq) { in rtw_usb_init_tx()
1020 return -ENOMEM; in rtw_usb_init_tx()
1023 for (i = 0; i < ARRAY_SIZE(rtwusb->tx_queue); i++) in rtw_usb_init_tx()
1024 skb_queue_head_init(&rtwusb->tx_queue[i]); in rtw_usb_init_tx()
1026 INIT_WORK(&rtwusb->tx_work, rtw_usb_tx_handler); in rtw_usb_init_tx()
1035 destroy_workqueue(rtwusb->txwq); in rtw_usb_deinit_tx()
1046 rtwusb->udev = udev; in rtw_usb_intf_init()
1051 rtwusb->usb_data = kcalloc(RTW_USB_MAX_RXTX_COUNT, sizeof(u32), in rtw_usb_intf_init()
1053 if (!rtwusb->usb_data) in rtw_usb_intf_init()
1054 return -ENOMEM; in rtw_usb_intf_init()
1056 usb_set_intfdata(intf, rtwdev->hw); in rtw_usb_intf_init()
1058 SET_IEEE80211_DEV(rtwdev->hw, &intf->dev); in rtw_usb_intf_init()
1059 spin_lock_init(&rtwusb->usb_lock); in rtw_usb_intf_init()
1069 usb_put_dev(rtwusb->udev); in rtw_usb_intf_deinit()
1070 kfree(rtwusb->usb_data); in rtw_usb_intf_deinit()
1077 enum usb_device_speed cur_speed = rtwusb->udev->speed; in rtw_usb_switch_mode_old()
1103 u8 id = rtwdev->chip->id; in rtw_usb_switch_mode_new() local
1122 "Switching to USB 3 mode unsupported by the chip\n"); in rtw_usb_switch_mode_new()
1127 * to switch don't try again - it's a USB 2 port. in rtw_usb_switch_mode_new()
1133 if (id == RTW_CHIP_TYPE_8822B || id == RTW_CHIP_TYPE_8821C) in rtw_usb_switch_mode_new()
1163 u8 id = rtwdev->chip->id; in rtw_usb_switch_mode() local
1165 if (!rtw_usb3_chip_new(id) && !rtw_usb3_chip_old(id)) in rtw_usb_switch_mode()
1168 if (!rtwdev->efuse.usb_mode_switch) { in rtw_usb_switch_mode()
1170 "Switching to USB 3 mode disabled by chip's efuse\n"); in rtw_usb_switch_mode()
1180 if (rtw_usb3_chip_old(id)) in rtw_usb_switch_mode()
1219 if (!rtwdev->chip->intf_table) in rtw_usb_phy_cfg()
1223 para = rtwdev->chip->intf_table->usb3_para; in rtw_usb_phy_cfg()
1225 para = rtwdev->chip->intf_table->usb2_para; in rtw_usb_phy_cfg()
1230 for ( ; para->offset != 0xffff; para++) { in rtw_usb_phy_cfg()
1231 if (!(para->cut_mask & BIT(rtwdev->hal.cut_version))) in rtw_usb_phy_cfg()
1234 offset = para->offset; in rtw_usb_phy_cfg()
1236 if (para->ip_sel == RTW_IP_SEL_MAC) { in rtw_usb_phy_cfg()
1237 rtw_write8(rtwdev, offset, para->value); in rtw_usb_phy_cfg()
1246 rtw_usb_phy_write(rtwdev, offset, para->value, speed); in rtw_usb_phy_cfg()
1251 int rtw_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) in rtw_usb_probe() argument
1262 return -ENOMEM; in rtw_usb_probe()
1264 rtwdev = hw->priv; in rtw_usb_probe()
1265 rtwdev->hw = hw; in rtw_usb_probe()
1266 rtwdev->dev = &intf->dev; in rtw_usb_probe()
1267 rtwdev->chip = (struct rtw_chip_info *)id->driver_info; in rtw_usb_probe()
1268 rtwdev->hci.ops = &rtw_usb_ops; in rtw_usb_probe()
1269 rtwdev->hci.type = RTW_HCI_TYPE_USB; in rtw_usb_probe()
1272 rtwusb->rtwdev = rtwdev; in rtw_usb_probe()
1302 rtw_err(rtwdev, "failed to setup chip information\n"); in rtw_usb_probe()
1317 ret = rtw_register_hw(rtwdev, rtwdev->hw); in rtw_usb_probe()
1358 rtwdev = hw->priv; in rtw_usb_disconnect()
1367 if (rtwusb->udev->state != USB_STATE_NOTATTACHED) in rtw_usb_disconnect()
1368 usb_reset_device(rtwusb->udev); in rtw_usb_disconnect()