1530f9216SAlex Elder /* SPDX-License-Identifier: GPL-2.0 */ 2530f9216SAlex Elder 3530f9216SAlex Elder /* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved. 4*a4388da5SAlex Elder * Copyright (C) 2019-2022 Linaro Ltd. 5530f9216SAlex Elder */ 6530f9216SAlex Elder #ifndef _IPA_SMP2P_H_ 7530f9216SAlex Elder #define _IPA_SMP2P_H_ 8530f9216SAlex Elder 9530f9216SAlex Elder #include <linux/types.h> 10530f9216SAlex Elder 11530f9216SAlex Elder struct ipa; 12530f9216SAlex Elder 13530f9216SAlex Elder /** 14530f9216SAlex Elder * ipa_smp2p_init() - Initialize the IPA SMP2P subsystem 15530f9216SAlex Elder * @ipa: IPA pointer 16530f9216SAlex Elder * @modem_init: Whether the modem is responsible for GSI initialization 17530f9216SAlex Elder * 18e3eea08eSAlex Elder * Return: 0 if successful, or a negative error code 19530f9216SAlex Elder * 20530f9216SAlex Elder */ 21530f9216SAlex Elder int ipa_smp2p_init(struct ipa *ipa, bool modem_init); 22530f9216SAlex Elder 23530f9216SAlex Elder /** 24530f9216SAlex Elder * ipa_smp2p_exit() - Inverse of ipa_smp2p_init() 25530f9216SAlex Elder * @ipa: IPA pointer 26530f9216SAlex Elder */ 27530f9216SAlex Elder void ipa_smp2p_exit(struct ipa *ipa); 28530f9216SAlex Elder 29530f9216SAlex Elder /** 308afc7e47SAlex Elder * ipa_smp2p_irq_disable_setup() - Disable the "setup ready" interrupt 31862d3f2cSAlex Elder * @ipa: IPA pointer 32530f9216SAlex Elder * 338afc7e47SAlex Elder * Disable the "ipa-setup-ready" interrupt from the modem. 34530f9216SAlex Elder */ 358afc7e47SAlex Elder void ipa_smp2p_irq_disable_setup(struct ipa *ipa); 36530f9216SAlex Elder 37530f9216SAlex Elder /** 38530f9216SAlex Elder * ipa_smp2p_notify_reset() - Reset modem notification state 39530f9216SAlex Elder * @ipa: IPA pointer 40530f9216SAlex Elder * 417aa0e8b8SAlex Elder * If the modem crashes it queries the IPA power state. In cleaning 42530f9216SAlex Elder * up after such a crash this is used to reset some state maintained 43530f9216SAlex Elder * for managing this notification. 44530f9216SAlex Elder */ 45530f9216SAlex Elder void ipa_smp2p_notify_reset(struct ipa *ipa); 46530f9216SAlex Elder 47530f9216SAlex Elder #endif /* _IPA_SMP2P_H_ */ 48