From e091b01ac44e70d450a8d050855b5f3f0f510695 Mon Sep 17 00:00:00 2001 From: Cheng Zeng Date: Wed, 1 Dec 2021 14:52:56 +0800 Subject: [PATCH] msm: gsi: Read 64-bit ring RP value from registers The DMA address allocated may be in 64-bit address range if dma mask is set to 64-bit, the MSB register value is required. Signed-off-by: Cheng Zeng --- drivers/platform/msm/gsi/gsi.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/platform/msm/gsi/gsi.c b/drivers/platform/msm/gsi/gsi.c index 6663e79dc528..b70eed7d647c 100644 --- a/drivers/platform/msm/gsi/gsi.c +++ b/drivers/platform/msm/gsi/gsi.c @@ -1752,7 +1752,14 @@ static inline uint64_t gsi_read_event_ring_rp_ddr(struct gsi_evt_ring_props* pro static inline uint64_t gsi_read_event_ring_rp_reg(struct gsi_evt_ring_props* props, uint8_t id, int ee) { - return gsi_readl(gsi_ctx->base + GSI_EE_n_EV_CH_k_CNTXT_4_OFFS(id, ee)); + uint64_t rp; + + rp = gsi_readl(gsi_ctx->base + + GSI_EE_n_EV_CH_k_CNTXT_4_OFFS(id, ee)); + rp |= ((uint64_t)gsi_readl(gsi_ctx->base + + GSI_EE_n_EV_CH_k_CNTXT_5_OFFS(id, ee))) << 32; + + return rp; } int gsi_alloc_evt_ring(struct gsi_evt_ring_props *props, unsigned long dev_hdl,