AP MODEM QMI HANDSHAKE(9)
π AP/Modem QMI Handshake(9) π
okay bestie, welcome to the Kernel API Manual, section 9 β this is the AP/Modem QMI Handshake page, and it's literally the lore for how the AP and modem agree that everything is ready. β¨
The AP and modem perform a "handshake" at initialization time to ensure both sides know when everything is ready to begin operating. The AP driver (this code) uses two QMI handles (endpoints) for this: a client using a service on the modem, and a server to service modem requests (and to supply an indication message from the AP). Once the handshake is complete, the AP and modem may begin IPA operation. This occurs only when the AP IPA driver, modem IPA driver, and IPA microcontroller are ready. periodt.
The QMI service on the modem expects to receive an INIT_DRIVER request from the AP, which contains parameters used by the modem during initialization. The AP sends this request as soon as it knows the modem side service is available. The modem responds to this request, and if this response contains a success result, the AP knows the modem IPA driver is ready. π«Ά
The modem is responsible for loading firmware on the IPA microcontroller. This occurs only during the initial modem boot. The modem sends a separate DRIVER_INIT_COMPLETE request to the AP to report that the microcontroller is ready. The AP may assume the microcontroller is ready and remain so (even if the modem reboots) once it has received and responded to this request.
There is one final exchange involved in the handshake. It is required on the initial modem boot, but optional (but in practice does occur) on subsequent boots. The modem expects to receive a final INIT_COMPLETE indication message from the AP when it is about to begin its normal operation. The AP will only send this message after it has received and responded to an INDICATION_REGISTER request from the modem.
So in summary:
- Whenever the AP learns the modem has booted and its IPA QMI service is available, it sends an
INIT_DRIVERrequest to the modem. The modem supplies a success response when it is ready to operate. π - On the initial boot, the modem sets up the IPA microcontroller, and sends a
DRIVER_INIT_COMPLETErequest to the AP when this is done. - When the modem is ready to receive an
INIT_COMPLETEindication from the AP, it sends anINDICATION_REGISTERrequest to the AP. - On the initial modem boot, everything is ready when:
- AP has received a success response from its
INIT_DRIVERrequest - AP has responded to a
DRIVER_INIT_COMPLETErequest - AP has responded to an
INDICATION_REGISTERrequest from the modem - AP has sent an
INIT_COMPLETEindication to the modem
- AP has received a success response from its
- On subsequent modem boots, everything is ready when:
- AP has received a success response from its
INIT_DRIVERrequest - AP has responded to a
DRIVER_INIT_COMPLETErequest - The
INDICATION_REGISTERrequest andINIT_COMPLETEindication are optional for non-initial modem boots, and have no bearing on the determination of when things are "ready"
- AP has received a success response from its
π SEE ALSO π
- Kernel file
./drivers/net/ipa/ipa_qmi.c
okay that's the whole vibe π β this page was hanging out at ./drivers/net/ipa, dated October 2026, and it's called AP/Modem QMI Handshake(9). slay, you got this π
β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms