ipa_smp2p.h 1.2 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/* SPDX-License-Identifier: GPL-2.0 */

/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
 * Copyright (C) 2019-2020 Linaro Ltd.
 */
#ifndef _IPA_SMP2P_H_
#define _IPA_SMP2P_H_

#include <linux/types.h>

struct ipa;

/**
 * ipa_smp2p_init() - Initialize the IPA SMP2P subsystem
 * @ipa:	IPA pointer
 * @modem_init:	Whether the modem is responsible for GSI initialization
 *
18
 * Return:	0 if successful, or a negative error code
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
 *
 */
int ipa_smp2p_init(struct ipa *ipa, bool modem_init);

/**
 * ipa_smp2p_exit() - Inverse of ipa_smp2p_init()
 * @ipa:	IPA pointer
 */
void ipa_smp2p_exit(struct ipa *ipa);

/**
 * ipa_smp2p_disable() - Prevent "ipa-setup-ready" interrupt handling
 * @IPA:	IPA pointer
 *
 * Prevent handling of the "setup ready" interrupt from the modem.
 * This is used before initiating shutdown of the driver.
 */
void ipa_smp2p_disable(struct ipa *ipa);

/**
 * ipa_smp2p_notify_reset() - Reset modem notification state
 * @ipa:	IPA pointer
 *
 * If the modem crashes it queries the IPA clock state.  In cleaning
 * up after such a crash this is used to reset some state maintained
 * for managing this notification.
 */
void ipa_smp2p_notify_reset(struct ipa *ipa);

#endif /* _IPA_SMP2P_H_ */