RISC-V: Rename and move plic_find_hart_id() to arch directory
The plic_find_hart_id() can be useful to other interrupt controller drivers (such as RISC-V local interrupt driver) so we rename this function to riscv_of_parent_hartid() and place it in arch directory along with riscv_of_processor_hartid(). Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Atish Patra <atish.patra@wdc.com> Reviewed-by: Palmer Dabbelt <palmerdabbelt@google.com> Acked-by: Palmer Dabbelt <palmerdabbelt@google.com> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com> Reviewed-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
This commit is contained in:

committed by
Palmer Dabbelt

parent
5cf998ba8c
commit
d175d699df
@@ -240,20 +240,6 @@ static void plic_handle_irq(struct pt_regs *regs)
|
||||
csr_set(CSR_IE, IE_EIE);
|
||||
}
|
||||
|
||||
/*
|
||||
* Walk up the DT tree until we find an active RISC-V core (HART) node and
|
||||
* extract the cpuid from it.
|
||||
*/
|
||||
static int plic_find_hart_id(struct device_node *node)
|
||||
{
|
||||
for (; node; node = node->parent) {
|
||||
if (of_device_is_compatible(node, "riscv"))
|
||||
return riscv_of_processor_hartid(node);
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static void plic_set_threshold(struct plic_handler *handler, u32 threshold)
|
||||
{
|
||||
/* priority must be > threshold to trigger an interrupt */
|
||||
@@ -330,7 +316,7 @@ static int __init plic_init(struct device_node *node,
|
||||
if (parent.args[0] != RV_IRQ_EXT)
|
||||
continue;
|
||||
|
||||
hartid = plic_find_hart_id(parent.np);
|
||||
hartid = riscv_of_parent_hartid(parent.np);
|
||||
if (hartid < 0) {
|
||||
pr_warn("failed to parse hart ID for context %d.\n", i);
|
||||
continue;
|
||||
|
Reference in New Issue
Block a user