Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8aa0d102 authored by Cheng Zeng's avatar Cheng Zeng
Browse files

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: default avatarCheng Zeng <quic_chenzeng@quicinc.com>
parent 1024d06f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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(