forked from Mirrors/opensbi
lib: sbi_pmu: move pmu irq information into pmu itself
Don't spread checking for pmu extensions through the code but instead introduce a sbi-pmu function that other code can call to get the correct information about the existence of the pmu interrupt. Add a sbi_pmu_device override function to allow overridung this bit as well if needed. Reviewed-by: Atish Patra <atishp@rivosinc.com> Reviewed-by: Andrew Jones <ajones@ventanamicro.com> Reviewed-by: Guo Ren <guoren@kernel.org> Reviewed-by: Anup Patel <anup@brainfault.org> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
This commit is contained in:

committed by
Anup Patel

parent
3f3d401d2d
commit
e54cb3298b
@@ -73,6 +73,11 @@ struct sbi_pmu_device {
|
||||
* Note: 0 <= counter_index < SBI_PMU_HW_CTR_MAX
|
||||
*/
|
||||
void (*hw_counter_disable_irq)(uint32_t counter_index);
|
||||
|
||||
/**
|
||||
* Custom function returning the machine-specific irq-bit.
|
||||
*/
|
||||
int (*hw_counter_irq_bit)(void);
|
||||
};
|
||||
|
||||
/** Get the PMU platform device */
|
||||
@@ -87,6 +92,9 @@ int sbi_pmu_init(struct sbi_scratch *scratch, bool cold_boot);
|
||||
/** Reset PMU during hart exit */
|
||||
void sbi_pmu_exit(struct sbi_scratch *scratch);
|
||||
|
||||
/** Return the pmu irq bit depending on extension existence */
|
||||
int sbi_pmu_irq_bit(void);
|
||||
|
||||
/**
|
||||
* Add the hardware event to counter mapping information. This should be called
|
||||
* from the platform code to update the mapping table.
|
||||
|
Reference in New Issue
Block a user