Lines Matching full:ipa
14 #include "ipa.h"
34 /** struct ipa_priv - IPA network device private data */
36 struct ipa *ipa; member
43 struct ipa *ipa = priv->ipa; in ipa_open() local
46 ret = ipa_endpoint_enable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_open()
49 ret = ipa_endpoint_enable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_open()
58 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_open()
67 struct ipa *ipa = priv->ipa; in ipa_stop() local
71 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_stop()
72 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_stop()
90 struct ipa *ipa = priv->ipa; in ipa_start_xmit() local
97 endpoint = ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]; in ipa_start_xmit()
170 struct ipa *ipa = priv->ipa; in ipa_modem_suspend() local
174 ipa_endpoint_suspend_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_modem_suspend()
175 ipa_endpoint_suspend_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_modem_suspend()
186 struct ipa *ipa = priv->ipa; in ipa_modem_resume() local
188 ipa_endpoint_resume_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_modem_resume()
189 ipa_endpoint_resume_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_modem_resume()
194 int ipa_modem_start(struct ipa *ipa) in ipa_modem_start() argument
202 state = atomic_cmpxchg(&ipa->modem_state, IPA_MODEM_STATE_STOPPED, in ipa_modem_start()
216 ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = netdev; in ipa_modem_start()
217 ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = netdev; in ipa_modem_start()
219 SET_NETDEV_DEV(netdev, &ipa->pdev->dev); in ipa_modem_start()
221 priv->ipa = ipa; in ipa_modem_start()
227 ipa->modem_netdev = netdev; in ipa_modem_start()
231 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_STOPPED); in ipa_modem_start()
233 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_RUNNING); in ipa_modem_start()
239 int ipa_modem_stop(struct ipa *ipa) in ipa_modem_stop() argument
241 struct net_device *netdev = ipa->modem_netdev; in ipa_modem_stop()
246 state = atomic_cmpxchg(&ipa->modem_state, IPA_MODEM_STATE_RUNNING, in ipa_modem_stop()
258 ipa_smp2p_disable(ipa); in ipa_modem_stop()
266 ipa->modem_netdev = NULL; in ipa_modem_stop()
275 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_RUNNING); in ipa_modem_stop()
277 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_STOPPED); in ipa_modem_stop()
284 static void ipa_modem_crashed(struct ipa *ipa) in ipa_modem_crashed() argument
286 struct device *dev = &ipa->pdev->dev; in ipa_modem_crashed()
289 ipa_endpoint_modem_pause_all(ipa, true); in ipa_modem_crashed()
291 ipa_endpoint_modem_hol_block_clear_all(ipa); in ipa_modem_crashed()
293 ipa_table_reset(ipa, true); in ipa_modem_crashed()
295 ret = ipa_table_hash_flush(ipa); in ipa_modem_crashed()
299 ret = ipa_endpoint_modem_exception_reset_all(ipa); in ipa_modem_crashed()
303 ipa_endpoint_modem_pause_all(ipa, false); in ipa_modem_crashed()
305 ret = ipa_modem_stop(ipa); in ipa_modem_crashed()
310 ret = ipa_mem_zero_modem(ipa); in ipa_modem_crashed()
318 struct ipa *ipa = container_of(nb, struct ipa, nb); in ipa_modem_notify() local
320 struct device *dev = &ipa->pdev->dev; in ipa_modem_notify()
325 ipa_smp2p_notify_reset(ipa); in ipa_modem_notify()
335 if (ipa->setup_complete) in ipa_modem_notify()
336 ipa_modem_crashed(ipa); in ipa_modem_notify()
351 int ipa_modem_init(struct ipa *ipa, bool modem_init) in ipa_modem_init() argument
353 return ipa_smp2p_init(ipa, modem_init); in ipa_modem_init()
356 void ipa_modem_exit(struct ipa *ipa) in ipa_modem_exit() argument
358 ipa_smp2p_exit(ipa); in ipa_modem_exit()
361 int ipa_modem_config(struct ipa *ipa) in ipa_modem_config() argument
365 ipa->nb.notifier_call = ipa_modem_notify; in ipa_modem_config()
367 notifier = qcom_register_ssr_notifier("mpss", &ipa->nb); in ipa_modem_config()
371 ipa->notifier = notifier; in ipa_modem_config()
376 void ipa_modem_deconfig(struct ipa *ipa) in ipa_modem_deconfig() argument
378 struct device *dev = &ipa->pdev->dev; in ipa_modem_deconfig()
381 ret = qcom_unregister_ssr_notifier(ipa->notifier, &ipa->nb); in ipa_modem_deconfig()
385 ipa->notifier = NULL; in ipa_modem_deconfig()
386 memset(&ipa->nb, 0, sizeof(ipa->nb)); in ipa_modem_deconfig()
389 int ipa_modem_setup(struct ipa *ipa) in ipa_modem_setup() argument
391 return ipa_qmi_setup(ipa); in ipa_modem_setup()
394 void ipa_modem_teardown(struct ipa *ipa) in ipa_modem_teardown() argument
396 ipa_qmi_teardown(ipa); in ipa_modem_teardown()