drivers/net/ipa/ipa_qmi_msg.h
Source file repositories/reference/linux-study-clean/drivers/net/ipa/ipa_qmi_msg.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ipa/ipa_qmi_msg.h- Extension
.h- Size
- 9237 bytes
- Lines
- 263
- 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.
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/types.hlinux/soc/qcom/qmi.h
Detected Declarations
struct ipa_indication_register_reqstruct ipa_indication_register_rspstruct ipa_driver_init_complete_reqstruct ipa_driver_init_complete_rspstruct ipa_init_complete_indstruct ipa_mem_boundsstruct ipa_mem_arraystruct ipa_mem_rangestruct ipa_init_modem_driver_reqstruct ipa_init_modem_driver_rspenum ipa_platform_type
Annotated Snippet
struct ipa_indication_register_req {
u8 master_driver_init_complete_valid;
u8 master_driver_init_complete;
u8 data_usage_quota_reached_valid;
u8 data_usage_quota_reached;
u8 ipa_mhi_ready_ind_valid;
u8 ipa_mhi_ready_ind;
u8 endpoint_desc_ind_valid;
u8 endpoint_desc_ind;
u8 bw_change_ind_valid;
u8 bw_change_ind;
};
/* The response to a IPA_QMI_INDICATION_REGISTER request consists only of
* a standard QMI response.
*/
struct ipa_indication_register_rsp {
struct qmi_response_type_v01 rsp;
};
/* Request message for the IPA_QMI_DRIVER_INIT_COMPLETE request */
struct ipa_driver_init_complete_req {
u8 status;
};
/* The response to a IPA_QMI_DRIVER_INIT_COMPLETE request consists only
* of a standard QMI response.
*/
struct ipa_driver_init_complete_rsp {
struct qmi_response_type_v01 rsp;
};
/* The message for the IPA_QMI_INIT_COMPLETE_IND indication consists
* only of a standard QMI response.
*/
struct ipa_init_complete_ind {
struct qmi_response_type_v01 status;
};
/* The AP tells the modem its platform type. We assume Android. */
enum ipa_platform_type {
IPA_QMI_PLATFORM_TYPE_INVALID = 0x0, /* Invalid */
IPA_QMI_PLATFORM_TYPE_TN = 0x1, /* Data card */
IPA_QMI_PLATFORM_TYPE_LE = 0x2, /* Data router */
IPA_QMI_PLATFORM_TYPE_MSM_ANDROID = 0x3, /* Android MSM */
IPA_QMI_PLATFORM_TYPE_MSM_WINDOWS = 0x4, /* Windows MSM */
IPA_QMI_PLATFORM_TYPE_MSM_QNX_V01 = 0x5, /* QNX MSM */
};
/* This defines the start and end offset of a range of memory. The start
* value is a byte offset relative to the start of IPA shared memory. The
* end value is the last addressable unit *within* the range. Typically
* the end value is in units of bytes, however it can also be a maximum
* array index value.
*/
struct ipa_mem_bounds {
u32 start;
u32 end;
};
/* This defines the location and size of an array. The start value
* is an offset relative to the start of IPA shared memory. The
* size of the array is implied by the number of entries (the entry
* size is assumed to be known).
*/
struct ipa_mem_array {
u32 start;
u32 count;
};
/* This defines the location and size of a range of memory. The
* start is an offset relative to the start of IPA shared memory.
* This differs from the ipa_mem_bounds structure in that the size
* (in bytes) of the memory region is specified rather than the
* offset of its last byte.
*/
struct ipa_mem_range {
u32 start;
u32 size;
};
/* The message for the IPA_QMI_INIT_DRIVER request contains information
* from the AP that affects modem initialization.
*/
struct ipa_init_modem_driver_req {
u8 platform_type_valid;
u32 platform_type; /* enum ipa_platform_type */
/* Modem header table information. This defines the IPA shared
* memory in which the modem may insert header table entries.
Annotation
- Immediate include surface: `linux/types.h`, `linux/soc/qcom/qmi.h`.
- Detected declarations: `struct ipa_indication_register_req`, `struct ipa_indication_register_rsp`, `struct ipa_driver_init_complete_req`, `struct ipa_driver_init_complete_rsp`, `struct ipa_init_complete_ind`, `struct ipa_mem_bounds`, `struct ipa_mem_array`, `struct ipa_mem_range`, `struct ipa_init_modem_driver_req`, `struct ipa_init_modem_driver_rsp`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.