Browse Source

platform: plic: Fix plic_set_priority()

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>
Bin Meng 5 years ago
parent
commit
ebe351e550
1 changed files with 4 additions and 1 deletions
  1. 4 1
      platform/common/irqchip/plic.c

+ 4 - 1
platform/common/irqchip/plic.c

@@ -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)