drivers/input/rmi4/rmi_f34.h

Source file repositories/reference/linux-study-clean/drivers/input/rmi4/rmi_f34.h

File Facts

System
Linux kernel
Corpus path
drivers/input/rmi4/rmi_f34.h
Extension
.h
Size
6864 bytes
Lines
296
Domain
Driver Families
Bucket
drivers/input
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 f34v7_query_1_7 {
	u8 bl_minor_revision;			/* query 1 */
	u8 bl_major_revision;
	__le32 bl_fw_id;			/* query 2 */
	u8 minimum_write_size;			/* query 3 */
	__le16 block_size;
	__le16 flash_page_size;
	__le16 adjustable_partition_area_size;	/* query 4 */
	__le16 flash_config_length;		/* query 5 */
	__le16 payload_length;			/* query 6 */
	u8 partition_support[4];		/* query 7 */
} __packed;

struct f34v7_data_1_5 {
	u8 partition_id;
	__le16 block_offset;
	__le16 transfer_length;
	u8 command;
	u8 payload[2];
} __packed;

struct block_data {
	const void *data;
	int size;
};

struct partition_table {
	u8 partition_id;
	u8 byte_1_reserved;
	__le16 partition_length;
	__le16 start_physical_address;
	__le16 partition_properties;
} __packed;

struct physical_address {
	u16 ui_firmware;
	u16 ui_config;
	u16 dp_config;
	u16 guest_code;
};

struct container_descriptor {
	__le32 content_checksum;
	__le16 container_id;
	u8 minor_version;
	u8 major_version;
	u8 reserved_08;
	u8 reserved_09;
	u8 reserved_0a;
	u8 reserved_0b;
	u8 container_option_flags[4];
	__le32 content_options_length;
	__le32 content_options_address;
	__le32 content_length;
	__le32 content_address;
} __packed;

struct block_count {
	u16 ui_firmware;
	u16 ui_config;
	u16 dp_config;
	u16 fl_config;
	u16 pm_config;
	u16 bl_config;
	u16 lockdown;
	u16 guest_code;
};

struct image_header_10 {
	__le32 checksum;
	u8 reserved_04;
	u8 reserved_05;
	u8 minor_header_version;
	u8 major_header_version;
	u8 reserved_08;
	u8 reserved_09;
	u8 reserved_0a;
	u8 reserved_0b;
	__le32 top_level_container_start_addr;
};

struct image_metadata {
	bool contains_firmware_id;
	bool contains_bootloader;
	bool contains_display_cfg;
	bool contains_guest_code;
	bool contains_flash_config;
	unsigned int firmware_id;
	unsigned int checksum;
	unsigned int bootloader_size;

Annotation

Implementation Notes