drivers/hid/intel-ish-hid/ishtp/hbm.h

Source file repositories/reference/linux-study-clean/drivers/hid/intel-ish-hid/ishtp/hbm.h

File Facts

System
Linux kernel
Corpus path
drivers/hid/intel-ish-hid/ishtp/hbm.h
Extension
.h
Size
7146 bytes
Lines
315
Domain
Driver Families
Bucket
drivers/hid
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 ishtp_msg_hdr {
	uint32_t fw_addr:8;
	uint32_t host_addr:8;
	uint32_t length:9;
	uint32_t reserved:6;
	uint32_t msg_complete:1;
} __packed;

struct ishtp_bus_message {
	uint8_t hbm_cmd;
	uint8_t data[];
} __packed;

/**
 * struct hbm_cl_cmd - client specific host bus command
 *	CONNECT, DISCONNECT, and FlOW CONTROL
 *
 * @hbm_cmd - bus message command header
 * @fw_addr - address of the fw client
 * @host_addr - address of the client in the driver
 * @data
 */
struct ishtp_hbm_cl_cmd {
	uint8_t hbm_cmd;
	uint8_t fw_addr;
	uint8_t host_addr;
	uint8_t data;
};

struct hbm_version {
	uint8_t minor_version;
	uint8_t major_version;
} __packed;

struct hbm_host_version_request {
	uint8_t hbm_cmd;
	uint8_t reserved;
	struct hbm_version host_version;
} __packed;

struct hbm_host_version_response {
	uint8_t hbm_cmd;
	uint8_t host_version_supported;
	struct hbm_version fw_max_version;
} __packed;

struct hbm_host_stop_request {
	uint8_t hbm_cmd;
	uint8_t reason;
	uint8_t reserved[2];
} __packed;

struct hbm_host_stop_response {
	uint8_t hbm_cmd;
	uint8_t reserved[3];
} __packed;

struct hbm_host_enum_request {
	uint8_t hbm_cmd;
	uint8_t reserved[3];
} __packed;

struct hbm_host_enum_response {
	uint8_t hbm_cmd;
	uint8_t reserved[3];
	uint8_t valid_addresses[32];
} __packed;

struct ishtp_client_properties {
	guid_t protocol_name;
	uint8_t protocol_version;
	uint8_t max_number_of_connections;
	uint8_t fixed_address;
	uint8_t single_recv_buf;
	uint32_t max_msg_length;
	uint8_t dma_hdr_len;
#define	ISHTP_CLIENT_DMA_ENABLED	0x80
	uint8_t reserved4;
	uint8_t reserved5;
	uint8_t reserved6;
} __packed;

struct hbm_props_request {
	uint8_t hbm_cmd;
	uint8_t address;
	uint8_t reserved[2];
} __packed;

struct hbm_props_response {
	uint8_t hbm_cmd;

Annotation

Implementation Notes