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>

Change-Id: I8aa0d102d81fb2632ce988fcc8d816e7fed7b5b1
This commit is contained in:
Cheng Zeng
2022-03-31 12:45:18 +08:00
부모 f7f3cc3ca5
커밋 d382527383

파일 보기

@@ -4382,7 +4382,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 & GSI_MSB_MASK;
rp |= ctx->evtr->ring.rp & GSI_MSB_MASK;
ctx->evtr->ring.rp = rp;
/* read gsi event ring rp again if last read is empty */
@@ -4401,7 +4401,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 & GSI_MSB_MASK;
rp |= ctx->evtr->ring.rp & GSI_MSB_MASK;
ctx->evtr->ring.rp = rp;
if (rp == ctx->evtr->ring.rp_local) {
spin_unlock_irqrestore(