platform: plic: Fix plic_set_priority()
authorBin Meng <bmeng.cn@gmail.com>
Wed, 13 Mar 2019 16:00:35 +0000 (00:00 +0800)
committerAnup Patel <anup@brainfault.org>
Thu, 14 Mar 2019 15:13:35 +0000 (20:43 +0530)
At present plic_set_priority() ignores the 'source' and the priority
register to be programmed is constant. Fix it.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
platform/common/irqchip/plic.c

index 3a0c93f..7509f05 100644 (file)
@@ -27,7 +27,10 @@ static volatile void *plic_base;
 
 static void plic_set_priority(u32 source, u32 val)
 {
-       writel(val, plic_base);
+       volatile void *plic_priority = plic_base +
+                               PLIC_PRIORITY_BASE +
+                               4 * source;
+       writel(val, plic_priority);
 }
 
 static void plic_set_thresh(u32 cntxid, u32 val)