drivers/net/usb/aqc111.h

Source file repositories/reference/linux-study-clean/drivers/net/usb/aqc111.h

File Facts

System
Linux kernel
Corpus path
drivers/net/usb/aqc111.h
Extension
.h
Size
6628 bytes
Lines
233
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 aqc111_wol_cfg {
	u8 hw_addr[6];
	u8 flags;
	u8 rsvd[283];
} __packed;

#define WOL_CFG_SIZE sizeof(struct aqc111_wol_cfg)

struct aqc111_data {
	u16 rxctl;
	u8 rx_checksum;
	u8 link_speed;
	u8 link;
	u8 autoneg;
	u32 advertised_speed;
	struct {
		u8 major;
		u8 minor;
		u8 rev;
	} fw_ver;
	u32 phy_cfg;
	u8 wol_flags;
};

#define AQ_LS_MASK		0x8000
#define AQ_SPEED_MASK		0x7F00
#define AQ_SPEED_SHIFT		0x0008
#define AQ_INT_SPEED_5G		0x000F
#define AQ_INT_SPEED_2_5G	0x0010
#define AQ_INT_SPEED_1G		0x0011
#define AQ_INT_SPEED_100M	0x0013

/* TX Descriptor */
#define AQ_TX_DESC_LEN_MASK	0x1FFFFF
#define AQ_TX_DESC_DROP_PADD	BIT(28)
#define AQ_TX_DESC_VLAN		BIT(29)
#define AQ_TX_DESC_MSS_MASK	0x7FFF
#define AQ_TX_DESC_MSS_SHIFT	0x20
#define AQ_TX_DESC_VLAN_MASK	0xFFFF
#define AQ_TX_DESC_VLAN_SHIFT	0x30

#define AQ_RX_HW_PAD			0x02

/* RX Packet Descriptor */
#define AQ_RX_PD_L4_ERR		BIT(0)
#define AQ_RX_PD_L3_ERR		BIT(1)
#define AQ_RX_PD_L4_TYPE_MASK	0x1C
#define AQ_RX_PD_L4_UDP		0x04
#define AQ_RX_PD_L4_TCP		0x10
#define AQ_RX_PD_L3_TYPE_MASK	0x60
#define AQ_RX_PD_L3_IP		0x20
#define AQ_RX_PD_L3_IP6		0x40

#define AQ_RX_PD_VLAN		BIT(10)
#define AQ_RX_PD_RX_OK		BIT(11)
#define AQ_RX_PD_DROP		BIT(31)
#define AQ_RX_PD_LEN_MASK	0x7FFF0000
#define AQ_RX_PD_LEN_SHIFT	0x10
#define AQ_RX_PD_VLAN_SHIFT	0x20

/* RX Descriptor header */
#define AQ_RX_DH_PKT_CNT_MASK		0x1FFF
#define AQ_RX_DH_DESC_OFFSET_MASK	0xFFFFE000
#define AQ_RX_DH_DESC_OFFSET_SHIFT	0x0D

static struct {
	unsigned char ctrl;
	unsigned char timer_l;
	unsigned char timer_h;
	unsigned char size;
	unsigned char ifg;
} AQC111_BULKIN_SIZE[] = {
	/* xHCI & EHCI & OHCI */
	{7, 0x00, 0x01, 0x1E, 0xFF},/* 10G, 5G, 2.5G, 1G */
	{7, 0xA0, 0x00, 0x14, 0x00},/* 100M */
	/* Jumbo packet */
	{7, 0x00, 0x01, 0x18, 0xFF},
};

#endif /* __LINUX_USBNET_AQC111_H */

Annotation

Implementation Notes