diff options
Diffstat (limited to 'arch/arm/common/vic.c')
| -rw-r--r-- | arch/arm/common/vic.c | 19 | 
1 files changed, 6 insertions, 13 deletions
diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c index e0d538803cc3..e4df17ca90c7 100644 --- a/arch/arm/common/vic.c +++ b/arch/arm/common/vic.c @@ -218,7 +218,7 @@ static void __init vic_register(void __iomem *base, unsigned int irq,  	v->resume_sources = resume_sources;  	v->irq = irq;  	vic_id++; -	v->domain = irq_domain_add_legacy(node, fls(valid_sources), irq, 0, +	v->domain = irq_domain_add_simple(node, fls(valid_sources), irq,  					  &vic_irqdomain_ops, v);  } @@ -350,7 +350,7 @@ static void __init vic_init_st(void __iomem *base, unsigned int irq_start,  	vic_register(base, irq_start, vic_sources, 0, node);  } -void __init __vic_init(void __iomem *base, unsigned int irq_start, +void __init __vic_init(void __iomem *base, int irq_start,  			      u32 vic_sources, u32 resume_sources,  			      struct device_node *node)  { @@ -407,7 +407,6 @@ void __init vic_init(void __iomem *base, unsigned int irq_start,  int __init vic_of_init(struct device_node *node, struct device_node *parent)  {  	void __iomem *regs; -	int irq_base;  	if (WARN(parent, "non-root VICs are not supported"))  		return -EINVAL; @@ -416,18 +415,12 @@ int __init vic_of_init(struct device_node *node, struct device_node *parent)  	if (WARN_ON(!regs))  		return -EIO; -	irq_base = irq_alloc_descs(-1, 0, 32, numa_node_id()); -	if (WARN_ON(irq_base < 0)) -		goto out_unmap; - -	__vic_init(regs, irq_base, ~0, ~0, node); +	/* +	 * Passing -1 as first IRQ makes the simple domain allocate descriptors +	 */ +	__vic_init(regs, -1, ~0, ~0, node);  	return 0; - - out_unmap: -	iounmap(regs); - -	return -EIO;  }  #endif /* CONFIG OF */  |