Lines Matching refs:ipa

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