Lines Matching full:qmi

11 #include <linux/soc/qcom/qmi.h>
21 * DOC: AP/Modem QMI Handshake
25 * driver (this code) uses two QMI handles (endpoints) for this; a client
32 * The QMI service on the modem expects to receive an INIT_DRIVER request from
53 * - Whenever the AP learns the modem has booted and its IPA QMI service
86 struct ipa *ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_server_init_complete()
87 struct qmi_handle *qmi = &ipa_qmi->server_handle; in ipa_server_init_complete() local
95 ret = qmi_send_indication(qmi, sq, IPA_QMI_INIT_COMPLETE, in ipa_server_init_complete()
148 ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_qmi_ready()
154 /* All QMI clients from the modem node are gone (modem shut down or crashed). */
155 static void ipa_server_bye(struct qmi_handle *qmi, unsigned int node) in ipa_server_bye() argument
159 ipa_qmi = container_of(qmi, struct ipa_qmi, server_handle); in ipa_server_bye()
179 static void ipa_server_indication_register(struct qmi_handle *qmi, in ipa_server_indication_register() argument
189 ipa_qmi = container_of(qmi, struct ipa_qmi, server_handle); in ipa_server_indication_register()
190 ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_server_indication_register()
195 ret = qmi_send_response(qmi, sq, txn, IPA_QMI_INDICATION_REGISTER, in ipa_server_indication_register()
208 static void ipa_server_driver_init_complete(struct qmi_handle *qmi, in ipa_server_driver_init_complete() argument
218 ipa_qmi = container_of(qmi, struct ipa_qmi, server_handle); in ipa_server_driver_init_complete()
219 ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_server_driver_init_complete()
224 ret = qmi_send_response(qmi, sq, txn, IPA_QMI_DRIVER_INIT_COMPLETE, in ipa_server_driver_init_complete()
256 static void ipa_client_init_driver(struct qmi_handle *qmi, in ipa_client_init_driver() argument
286 struct ipa *ipa = container_of(ipa_qmi, struct ipa, qmi); in init_modem_driver_req()
410 struct qmi_handle *qmi; in ipa_client_init_driver_work() local
417 qmi = &ipa_qmi->client_handle; in ipa_client_init_driver_work()
419 ipa = container_of(ipa_qmi, struct ipa, qmi); in ipa_client_init_driver_work()
422 ret = qmi_txn_init(qmi, &txn, NULL, NULL); in ipa_client_init_driver_work()
430 ret = qmi_send_request(qmi, &ipa_qmi->modem_sq, &txn, in ipa_client_init_driver_work()
452 ipa_client_new_server(struct qmi_handle *qmi, struct qmi_service *svc) in ipa_client_new_server() argument
456 ipa_qmi = container_of(qmi, struct ipa_qmi, client_handle); in ipa_client_new_server()
471 /* Set up for QMI message exchange */
474 struct ipa_qmi *ipa_qmi = &ipa->qmi; in ipa_qmi_setup()
527 /* Tear down IPA QMI handles */
530 cancel_work_sync(&ipa->qmi.init_driver_work); in ipa_qmi_teardown()
532 qmi_handle_release(&ipa->qmi.client_handle); in ipa_qmi_teardown()
533 memset(&ipa->qmi.client_handle, 0, sizeof(ipa->qmi.client_handle)); in ipa_qmi_teardown()
535 qmi_handle_release(&ipa->qmi.server_handle); in ipa_qmi_teardown()
536 memset(&ipa->qmi.server_handle, 0, sizeof(ipa->qmi.server_handle)); in ipa_qmi_teardown()