diff options
author | Vignesh Raghavendra <vigneshr@ti.com> | 2023-06-20 16:22:20 +0530 |
---|---|---|
committer | Praneeth Bajjuri <praneeth@ti.com> | 2023-06-20 15:31:14 -0500 |
commit | 4a991ce14e7c2547ceda90e88be84b2426dc24c3 (patch) | |
tree | 280369580f35e7f45c38b0ebfcc3bce3ac0d25e1 /drivers | |
parent | 0175822c9a4b1de299a7171022870096e0cf8918 (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 <vigneshr@ti.com>
Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/soc/ti/k3-navss-ringacc-u-boot.c | 9 |
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 f958239c2a..5d650b9de7 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(15, 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) |