Merge "msm: ipa3: Adding chnages to update event RP from DDR"

This commit is contained in:
qctecmdr 2021-05-05 06:28:09 -07:00 • committed by Gerrit - the friendly Code Review server
commit 64b8aeed58

View file

@ -3652,6 +3652,7 @@ EXPORT_SYMBOL(gsi_query_channel_info);
int gsi_is_channel_empty(unsigned long chan_hdl, bool *is_empty)
{
struct gsi_chan_ctx *ctx;
struct gsi_evt_ctx *ev_ctx;
spinlock_t *slock;
unsigned long flags;
uint64_t rp;
@ -3687,8 +3688,11 @@ int gsi_is_channel_empty(unsigned long chan_hdl, bool *is_empty)
spin_lock_irqsave(slock, flags);
if (ctx->props.dir == GSI_CHAN_DIR_FROM_GSI && ctx->evtr) {
rp = gsi_readl(gsi_ctx->base +
GSI_EE_n_EV_CH_k_CNTXT_4_OFFS(ctx->evtr->id, ee));
ev_ctx = &gsi_ctx->evtr[ctx->evtr->id];
/* Read the event ring rp from DDR to avoid mismatch */
rp = ev_ctx->props.gsi_read_event_ring_rp(&ev_ctx->props,
ev_ctx->id, ee);
rp |= ctx->evtr->ring.rp & 0xFFFFFFFF00000000;
ctx->evtr->ring.rp = rp;