mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-13 16:16:15 -04:00
Merge "msm: ipa3: Fix to hold the clock until replenish the descriptors"
This commit is contained in:
commit
1768daa512
1 changed files with 9 additions and 2 deletions
|
|
@ -2015,7 +2015,6 @@ static void ipa3_replenish_rx_page_recycle(struct ipa3_sys_context *sys)
|
|||
rx_pkt = sys->repl->cache[curr_wq];
|
||||
curr_wq = (++curr_wq == sys->repl->capacity) ?
|
||||
0 : curr_wq;
|
||||
atomic_set(&sys->repl->head_idx, curr_wq);
|
||||
}
|
||||
|
||||
dma_sync_single_for_device(ipa3_ctx->pdev,
|
||||
|
|
@ -2053,6 +2052,7 @@ static void ipa3_replenish_rx_page_recycle(struct ipa3_sys_context *sys)
|
|||
if (ret == GSI_STATUS_SUCCESS) {
|
||||
/* ensure write is done before setting head index */
|
||||
mb();
|
||||
atomic_set(&sys->repl->head_idx, curr_wq);
|
||||
atomic_set(&sys->page_recycle_repl->head_idx, curr);
|
||||
sys->len = rx_len_cached;
|
||||
} else {
|
||||
|
|
@ -4972,13 +4972,20 @@ start_poll:
|
|||
/* call repl_hdlr before napi_reschedule / napi_complete */
|
||||
if (cnt)
|
||||
ep->sys->repl_hdlr(ep->sys);
|
||||
if (cnt < weight) {
|
||||
/* When not able to replenish enough descriptors pipe wait
|
||||
* until minimum number descripotrs to replish.
|
||||
*/
|
||||
if (cnt < weight && ep->sys->len > IPA_DEFAULT_SYS_YELLOW_WM) {
|
||||
napi_complete(ep->sys->napi_obj);
|
||||
ret = ipa3_rx_switch_to_intr_mode(ep->sys);
|
||||
if (ret == -GSI_STATUS_PENDING_IRQ &&
|
||||
napi_reschedule(ep->sys->napi_obj))
|
||||
goto start_poll;
|
||||
ipa_pm_deferred_deactivate(ep->sys->pm_hdl);
|
||||
} else {
|
||||
cnt = weight;
|
||||
IPADBG("Client = %d not replenished free descripotrs\n",
|
||||
ep->client);
|
||||
}
|
||||
return cnt;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue