Merge "msm: ipa: enable holb on cons resource fail"

This commit is contained in:
Linux Build Service Account 2015-09-03 22:09:06 -07:00 committed by Gerrit - the friendly Code Review server
commit c842f20d67
2 changed files with 23 additions and 6 deletions

View File

@ -2924,12 +2924,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;
}

View File

@ -1237,11 +1237,13 @@ int ipa_teardown_sys_pipe(u32 clnt_hdl)
if (IPA_CLIENT_IS_CONS(ep->client))
ipa_cleanup_rx(ep->sys);
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 (!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);