mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 14:19:09 -04:00
Merge "msm: ipa: Clear IEOB for stopped channels with MSI IRQ"
This commit is contained in:
commit
d99ca844e1
1 changed files with 10 additions and 0 deletions
|
|
@ -3213,6 +3213,7 @@ int gsi_stop_channel(unsigned long chan_hdl)
|
|||
int res;
|
||||
uint32_t val;
|
||||
struct gsi_chan_ctx *ctx;
|
||||
unsigned long flags;
|
||||
|
||||
if (!gsi_ctx) {
|
||||
pr_err("%s:%d gsi context not allocated\n", __func__, __LINE__);
|
||||
|
|
@ -3279,6 +3280,15 @@ int gsi_stop_channel(unsigned long chan_hdl)
|
|||
goto free_lock;
|
||||
}
|
||||
|
||||
/* If channel is stopped succesfully and has an event with IRQ type MSI
|
||||
- clear IEOB */
|
||||
if (ctx->evtr && ctx->evtr->props.intr == GSI_INTR_MSI) {
|
||||
spin_lock_irqsave(&ctx->evtr->ring.slock, flags);
|
||||
gsi_writel(1 << ctx->evtr->id, gsi_ctx->base +
|
||||
GSI_EE_n_CNTXT_SRC_IEOB_IRQ_CLR_OFFS(gsi_ctx->per.ee));
|
||||
spin_unlock_irqrestore(&ctx->evtr->ring.slock, flags);
|
||||
}
|
||||
|
||||
res = GSI_STATUS_SUCCESS;
|
||||
|
||||
free_lock:
|
||||
|
|
|
|||
Loading…
Reference in a new issue