Loading drivers/platform/msm/ipa/ipa.c +16 −1 Original line number Diff line number Diff line Loading @@ -2916,12 +2916,27 @@ void ipa_suspend_handler(enum ipa_irq_type interrupt, ((struct ipa_tx_suspend_irq_data *)interrupt_data)->endpoints; u32 bmsk = 1; u32 i = 0; int res; struct ipa_ep_cfg_holb holb_cfg; IPADBG("interrupt=%d, interrupt_data=%u\n", interrupt, suspend_data); memset(&holb_cfg, 0, sizeof(holb_cfg)); holb_cfg.tmr_val = 0; for (i = 0; i < ipa_ctx->ipa_num_pipes; i++) { if ((suspend_data & bmsk) && (ipa_ctx->ep[i].valid)) { resource = ipa_get_rm_resource_from_ep(i); ipa_rm_request_resource_with_timer(resource); res = ipa_rm_request_resource_with_timer(resource); if (res == EPERM && IPA_CLIENT_IS_CONS(ipa_ctx->ep[i].client)) { holb_cfg.en = 1; res = ipa_cfg_ep_holb_by_client( ipa_ctx->ep[i].client, &holb_cfg); if (res) { IPAERR("holb en fail,IPAHW stall\n"); BUG(); } } } bmsk = bmsk << 1; } Loading drivers/platform/msm/ipa/ipa_dp.c +7 −5 Original line number Diff line number Diff line Loading @@ -1238,11 +1238,13 @@ int ipa_teardown_sys_pipe(u32 clnt_hdl) if (IPA_CLIENT_IS_CONS(ep->client)) ipa_cleanup_rx(ep->sys); if (!ep->skip_ep_cfg && IPA_CLIENT_IS_PROD(ep->client)) { if (ipa_ctx->modem_cfg_emb_pipe_flt && ep->client == IPA_CLIENT_APPS_LAN_WAN_PROD) IPADBG("modem cfg emb pipe flt\n"); else ipa_delete_dflt_flt_rules(clnt_hdl); } if (IPA_CLIENT_IS_WLAN_CONS(ep->client)) atomic_dec(&ipa_ctx->wc_memb.active_clnt_cnt); Loading Loading
drivers/platform/msm/ipa/ipa.c +16 −1 Original line number Diff line number Diff line Loading @@ -2916,12 +2916,27 @@ void ipa_suspend_handler(enum ipa_irq_type interrupt, ((struct ipa_tx_suspend_irq_data *)interrupt_data)->endpoints; u32 bmsk = 1; u32 i = 0; int res; struct ipa_ep_cfg_holb holb_cfg; IPADBG("interrupt=%d, interrupt_data=%u\n", interrupt, suspend_data); memset(&holb_cfg, 0, sizeof(holb_cfg)); holb_cfg.tmr_val = 0; for (i = 0; i < ipa_ctx->ipa_num_pipes; i++) { if ((suspend_data & bmsk) && (ipa_ctx->ep[i].valid)) { resource = ipa_get_rm_resource_from_ep(i); ipa_rm_request_resource_with_timer(resource); res = ipa_rm_request_resource_with_timer(resource); if (res == EPERM && IPA_CLIENT_IS_CONS(ipa_ctx->ep[i].client)) { holb_cfg.en = 1; res = ipa_cfg_ep_holb_by_client( ipa_ctx->ep[i].client, &holb_cfg); if (res) { IPAERR("holb en fail,IPAHW stall\n"); BUG(); } } } bmsk = bmsk << 1; } Loading
drivers/platform/msm/ipa/ipa_dp.c +7 −5 Original line number Diff line number Diff line Loading @@ -1238,11 +1238,13 @@ int ipa_teardown_sys_pipe(u32 clnt_hdl) if (IPA_CLIENT_IS_CONS(ep->client)) ipa_cleanup_rx(ep->sys); if (!ep->skip_ep_cfg && IPA_CLIENT_IS_PROD(ep->client)) { if (ipa_ctx->modem_cfg_emb_pipe_flt && ep->client == IPA_CLIENT_APPS_LAN_WAN_PROD) IPADBG("modem cfg emb pipe flt\n"); else ipa_delete_dflt_flt_rules(clnt_hdl); } if (IPA_CLIENT_IS_WLAN_CONS(ep->client)) atomic_dec(&ipa_ctx->wc_memb.active_clnt_cnt); Loading