Loading drivers/platform/msm/ipa/ipa_v2/ipa_dp.c +9 −1 Original line number Diff line number Diff line Loading @@ -815,6 +815,11 @@ static void ipa_rx_switch_to_intr_mode(struct ipa_sys_context *sys) { int ret; if (!sys->ep || !sys->ep->valid) { IPAERR("EP Not Valid, no need to cleanup.\n"); return; } if (!atomic_read(&sys->curr_polling_state)) { IPAERR("already in intr mode\n"); goto fail; Loading Loading @@ -1427,8 +1432,11 @@ int ipa2_teardown_sys_pipe(u32 clnt_hdl) } while (1); } if (IPA_CLIENT_IS_CONS(ep->client)) if (IPA_CLIENT_IS_CONS(ep->client)) { cancel_delayed_work_sync(&ep->sys->replenish_rx_work); cancel_delayed_work_sync(&ep->sys->switch_to_intr_work); } flush_workqueue(ep->sys->wq); sps_disconnect(ep->ep_hdl); dma_free_coherent(ipa_ctx->pdev, ep->connect.desc.size, Loading drivers/platform/msm/ipa/ipa_v2/ipa_qmi_service.c +2 −5 Original line number Diff line number Diff line Loading @@ -46,7 +46,6 @@ static struct workqueue_struct *ipa_clnt_req_workqueue; static struct workqueue_struct *ipa_clnt_resp_workqueue; static void *curr_conn; static bool qmi_modem_init_fin, qmi_indication_fin; static struct work_struct ipa_qmi_service_init_work; static uint32_t ipa_wan_platform; struct ipa_qmi_context *ipa_qmi_ctx; static bool first_time_handshake; Loading Loading @@ -871,7 +870,7 @@ static struct notifier_block ipa_q6_clnt_nb = { .notifier_call = ipa_q6_clnt_svc_event_notify, }; static void ipa_qmi_service_init_worker(struct work_struct *work) static void ipa_qmi_service_init_worker(void) { int rc; Loading Loading @@ -968,9 +967,7 @@ int ipa_qmi_service_init(uint32_t wan_platform_type) atomic_set(&workqueues_stopped, 0); if (0 == atomic_read(&ipa_qmi_initialized)) { INIT_WORK(&ipa_qmi_service_init_work, ipa_qmi_service_init_worker); schedule_work(&ipa_qmi_service_init_work); ipa_qmi_service_init_worker(); } return 0; } Loading Loading
drivers/platform/msm/ipa/ipa_v2/ipa_dp.c +9 −1 Original line number Diff line number Diff line Loading @@ -815,6 +815,11 @@ static void ipa_rx_switch_to_intr_mode(struct ipa_sys_context *sys) { int ret; if (!sys->ep || !sys->ep->valid) { IPAERR("EP Not Valid, no need to cleanup.\n"); return; } if (!atomic_read(&sys->curr_polling_state)) { IPAERR("already in intr mode\n"); goto fail; Loading Loading @@ -1427,8 +1432,11 @@ int ipa2_teardown_sys_pipe(u32 clnt_hdl) } while (1); } if (IPA_CLIENT_IS_CONS(ep->client)) if (IPA_CLIENT_IS_CONS(ep->client)) { cancel_delayed_work_sync(&ep->sys->replenish_rx_work); cancel_delayed_work_sync(&ep->sys->switch_to_intr_work); } flush_workqueue(ep->sys->wq); sps_disconnect(ep->ep_hdl); dma_free_coherent(ipa_ctx->pdev, ep->connect.desc.size, Loading
drivers/platform/msm/ipa/ipa_v2/ipa_qmi_service.c +2 −5 Original line number Diff line number Diff line Loading @@ -46,7 +46,6 @@ static struct workqueue_struct *ipa_clnt_req_workqueue; static struct workqueue_struct *ipa_clnt_resp_workqueue; static void *curr_conn; static bool qmi_modem_init_fin, qmi_indication_fin; static struct work_struct ipa_qmi_service_init_work; static uint32_t ipa_wan_platform; struct ipa_qmi_context *ipa_qmi_ctx; static bool first_time_handshake; Loading Loading @@ -871,7 +870,7 @@ static struct notifier_block ipa_q6_clnt_nb = { .notifier_call = ipa_q6_clnt_svc_event_notify, }; static void ipa_qmi_service_init_worker(struct work_struct *work) static void ipa_qmi_service_init_worker(void) { int rc; Loading Loading @@ -968,9 +967,7 @@ int ipa_qmi_service_init(uint32_t wan_platform_type) atomic_set(&workqueues_stopped, 0); if (0 == atomic_read(&ipa_qmi_initialized)) { INIT_WORK(&ipa_qmi_service_init_work, ipa_qmi_service_init_worker); schedule_work(&ipa_qmi_service_init_work); ipa_qmi_service_init_worker(); } return 0; } Loading