Lines Matching refs:ipa

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