xref: /linux/drivers/net/ipa/ipa_qmi.h (revision c79c3c34f75d72a066e292b10aa50fc758c97c89)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 
3 /* Copyright (c) 2018, The Linux Foundation. All rights reserved.
4  * Copyright (C) 2018-2020 Linaro Ltd.
5  */
6 #ifndef _IPA_QMI_H_
7 #define _IPA_QMI_H_
8 
9 #include <linux/types.h>
10 #include <linux/soc/qcom/qmi.h>
11 
12 struct ipa;
13 
14 /**
15  * struct ipa_qmi - QMI state associated with an IPA
16  * @client_handle	- used to send an QMI requests to the modem
17  * @server_handle	- used to handle QMI requests from the modem
18  * @initialized		- whether QMI initialization has completed
19  * @indication_register_received - tracks modem request receipt
20  * @init_driver_response_received - tracks modem response receipt
21  */
22 struct ipa_qmi {
23 	struct qmi_handle client_handle;
24 	struct qmi_handle server_handle;
25 
26 	/* Information used for the client handle */
27 	struct sockaddr_qrtr modem_sq;
28 	struct work_struct init_driver_work;
29 
30 	/* Flags used in negotiating readiness */
31 	bool initial_boot;
32 	bool uc_ready;
33 	bool modem_ready;
34 	bool indication_requested;
35 	bool indication_sent;
36 };
37 
38 int ipa_qmi_setup(struct ipa *ipa);
39 void ipa_qmi_teardown(struct ipa *ipa);
40 
41 #endif /* !_IPA_QMI_H_ */
42