forked from Mirrors/opensbi
platform: Drop irqchip warm init and exit hooks
Now that driver lifecycle is managed from within the SBI irqchip core, platforms need only to initialize the driver once during cold init. Remove the remaining platform hooks that are no longer used. Signed-off-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:

committed by
Anup Patel

parent
2dd6eaf680
commit
678f5909a3
@@ -16,40 +16,8 @@
|
||||
extern struct fdt_irqchip *fdt_irqchip_drivers[];
|
||||
extern unsigned long fdt_irqchip_drivers_size;
|
||||
|
||||
#define FDT_IRQCHIP_MAX_DRIVERS 8
|
||||
|
||||
static struct fdt_irqchip *current_drivers[FDT_IRQCHIP_MAX_DRIVERS] = {0};
|
||||
static int current_drivers_count;
|
||||
|
||||
void fdt_irqchip_exit(void)
|
||||
int fdt_irqchip_init(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < current_drivers_count; i++) {
|
||||
if (!current_drivers[i] || !current_drivers[i]->exit)
|
||||
continue;
|
||||
current_drivers[i]->exit();
|
||||
}
|
||||
}
|
||||
|
||||
static int fdt_irqchip_warm_init(void)
|
||||
{
|
||||
int i, rc;
|
||||
|
||||
for (i = 0; i < current_drivers_count; i++) {
|
||||
if (!current_drivers[i] || !current_drivers[i]->warm_init)
|
||||
continue;
|
||||
rc = current_drivers[i]->warm_init();
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int fdt_irqchip_cold_init(void)
|
||||
{
|
||||
bool drv_added;
|
||||
int pos, noff, rc;
|
||||
struct fdt_irqchip *drv;
|
||||
const struct fdt_match *match;
|
||||
@@ -59,7 +27,6 @@ static int fdt_irqchip_cold_init(void)
|
||||
drv = fdt_irqchip_drivers[pos];
|
||||
|
||||
noff = -1;
|
||||
drv_added = false;
|
||||
while ((noff = fdt_find_match(fdt, noff,
|
||||
drv->match_table, &match)) >= 0) {
|
||||
if (!fdt_node_is_enabled(fdt,noff))
|
||||
@@ -72,30 +39,8 @@ static int fdt_irqchip_cold_init(void)
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
|
||||
if (drv_added)
|
||||
continue;
|
||||
|
||||
current_drivers[current_drivers_count++] = drv;
|
||||
drv_added = true;
|
||||
}
|
||||
|
||||
if (FDT_IRQCHIP_MAX_DRIVERS <= current_drivers_count)
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int fdt_irqchip_init(bool cold_boot)
|
||||
{
|
||||
int rc;
|
||||
|
||||
if (cold_boot) {
|
||||
rc = fdt_irqchip_cold_init();
|
||||
if (rc)
|
||||
return rc;
|
||||
}
|
||||
|
||||
return fdt_irqchip_warm_init();
|
||||
}
|
||||
|
Reference in New Issue
Block a user