Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[linux-2.6-microblaze.git] / drivers / net / ipa / ipa_qmi.h
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  * @modem_sq:           QMAP socket address for the modem QMI server
19  * @init_driver_work:   Work structure used for INIT_DRIVER message handling
20  * @initial_boot:       True if first boot has not yet completed
21  * @uc_ready:           True once DRIVER_INIT_COMPLETE request received
22  * @modem_ready:        True when INIT_DRIVER response received
23  * @indication_requested: True when INDICATION_REGISTER request received
24  * @indication_sent:    True when INIT_COMPLETE indication sent
25  */
26 struct ipa_qmi {
27         struct qmi_handle client_handle;
28         struct qmi_handle server_handle;
29
30         /* Information used for the client handle */
31         struct sockaddr_qrtr modem_sq;
32         struct work_struct init_driver_work;
33
34         /* Flags used in negotiating readiness */
35         bool initial_boot;
36         bool uc_ready;
37         bool modem_ready;
38         bool indication_requested;
39         bool indication_sent;
40 };
41
42 int ipa_qmi_setup(struct ipa *ipa);
43 void ipa_qmi_teardown(struct ipa *ipa);
44
45 #endif /* !_IPA_QMI_H_ */