cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ipa_qmi.h (2051B)


      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
     12struct 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 */
     26struct 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/**
     43 * ipa_qmi_setup() - Set up for QMI message exchange
     44 * @ipa:		IPA pointer
     45 *
     46 * This is called at the end of ipa_setup(), to prepare for the exchange
     47 * of QMI messages that perform a "handshake" between the AP and modem.
     48 * When the modem QMI server announces its presence, an AP request message
     49 * supplies operating parameters to be used to the modem, and the modem
     50 * acknowledges receipt of those parameters.  The modem will not touch the
     51 * IPA hardware until this handshake is complete.
     52 *
     53 * If the modem crashes (or shuts down) a new handshake begins when the
     54 * modem's QMI server is started again.
     55 */
     56int ipa_qmi_setup(struct ipa *ipa);
     57
     58/**
     59 * ipa_qmi_teardown() - Tear down IPA QMI handles
     60 * @ipa:		IPA pointer
     61 */
     62void ipa_qmi_teardown(struct ipa *ipa);
     63
     64#endif /* !_IPA_QMI_H_ */