Lines Matching full:ipa

17 #include "ipa.h"
40 * struct ipa_priv - IPA network device private data
41 * @ipa: IPA pointer
45 struct ipa *ipa; member
53 struct ipa *ipa = priv->ipa; in ipa_open() local
57 dev = &ipa->pdev->dev; in ipa_open()
62 ret = ipa_endpoint_enable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_open()
66 ret = ipa_endpoint_enable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_open()
78 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_open()
89 struct ipa *ipa = priv->ipa; in ipa_stop() local
93 dev = &ipa->pdev->dev; in ipa_stop()
100 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_stop()
101 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_stop()
123 struct ipa *ipa = priv->ipa; in ipa_start_xmit() local
131 endpoint = ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]; in ipa_start_xmit()
136 dev = &ipa->pdev->dev; in ipa_start_xmit()
141 ipa_power_modem_queue_active(ipa); in ipa_start_xmit()
150 ipa_power_modem_queue_stop(ipa); in ipa_start_xmit()
157 ipa_power_modem_queue_active(ipa); in ipa_start_xmit()
237 struct ipa *ipa = priv->ipa; in ipa_modem_suspend() local
242 ipa_endpoint_suspend_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_modem_suspend()
243 ipa_endpoint_suspend_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_modem_suspend()
261 ipa_power_modem_queue_wake(priv->ipa); in ipa_modem_wake_queue_work()
272 struct ipa *ipa = priv->ipa; in ipa_modem_resume() local
277 ipa_endpoint_resume_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_modem_resume()
278 ipa_endpoint_resume_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_modem_resume()
284 int ipa_modem_start(struct ipa *ipa) in ipa_modem_start() argument
292 state = atomic_cmpxchg(&ipa->modem_state, IPA_MODEM_STATE_STOPPED, in ipa_modem_start()
306 SET_NETDEV_DEV(netdev, &ipa->pdev->dev); in ipa_modem_start()
308 priv->ipa = ipa; in ipa_modem_start()
310 ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = netdev; in ipa_modem_start()
311 ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = netdev; in ipa_modem_start()
312 ipa->modem_netdev = netdev; in ipa_modem_start()
316 ipa->modem_netdev = NULL; in ipa_modem_start()
317 ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = NULL; in ipa_modem_start()
318 ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = NULL; in ipa_modem_start()
324 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_STOPPED); in ipa_modem_start()
326 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_RUNNING); in ipa_modem_start()
332 int ipa_modem_stop(struct ipa *ipa) in ipa_modem_stop() argument
334 struct net_device *netdev = ipa->modem_netdev; in ipa_modem_stop()
338 state = atomic_cmpxchg(&ipa->modem_state, IPA_MODEM_STATE_RUNNING, in ipa_modem_stop()
358 ipa->modem_netdev = NULL; in ipa_modem_stop()
359 ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = NULL; in ipa_modem_stop()
360 ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = NULL; in ipa_modem_stop()
364 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_STOPPED); in ipa_modem_stop()
371 static void ipa_modem_crashed(struct ipa *ipa) in ipa_modem_crashed() argument
373 struct device *dev = &ipa->pdev->dev; in ipa_modem_crashed()
377 ipa_smp2p_irq_disable_setup(ipa); in ipa_modem_crashed()
385 ipa_endpoint_modem_pause_all(ipa, true); in ipa_modem_crashed()
387 ipa_endpoint_modem_hol_block_clear_all(ipa); in ipa_modem_crashed()
389 ipa_table_reset(ipa, true); in ipa_modem_crashed()
391 ret = ipa_table_hash_flush(ipa); in ipa_modem_crashed()
395 ret = ipa_endpoint_modem_exception_reset_all(ipa); in ipa_modem_crashed()
399 ipa_endpoint_modem_pause_all(ipa, false); in ipa_modem_crashed()
401 ret = ipa_modem_stop(ipa); in ipa_modem_crashed()
406 ret = ipa_mem_zero_modem(ipa); in ipa_modem_crashed()
418 struct ipa *ipa = container_of(nb, struct ipa, nb); in ipa_modem_notify() local
420 struct device *dev = &ipa->pdev->dev; in ipa_modem_notify()
425 ipa_uc_power(ipa); in ipa_modem_notify()
426 ipa_smp2p_notify_reset(ipa); in ipa_modem_notify()
436 if (ipa->setup_complete) in ipa_modem_notify()
437 ipa_modem_crashed(ipa); in ipa_modem_notify()
452 int ipa_modem_config(struct ipa *ipa) in ipa_modem_config() argument
456 ipa->nb.notifier_call = ipa_modem_notify; in ipa_modem_config()
458 notifier = qcom_register_ssr_notifier("mpss", &ipa->nb); in ipa_modem_config()
462 ipa->notifier = notifier; in ipa_modem_config()
467 void ipa_modem_deconfig(struct ipa *ipa) in ipa_modem_deconfig() argument
469 struct device *dev = &ipa->pdev->dev; in ipa_modem_deconfig()
472 ret = qcom_unregister_ssr_notifier(ipa->notifier, &ipa->nb); in ipa_modem_deconfig()
476 ipa->notifier = NULL; in ipa_modem_deconfig()
477 memset(&ipa->nb, 0, sizeof(ipa->nb)); in ipa_modem_deconfig()