Lines Matching full:ipa

18 #include "ipa.h"
38 * struct ipa_priv - IPA network device private data
39 * @ipa: IPA pointer
45 struct ipa *ipa; member
55 struct ipa *ipa = priv->ipa; in ipa_open() local
59 dev = ipa->dev; in ipa_open()
91 struct ipa *ipa = priv->ipa; in ipa_stop() local
95 dev = ipa->dev; in ipa_stop()
128 struct ipa *ipa = priv->ipa; in ipa_start_xmit() local
136 endpoint = ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]; in ipa_start_xmit()
159 dev = ipa->dev; in ipa_start_xmit()
301 int ipa_modem_start(struct ipa *ipa) in ipa_modem_start() argument
309 state = atomic_cmpxchg(&ipa->modem_state, IPA_MODEM_STATE_STOPPED, in ipa_modem_start()
323 SET_NETDEV_DEV(netdev, ipa->dev); in ipa_modem_start()
325 priv->ipa = ipa; in ipa_modem_start()
326 priv->tx = ipa->name_map[IPA_ENDPOINT_AP_MODEM_TX]; in ipa_modem_start()
327 priv->rx = ipa->name_map[IPA_ENDPOINT_AP_MODEM_RX]; in ipa_modem_start()
333 ipa->modem_netdev = netdev; in ipa_modem_start()
337 ipa->modem_netdev = NULL; in ipa_modem_start()
346 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_STOPPED); in ipa_modem_start()
348 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_RUNNING); in ipa_modem_start()
354 int ipa_modem_stop(struct ipa *ipa) in ipa_modem_stop() argument
356 struct net_device *netdev = ipa->modem_netdev; in ipa_modem_stop()
360 state = atomic_cmpxchg(&ipa->modem_state, IPA_MODEM_STATE_RUNNING, in ipa_modem_stop()
381 ipa->modem_netdev = NULL; in ipa_modem_stop()
388 atomic_set(&ipa->modem_state, IPA_MODEM_STATE_STOPPED); in ipa_modem_stop()
395 static void ipa_modem_crashed(struct ipa *ipa) in ipa_modem_crashed() argument
397 struct device *dev = ipa->dev; in ipa_modem_crashed()
401 ipa_smp2p_irq_disable_setup(ipa); in ipa_modem_crashed()
409 ipa_endpoint_modem_pause_all(ipa, true); in ipa_modem_crashed()
411 ipa_endpoint_modem_hol_block_clear_all(ipa); in ipa_modem_crashed()
413 ipa_table_reset(ipa, true); in ipa_modem_crashed()
415 ret = ipa_table_hash_flush(ipa); in ipa_modem_crashed()
419 ret = ipa_endpoint_modem_exception_reset_all(ipa); in ipa_modem_crashed()
423 ipa_endpoint_modem_pause_all(ipa, false); in ipa_modem_crashed()
425 ret = ipa_modem_stop(ipa); in ipa_modem_crashed()
430 ret = ipa_mem_zero_modem(ipa); in ipa_modem_crashed()
442 struct ipa *ipa = container_of(nb, struct ipa, nb); in ipa_modem_notify() local
444 struct device *dev = ipa->dev; in ipa_modem_notify()
449 ipa_uc_power(ipa); in ipa_modem_notify()
450 ipa_smp2p_notify_reset(ipa); in ipa_modem_notify()
460 if (ipa->setup_complete) in ipa_modem_notify()
461 ipa_modem_crashed(ipa); in ipa_modem_notify()
476 int ipa_modem_config(struct ipa *ipa) in ipa_modem_config() argument
480 ipa->nb.notifier_call = ipa_modem_notify; in ipa_modem_config()
482 notifier = qcom_register_ssr_notifier("mpss", &ipa->nb); in ipa_modem_config()
486 ipa->notifier = notifier; in ipa_modem_config()
491 void ipa_modem_deconfig(struct ipa *ipa) in ipa_modem_deconfig() argument
493 struct device *dev = ipa->dev; in ipa_modem_deconfig()
496 ret = qcom_unregister_ssr_notifier(ipa->notifier, &ipa->nb); in ipa_modem_deconfig()
500 ipa->notifier = NULL; in ipa_modem_deconfig()
501 memset(&ipa->nb, 0, sizeof(ipa->nb)); in ipa_modem_deconfig()