msm: gsi: Fix the incorrect evt ring pointer

The pointer should be event ring pointer, not transfer
ring pointer, it has chance to get wrong upper 32 bits
when smmu is disabled.

Signed-off-by: Cheng Zeng <quic_chenzeng@quicinc.com>
This commit is contained in:
Cheng Zeng 2022-03-24 16:09:28 +08:00
commit 8aa0d102d8

View file

@ -4057,7 +4057,7 @@ int gsi_poll_n_channel(unsigned long chan_hdl,
/* update rp to see of we have anything new to process */
rp = ctx->evtr->props.gsi_read_event_ring_rp(
&ctx->evtr->props, ctx->evtr->id, ee);
rp |= ctx->ring.rp & 0xFFFFFFFF00000000ULL;
rp |= ctx->evtr->ring.rp & 0xFFFFFFFF00000000ULL;
ctx->evtr->ring.rp = rp;
/* read gsi event ring rp again if last read is empty */
@ -4069,7 +4069,7 @@ int gsi_poll_n_channel(unsigned long chan_hdl,
__iowmb();
rp = ctx->evtr->props.gsi_read_event_ring_rp(
&ctx->evtr->props, ctx->evtr->id, ee);
rp |= ctx->ring.rp & 0xFFFFFFFF00000000ULL;
rp |= ctx->evtr->ring.rp & 0xFFFFFFFF00000000ULL;
ctx->evtr->ring.rp = rp;
if (rp == ctx->evtr->ring.rp_local) {
spin_unlock_irqrestore(