From 75acccd29cbee2bfdd51b10943f7c014c97d6fed Mon Sep 17 00:00:00 2001 From: Kishon Vijay Abraham I Date: Mon, 2 May 2022 20:18:04 +0530 Subject: [PATCH] soc: ti: k3-navss-ringacc: Initialize base address of ring cfg registers Initialize base address of ring config registers required to natively setup ring cfg registers in the absence of Device Manager (DM) services at R5 SPL stage. Signed-off-by: Kishon Vijay Abraham I --- drivers/soc/ti/k3-navss-ringacc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/soc/ti/k3-navss-ringacc.c b/drivers/soc/ti/k3-navss-ringacc.c index 8db82bd94a..f4bf240486 100644 --- a/drivers/soc/ti/k3-navss-ringacc.c +++ b/drivers/soc/ti/k3-navss-ringacc.c @@ -1029,8 +1029,8 @@ static int k3_nav_ringacc_init(struct udevice *dev, struct k3_nav_ringacc *ringa struct k3_nav_ringacc *k3_ringacc_dmarings_init(struct udevice *dev, struct k3_ringacc_init_data *data) { + void __iomem *base_rt, *base_cfg; struct k3_nav_ringacc *ringacc; - void __iomem *base_rt; int i; ringacc = devm_kzalloc(dev, sizeof(*ringacc), GFP_KERNEL); @@ -1048,6 +1048,10 @@ struct k3_nav_ringacc *k3_ringacc_dmarings_init(struct udevice *dev, if (IS_ERR(base_rt)) return base_rt; + base_cfg = (uint32_t *)devfdt_get_addr_name(dev, "cfg"); + if (IS_ERR(base_cfg)) + return base_cfg; + ringacc->rings = devm_kzalloc(dev, sizeof(*ringacc->rings) * ringacc->num_rings * 2, @@ -1062,6 +1066,7 @@ struct k3_nav_ringacc *k3_ringacc_dmarings_init(struct udevice *dev, for (i = 0; i < ringacc->num_rings; i++) { struct k3_nav_ring *ring = &ringacc->rings[i]; + ring->cfg = base_cfg + KNAV_RINGACC_CFG_REGS_STEP * i; ring->rt = base_rt + k3_dmaring_RING_RT_REGS_STEP * i; ring->parent = ringacc; ring->ring_id = i;