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 11 struct 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 */ 21 int 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 */ 27 void ipa_smp2p_exit(struct ipa *ipa); 28 29 /** 30 * ipa_smp2p_irq_disable_setup() - Disable the "setup ready" interrupt 31 * @ipa: IPA pointer 32 * 33 * Disable the "ipa-setup-ready" interrupt from the modem. 34 */ 35 void ipa_smp2p_irq_disable_setup(struct ipa *ipa); 36 37 /** 38 * ipa_smp2p_notify_reset() - Reset modem notification state 39 * @ipa: IPA pointer 40 * 41 * If the modem crashes it queries the IPA power state. In cleaning 42 * up after such a crash this is used to reset some state maintained 43 * for managing this notification. 44 */ 45 void ipa_smp2p_notify_reset(struct ipa *ipa); 46 47 #endif /* _IPA_SMP2P_H_ */ 48