From 901d3d7bff5a511b5f320aad8a0d65e79c95d09c Mon Sep 17 00:00:00 2001 From: Inochi Amaoto Date: Tue, 15 Aug 2023 17:40:33 +0800 Subject: [PATCH] lib: sbi_pmu: keep overflow interrupt of stopped hpm counter disabled After the hardware hpm counter is stopped, it should not raise any new interrupt as it is already stopped. So add the hw_counter_disable_irq callback to allow the custom pmu device to control this behavior. Signed-off-by: Inochi Amaoto Reviewed-by: Guo Ren Reviewed-by: Anup Patel Tested-by: Samuel Holland --- lib/sbi/sbi_pmu.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/sbi/sbi_pmu.c b/lib/sbi/sbi_pmu.c index c52e8a2..9694aae 100644 --- a/lib/sbi/sbi_pmu.c +++ b/lib/sbi/sbi_pmu.c @@ -482,6 +482,9 @@ static int pmu_ctr_stop_hw(uint32_t cidx) if (!__test_bit(cidx, &mctr_inhbt)) { __set_bit(cidx, &mctr_inhbt); csr_write(CSR_MCOUNTINHIBIT, mctr_inhbt); + if (pmu_dev && pmu_dev->hw_counter_disable_irq) { + pmu_dev->hw_counter_disable_irq(cidx); + } return 0; } else return SBI_EALREADY_STOPPED;