drivers/net/wireless/ath/ath9k/hif_usb.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath9k/hif_usb.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/ath/ath9k/hif_usb.h
Extension
.h
Size
3751 bytes
Lines
142
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct tx_buf {
	u16 len;
	u16 offset;
	struct urb *urb;
	struct sk_buff_head skb_queue;
	struct hif_device_usb *hif_dev;
	struct list_head list;
	u8 buf[];
};

struct rx_buf {
	struct sk_buff *skb;
	struct hif_device_usb *hif_dev;
};

#define HIF_USB_TX_STOP  BIT(0)
#define HIF_USB_TX_FLUSH BIT(1)

struct hif_usb_tx {
	u8 flags;
	u8 tx_buf_cnt;
	u16 tx_skb_cnt;
	struct sk_buff_head tx_skb_queue;
	struct list_head tx_buf;
	struct list_head tx_pending;
	spinlock_t tx_lock;
};

struct cmd_buf {
	struct sk_buff *skb;
	struct hif_device_usb *hif_dev;
};

#define HIF_USB_START BIT(0)
#define HIF_USB_READY BIT(1)

struct hif_device_usb {
	struct usb_device *udev;
	struct usb_interface *interface;
	const struct usb_device_id *usb_device_id;
	const void *fw_data;
	size_t fw_size;
	struct completion fw_done;
	struct htc_target *htc_handle;
	struct hif_usb_tx tx;
	struct usb_anchor regout_submitted;
	struct usb_anchor rx_submitted;
	struct usb_anchor reg_in_submitted;
	struct usb_anchor mgmt_submitted;
	struct sk_buff *remain_skb;
	char fw_name[64];
	int fw_minor_index;
	int rx_remain_len;
	int rx_pkt_len;
	int rx_transfer_len;
	int rx_pad_len;
	spinlock_t rx_lock;
	u8 flags; /* HIF_USB_* */
};

void ath9k_hif_usb_dealloc_urbs(struct hif_device_usb *hif_dev);

#endif /* HTC_USB_H */

Annotation

Implementation Notes