FILE
usb.h
File preview with syntax highlighting.
linux-6.19.14/drivers/net/wireless/realtek/rtw89/usb.h
1/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 2/* Copyright(c) 2025 Realtek Corporation 3 */ 4 5#ifndef __RTW89_USB_H__ 6#define __RTW89_USB_H__ 7 8#include "txrx.h" 9 10#define RTW89_USB_VENQT 0x05 11#define RTW89_USB_VENQT_READ 0xc0 12#define RTW89_USB_VENQT_WRITE 0x40 13 14#define RTW89_USB_RECVBUF_SZ 20480 15#define RTW89_USB_RXCB_NUM 8 16#define RTW89_USB_RX_SKB_NUM 16 17#define RTW89_USB_MAX_RXQ_LEN 512 18#define RTW89_USB_MOD512_PADDING 4 19 20#define RTW89_MAX_ENDPOINT_NUM 9 21#define RTW89_MAX_BULKOUT_NUM 7 22 23struct rtw89_usb_info { 24 u32 usb_host_request_2; 25 u32 usb_wlan0_1; 26 u32 hci_func_en; 27 u32 usb3_mac_npi_config_intf_0; 28 u32 usb_endpoint_0; 29 u32 usb_endpoint_2; 30 u8 bulkout_id[RTW89_DMA_CH_NUM]; 31}; 32 33struct rtw89_usb_rx_ctrl_block { 34 struct rtw89_dev *rtwdev; 35 struct urb *rx_urb; 36 struct sk_buff *rx_skb; 37}; 38 39struct rtw89_usb_tx_ctrl_block { 40 struct rtw89_dev *rtwdev; 41 u8 txch; 42 struct sk_buff_head tx_ack_queue; 43}; 44 45struct rtw89_usb { 46 struct rtw89_dev *rtwdev; 47 struct usb_device *udev; 48 const struct rtw89_usb_info *info; 49 50 __le32 *vendor_req_buf; 51 52 atomic_t continual_io_error; 53 54 u8 in_pipe; 55 u8 out_pipe[RTW89_MAX_BULKOUT_NUM]; 56 57 struct workqueue_struct *rxwq; 58 struct rtw89_usb_rx_ctrl_block rx_cb[RTW89_USB_RXCB_NUM]; 59 struct sk_buff_head rx_queue; 60 struct sk_buff_head rx_free_queue; 61 struct work_struct rx_work; 62 struct work_struct rx_urb_work; 63 struct usb_anchor tx_submitted; 64 65 struct sk_buff_head tx_queue[RTW89_TXCH_NUM]; 66}; 67 68static inline struct rtw89_usb *rtw89_usb_priv(struct rtw89_dev *rtwdev) 69{ 70 return (struct rtw89_usb *)rtwdev->priv; 71} 72 73int rtw89_usb_probe(struct usb_interface *intf, 74 const struct usb_device_id *id); 75void rtw89_usb_disconnect(struct usb_interface *intf); 76 77#endif
~/
Read-only file preview.