drivers/net/wireless/ath/ath10k/htc.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/ath/ath10k/htc.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/ath/ath10k/htc.h
Extension
.h
Size
10983 bytes
Lines
422
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 ath10k_htc_hdr {
	u8 eid; /* @enum ath10k_htc_ep_id */
	u8 flags; /* @enum ath10k_htc_tx_flags, ath10k_htc_rx_flags */
	__le16 len;
	union {
		u8 trailer_len; /* for rx */
		u8 control_byte0;
	} __packed;
	union {
		u8 seq_no; /* for tx */
		u8 control_byte1;
	} __packed;
	union {
		__le16 pad_len;
		struct {
			u8 pad0;
			u8 pad1;
		} __packed;
	} __packed;

} __packed __aligned(4);

enum ath10k_ath10k_htc_msg_id {
	ATH10K_HTC_MSG_READY_ID                = 1,
	ATH10K_HTC_MSG_CONNECT_SERVICE_ID      = 2,
	ATH10K_HTC_MSG_CONNECT_SERVICE_RESP_ID = 3,
	ATH10K_HTC_MSG_SETUP_COMPLETE_ID       = 4,
	ATH10K_HTC_MSG_SETUP_COMPLETE_EX_ID    = 5,
	ATH10K_HTC_MSG_SEND_SUSPEND_COMPLETE   = 6
};

enum ath10k_htc_version {
	ATH10K_HTC_VERSION_2P0 = 0x00, /* 2.0 */
	ATH10K_HTC_VERSION_2P1 = 0x01, /* 2.1 */
};

enum ath10k_htc_conn_flags {
	ATH10K_HTC_CONN_FLAGS_THRESHOLD_LEVEL_ONE_FOURTH    = 0x0,
	ATH10K_HTC_CONN_FLAGS_THRESHOLD_LEVEL_ONE_HALF      = 0x1,
	ATH10K_HTC_CONN_FLAGS_THRESHOLD_LEVEL_THREE_FOURTHS = 0x2,
	ATH10K_HTC_CONN_FLAGS_THRESHOLD_LEVEL_UNITY         = 0x3,
#define ATH10K_HTC_CONN_FLAGS_THRESHOLD_LEVEL_MASK 0x3
	ATH10K_HTC_CONN_FLAGS_REDUCE_CREDIT_DRIBBLE    = 1 << 2,
	ATH10K_HTC_CONN_FLAGS_DISABLE_CREDIT_FLOW_CTRL = 1 << 3
#define ATH10K_HTC_CONN_FLAGS_RECV_ALLOC_MASK 0xFF00
#define ATH10K_HTC_CONN_FLAGS_RECV_ALLOC_LSB  8
};

#define ATH10K_HTC_MSG_READY_EXT_ALT_DATA_MASK 0xFFF

enum ath10k_htc_conn_svc_status {
	ATH10K_HTC_CONN_SVC_STATUS_SUCCESS      = 0,
	ATH10K_HTC_CONN_SVC_STATUS_NOT_FOUND    = 1,
	ATH10K_HTC_CONN_SVC_STATUS_FAILED       = 2,
	ATH10K_HTC_CONN_SVC_STATUS_NO_RESOURCES = 3,
	ATH10K_HTC_CONN_SVC_STATUS_NO_MORE_EP   = 4
};

#define ATH10K_MAX_MSG_PER_HTC_TX_BUNDLE        32
#define ATH10K_MIN_MSG_PER_HTC_TX_BUNDLE        2
#define ATH10K_MIN_CREDIT_PER_HTC_TX_BUNDLE     2

enum ath10k_htc_setup_complete_flags {
	ATH10K_HTC_SETUP_COMPLETE_FLAGS_RX_BNDL_EN = 1
};

struct ath10k_ath10k_htc_msg_hdr {
	__le16 message_id; /* @enum htc_message_id */
} __packed;

struct ath10k_htc_unknown {
	u8 pad0;
	u8 pad1;
} __packed;

struct ath10k_htc_ready {
	__le16 credit_count;
	__le16 credit_size;
	u8 max_endpoints;
	u8 pad0;
} __packed;

struct ath10k_htc_ready_extended {
	struct ath10k_htc_ready base;
	u8 htc_version; /* @enum ath10k_htc_version */
	u8 max_msgs_per_htc_bundle;
	union {
		__le16 reserved;
		struct {
			u8 pad0;

Annotation

Implementation Notes