riscv: Avoid calling sbi_clear_ipi()
authorBin Meng <bmeng.cn@gmail.com>
Fri, 6 Mar 2020 08:44:17 +0000 (00:44 -0800)
committerAndes <uboot@andestech.com>
Tue, 17 Mar 2020 03:29:40 +0000 (11:29 +0800)
There is no need for S-mode U-Boot to call sbi_clear_ipi() as it
can be cleared directly from S-mode. This saves some cycles.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Lukas Auer <lukas@auer.io>
arch/riscv/lib/sbi_ipi.c

index 9a698ce74e67127209c46cec82fbee9e2e907f19..abafca9e5c1366d18608272f328d1cc79560dd02 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include <common.h>
+#include <asm/encoding.h>
 #include <asm/sbi.h>
 
 int riscv_send_ipi(int hart)
@@ -19,7 +20,7 @@ int riscv_send_ipi(int hart)
 
 int riscv_clear_ipi(int hart)
 {
-       sbi_clear_ipi();
+       csr_clear(CSR_SIP, SIP_SSIP);
 
        return 0;
 }