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