slimbus: Use appropriate Pipe Number Offset Mask
Pipe Number Offset field for BAM Pipes to be used by Slimbus is configured
in Slimbus NGD Status register from bit field 2 to bit field 9. Currently
the mask is taking only the bit fields 2 to 7.
Update the Pipe Number Offset Mask to include the bit fields 2 to 9.
CRs-Fixed: 2009626
Change-Id: I727330b42c49cc788b8bfd090ad94eb0587bd119
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
diff --git a/drivers/slimbus/slim-msm.c b/drivers/slimbus/slim-msm.c
index b426a2c..e7d3381 100644
--- a/drivers/slimbus/slim-msm.c
+++ b/drivers/slimbus/slim-msm.c
@@ -18,6 +18,9 @@
#include <linux/gcd.h>
#include "slim-msm.h"
+/* Pipe Number Offset Mask */
+#define P_OFF_MASK 0x3FC
+
int msm_slim_rx_enqueue(struct msm_slim_ctrl *dev, u32 *buf, u8 len)
{
spin_lock(&dev->rx_lock);
@@ -899,7 +902,7 @@
}
/* Get the pipe indices for the message queues */
- pipe_offset = (readl_relaxed(dev->base + pipe_reg) & 0xfc) >> 2;
+ pipe_offset = (readl_relaxed(dev->base + pipe_reg) & P_OFF_MASK) >> 2;
dev_dbg(dev->dev, "Message queue pipe offset %d\n", pipe_offset);
config->mode = SPS_MODE_SRC;
@@ -959,7 +962,7 @@
}
/* Get the pipe indices for the message queues */
- pipe_offset = (readl_relaxed(dev->base + pipe_reg) & 0xfc) >> 2;
+ pipe_offset = (readl_relaxed(dev->base + pipe_reg) & P_OFF_MASK) >> 2;
pipe_offset += 1;
dev_dbg(dev->dev, "TX Message queue pipe offset %d\n", pipe_offset);