mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2026-06-12 22:31:45 +01:00
lib: sbi_irqchip: Allow irqchip drivers advertise capabilities
Extend struct sbi_irqchip_device to allow irqchip drivers advertise interrupt controller capabilities (such as wired interrupt, MSIs, etc). This further allows other parts of OpenSBI to lookup irqchip devices based on capabilities. Signed-off-by: Anup Patel <anup.patel@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260608125257.3220114-2-anup.patel@oss.qualcomm.com Signed-off-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
@@ -408,6 +408,26 @@ int sbi_irqchip_unregister_handler(struct sbi_irqchip_device *chip,
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct sbi_irqchip_device *sbi_irqchip_find_device_by_caps(unsigned long caps,
|
||||
struct sbi_irqchip_device *first)
|
||||
{
|
||||
struct sbi_irqchip_device *chip;
|
||||
bool found = false;
|
||||
|
||||
sbi_list_for_each_entry(chip, &irqchip_list, node) {
|
||||
if (!found) {
|
||||
if (first == chip)
|
||||
found = true;
|
||||
else
|
||||
continue;
|
||||
}
|
||||
if ((chip->caps & caps) == caps)
|
||||
return chip;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct sbi_irqchip_device *sbi_irqchip_find_device(u32 id)
|
||||
{
|
||||
struct sbi_irqchip_device *chip;
|
||||
|
||||
Reference in New Issue
Block a user