Lines Matching full:ipa

15 #include "ipa.h"
38 * struct ipa_priv - IPA network device private data
39 * @ipa: IPA pointer
43 struct ipa *ipa; member
51 struct ipa *ipa = priv->ipa; in ipa_open() local
55 dev = &ipa->pdev->dev; in ipa_open()
60 ret = ipa_endpoint_enable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_open()
64 ret = ipa_endpoint_enable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_open()
76 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_open()
87 struct ipa *ipa = priv->ipa; in ipa_stop() local
91 dev = &ipa->pdev->dev; in ipa_stop()
98 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_stop()
99 ipa_endpoint_disable_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_stop()
121 struct ipa *ipa = priv->ipa; in ipa_start_xmit() local
129 endpoint = ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]; in ipa_start_xmit()
134 dev = &ipa->pdev->dev; in ipa_start_xmit()
139 ipa_power_modem_queue_active(ipa); in ipa_start_xmit()
148 ipa_power_modem_queue_stop(ipa); in ipa_start_xmit()
155 ipa_power_modem_queue_active(ipa); in ipa_start_xmit()
230 struct ipa *ipa = priv->ipa; in ipa_modem_suspend() local
235 ipa_endpoint_suspend_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_modem_suspend()
236 ipa_endpoint_suspend_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_modem_suspend()
254 ipa_power_modem_queue_wake(priv->ipa); in ipa_modem_wake_queue_work()
265 struct ipa *ipa = priv->ipa; in ipa_modem_resume() local
270 ipa_endpoint_resume_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]); in ipa_modem_resume()
271 ipa_endpoint_resume_one(ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]); in ipa_modem_resume()
277 int ipa_modem_start(struct ipa *ipa) in ipa_modem_start() argument
285 state = atomic_cmpxchg(&ipa->modem_state, IPA_MODEM_STATE_STOPPED, in ipa_modem_start()
299 SET_NETDEV_DEV(netdev, &ipa->pdev->dev); in ipa_modem_start()
301 priv->ipa = ipa; in ipa_modem_start()
303 ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = netdev; in ipa_modem_start()
304 ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = netdev; in ipa_modem_start()
305 ipa->modem_netdev = netdev; in ipa_modem_start()
309 ipa->modem_netdev = NULL; in ipa_modem_start()
310 ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = NULL; in ipa_modem_start()
311 ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = NULL; in ipa_modem_start()
317 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_STOPPED); in ipa_modem_start()
319 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_RUNNING); in ipa_modem_start()
325 int ipa_modem_stop(struct ipa *ipa) in ipa_modem_stop() argument
327 struct net_device *netdev = ipa->modem_netdev; in ipa_modem_stop()
331 state = atomic_cmpxchg(&ipa->modem_state, IPA_MODEM_STATE_RUNNING, in ipa_modem_stop()
343 ipa_smp2p_disable(ipa); in ipa_modem_stop()
354 ipa->modem_netdev = NULL; in ipa_modem_stop()
355 ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]->netdev = NULL; in ipa_modem_stop()
356 ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]->netdev = NULL; in ipa_modem_stop()
360 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_STOPPED); in ipa_modem_stop()
367 static void ipa_modem_crashed(struct ipa *ipa) in ipa_modem_crashed() argument
369 struct device *dev = &ipa->pdev->dev; in ipa_modem_crashed()
378 ipa_endpoint_modem_pause_all(ipa, true); in ipa_modem_crashed()
380 ipa_endpoint_modem_hol_block_clear_all(ipa); in ipa_modem_crashed()
382 ipa_table_reset(ipa, true); in ipa_modem_crashed()
384 ret = ipa_table_hash_flush(ipa); in ipa_modem_crashed()
388 ret = ipa_endpoint_modem_exception_reset_all(ipa); in ipa_modem_crashed()
392 ipa_endpoint_modem_pause_all(ipa, false); in ipa_modem_crashed()
394 ret = ipa_modem_stop(ipa); in ipa_modem_crashed()
399 ret = ipa_mem_zero_modem(ipa); in ipa_modem_crashed()
411 struct ipa *ipa = container_of(nb, struct ipa, nb); in ipa_modem_notify() local
413 struct device *dev = &ipa->pdev->dev; in ipa_modem_notify()
418 ipa_uc_power(ipa); in ipa_modem_notify()
419 ipa_smp2p_notify_reset(ipa); in ipa_modem_notify()
429 if (ipa->setup_complete) in ipa_modem_notify()
430 ipa_modem_crashed(ipa); in ipa_modem_notify()
445 int ipa_modem_init(struct ipa *ipa, bool modem_init) in ipa_modem_init() argument
447 return ipa_smp2p_init(ipa, modem_init); in ipa_modem_init()
450 void ipa_modem_exit(struct ipa *ipa) in ipa_modem_exit() argument
452 ipa_smp2p_exit(ipa); in ipa_modem_exit()
455 int ipa_modem_config(struct ipa *ipa) in ipa_modem_config() argument
459 ipa->nb.notifier_call = ipa_modem_notify; in ipa_modem_config()
461 notifier = qcom_register_ssr_notifier("mpss", &ipa->nb); in ipa_modem_config()
465 ipa->notifier = notifier; in ipa_modem_config()
470 void ipa_modem_deconfig(struct ipa *ipa) in ipa_modem_deconfig() argument
472 struct device *dev = &ipa->pdev->dev; in ipa_modem_deconfig()
475 ret = qcom_unregister_ssr_notifier(ipa->notifier, &ipa->nb); in ipa_modem_deconfig()
479 ipa->notifier = NULL; in ipa_modem_deconfig()
480 memset(&ipa->nb, 0, sizeof(ipa->nb)); in ipa_modem_deconfig()