1/* SPDX-License-Identifier: GPL-2.0 */ 2 3/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4 * Copyright (C) 2019-2020 Linaro Ltd. 5 */ 6#ifndef _IPA_SMP2P_H_ 7#define _IPA_SMP2P_H_ 8 9#include <linux/types.h> 10 11struct ipa; 12 13/** 14 * ipa_smp2p_init() - Initialize the IPA SMP2P subsystem 15 * @ipa: IPA pointer 16 * @modem_init: Whether the modem is responsible for GSI initialization 17 * 18 * Return: 0 if successful, or a negative error code 19 * 20 */ 21int ipa_smp2p_init(struct ipa *ipa, bool modem_init); 22 23/** 24 * ipa_smp2p_exit() - Inverse of ipa_smp2p_init() 25 * @ipa: IPA pointer 26 */ 27void ipa_smp2p_exit(struct ipa *ipa); 28 29/** 30 * ipa_smp2p_disable() - Prevent "ipa-setup-ready" interrupt handling 31 * @IPA: IPA pointer 32 * 33 * Prevent handling of the "setup ready" interrupt from the modem. 34 * This is used before initiating shutdown of the driver. 35 */ 36void ipa_smp2p_disable(struct ipa *ipa); 37 38/** 39 * ipa_smp2p_notify_reset() - Reset modem notification state 40 * @ipa: IPA pointer 41 * 42 * If the modem crashes it queries the IPA clock state. In cleaning 43 * up after such a crash this is used to reset some state maintained 44 * for managing this notification. 45 */ 46void ipa_smp2p_notify_reset(struct ipa *ipa); 47 48#endif /* _IPA_SMP2P_H_ */ 49