drivers/net/wwan/iosm/iosm_ipc_flash.h

Source file repositories/reference/linux-study-clean/drivers/net/wwan/iosm/iosm_ipc_flash.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wwan/iosm/iosm_ipc_flash.h
Extension
.h
Size
6719 bytes
Lines
230
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 iosm_ebl_one_error {
	u16 error_class;
	u16 error_code;
};

/**
 * struct iosm_ebl_error- Structure with max error type supported
 * @error:		Array of one_error structure with max errors
 */
struct iosm_ebl_error {
	struct iosm_ebl_one_error error[IOSM_MAX_ERRORS];
};

/**
 * struct iosm_swid_table - SWID table data for modem
 * @number_of_data_sets:	Number of swid types
 * @sw_id_type:			SWID type - SWID
 * @sw_id_val:			SWID value
 * @rf_engine_id_type:		RF engine ID type - RF_ENGINE_ID
 * @rf_engine_id_val:		RF engine ID value
 */
struct iosm_swid_table {
	u32 number_of_data_sets;
	char sw_id_type[IOSM_EBL_NAME];
	u32 sw_id_val;
	char rf_engine_id_type[IOSM_EBL_NAME];
	u32 rf_engine_id_val;
};

/**
 * struct iosm_flash_msg_control - Data sent to modem
 * @action:	Action to be performed
 * @type:	Type of action
 * @length:	Length of the action
 * @arguments:	Argument value sent to modem
 */
struct iosm_flash_msg_control {
	__le32 action;
	__le32 type;
	__le32 length;
	__le32 arguments;
};

/**
 * struct iosm_flash_data -  Header Data to be sent to modem
 * @checksum:	Checksum value calculated for the payload data
 * @pack_id:	Flash Action type
 * @msg_length:	Payload length
 */
struct iosm_flash_data {
	__le16  checksum;
	__le16  pack_id;
	__le32  msg_length;
};

int ipc_flash_boot_psi(struct iosm_devlink *ipc_devlink,
		       const struct firmware *fw);

int ipc_flash_boot_ebl(struct iosm_devlink *ipc_devlink,
		       const struct firmware *fw);

int ipc_flash_boot_set_capabilities(struct iosm_devlink *ipc_devlink,
				    u8 *mdm_rsp);

int ipc_flash_link_establish(struct iosm_imem *ipc_imem);

int ipc_flash_read_swid(struct iosm_devlink *ipc_devlink, u8 *mdm_rsp);

int ipc_flash_send_fls(struct iosm_devlink *ipc_devlink,
		       const struct firmware *fw, u8 *mdm_rsp);
#endif

Annotation

Implementation Notes