[PATCH] utils: irqchip: plic: Using 1 as default priority value
guoren at kernel.org
guoren at kernel.org
Sat Apr 24 03:43:47 BST 2021
From: Guo Ren <guoren at linux.alibaba.com>
In linux plic drivers:
static inline void plic_irq_toggle(const struct cpumask *mask,
struct irq_data *d, int enable)
{
int cpu;
struct plic_priv *priv = irq_data_get_irq_chip_data(d);
writel(enable, priv->regs + PRIORITY_BASE + d->hwirq * PRIORITY_PER_ID);
It sets PRIORITY in enable/disable irq, but not during init.
Actually, priority is no use at all and just keep them the same is
enough.
The motivation of my patch: When we want to run 2 different Linux OS
in the same SMP system, the second Linux cold boot will flush all
priority to zero and the patch is to solve the problem.
Signed-off-by: Guo Ren <guoren at linux.alibaba.com>
Cc: Anup Patel <anup.patel at wdc.com>
---
lib/utils/irqchip/plic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/utils/irqchip/plic.c b/lib/utils/irqchip/plic.c
index 7665c62..70e89a6 100644
--- a/lib/utils/irqchip/plic.c
+++ b/lib/utils/irqchip/plic.c
@@ -94,7 +94,7 @@ int plic_cold_irqchip_init(struct plic_data *plic)
/* Configure default priorities of all IRQs */
for (i = 1; i <= plic->num_src; i++)
- plic_set_priority(plic, i, 0);
+ plic_set_priority(plic, i, 1);
return 0;
}
--
2.7.4
More information about the opensbi
mailing list