summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVignesh Raghavendra <[email protected]>2024-08-26 15:55:08 +0530
committerTom Rini <[email protected]>2024-08-30 13:57:39 -0600
commit963c13d13376e5bb2103556bc61160db12bc31e3 (patch)
tree8ca9e4c9d7f3c9a7f13e7f64cdb028d3403bed29
parent40710d3388d9998814faaf13da8bfd5220ce56d5 (diff)
soc: ti: k3-navss-ringacc: Fix reset ring API
Expectation of k3_ringacc_ring_reset_raw() is to reset the ring to requested size and not to 0. Fix this. Signed-off-by: Vignesh Raghavendra <[email protected]> Signed-off-by: Siddharth Vadapalli <[email protected]> Signed-off-by: Chintan Vankar <[email protected]> Reviewed-by: Alexander Sverdlin <[email protected]>
-rw-r--r--drivers/soc/ti/k3-navss-ringacc-u-boot.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/soc/ti/k3-navss-ringacc-u-boot.c b/drivers/soc/ti/k3-navss-ringacc-u-boot.c
index f958239c2af..2799f214c77 100644
--- a/drivers/soc/ti/k3-navss-ringacc-u-boot.c
+++ b/drivers/soc/ti/k3-navss-ringacc-u-boot.c
@@ -25,9 +25,16 @@ struct k3_nav_ring_cfg_regs {
#define KNAV_RINGACC_CFG_RING_SIZE_ELSIZE_MASK GENMASK(26, 24)
#define KNAV_RINGACC_CFG_RING_SIZE_ELSIZE_SHIFT (24)
+#define KNAV_RINGACC_CFG_RING_SIZE_MASK GENMASK(19, 0)
+
static void k3_ringacc_ring_reset_raw(struct k3_nav_ring *ring)
{
- writel(0, &ring->cfg->size);
+ u32 reg;
+
+ reg = readl(&ring->cfg->size);
+ reg &= ~KNAV_RINGACC_CFG_RING_SIZE_MASK;
+ reg |= ring->size;
+ writel(reg, &ring->cfg->size);
}
static void k3_ringacc_ring_reconfig_qmode_raw(struct k3_nav_ring *ring, enum k3_nav_ring_mode mode)