diff options
Diffstat (limited to 'arch/powerpc/platforms/embedded6xx/hlwd-pic.c')
| -rw-r--r-- | arch/powerpc/platforms/embedded6xx/hlwd-pic.c | 29 | 
1 files changed, 14 insertions, 15 deletions
diff --git a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c index e4919170c6b..3006b5117ec 100644 --- a/arch/powerpc/platforms/embedded6xx/hlwd-pic.c +++ b/arch/powerpc/platforms/embedded6xx/hlwd-pic.c @@ -89,9 +89,9 @@ static struct irq_chip hlwd_pic = {   *   */ -static struct irq_host *hlwd_irq_host; +static struct irq_domain *hlwd_irq_host; -static int hlwd_pic_map(struct irq_host *h, unsigned int virq, +static int hlwd_pic_map(struct irq_domain *h, unsigned int virq,  			   irq_hw_number_t hwirq)  {  	irq_set_chip_data(virq, h->host_data); @@ -100,11 +100,11 @@ static int hlwd_pic_map(struct irq_host *h, unsigned int virq,  	return 0;  } -static struct irq_host_ops hlwd_irq_host_ops = { +static const struct irq_domain_ops hlwd_irq_domain_ops = {  	.map = hlwd_pic_map,  }; -static unsigned int __hlwd_pic_get_irq(struct irq_host *h) +static unsigned int __hlwd_pic_get_irq(struct irq_domain *h)  {  	void __iomem *io_base = h->host_data;  	int irq; @@ -123,14 +123,14 @@ static void hlwd_pic_irq_cascade(unsigned int cascade_virq,  				      struct irq_desc *desc)  {  	struct irq_chip *chip = irq_desc_get_chip(desc); -	struct irq_host *irq_host = irq_get_handler_data(cascade_virq); +	struct irq_domain *irq_domain = irq_get_handler_data(cascade_virq);  	unsigned int virq;  	raw_spin_lock(&desc->lock);  	chip->irq_mask(&desc->irq_data); /* IRQ_LEVEL */  	raw_spin_unlock(&desc->lock); -	virq = __hlwd_pic_get_irq(irq_host); +	virq = __hlwd_pic_get_irq(irq_domain);  	if (virq != NO_IRQ)  		generic_handle_irq(virq);  	else @@ -155,9 +155,9 @@ static void __hlwd_quiesce(void __iomem *io_base)  	out_be32(io_base + HW_BROADWAY_ICR, 0xffffffff);  } -struct irq_host *hlwd_pic_init(struct device_node *np) +struct irq_domain *hlwd_pic_init(struct device_node *np)  { -	struct irq_host *irq_host; +	struct irq_domain *irq_domain;  	struct resource res;  	void __iomem *io_base;  	int retval; @@ -177,15 +177,14 @@ struct irq_host *hlwd_pic_init(struct device_node *np)  	__hlwd_quiesce(io_base); -	irq_host = irq_alloc_host(np, IRQ_HOST_MAP_LINEAR, HLWD_NR_IRQS, -				  &hlwd_irq_host_ops, -1); -	if (!irq_host) { -		pr_err("failed to allocate irq_host\n"); +	irq_domain = irq_domain_add_linear(np, HLWD_NR_IRQS, +					   &hlwd_irq_domain_ops, io_base); +	if (!irq_domain) { +		pr_err("failed to allocate irq_domain\n");  		return NULL;  	} -	irq_host->host_data = io_base; -	return irq_host; +	return irq_domain;  }  unsigned int hlwd_pic_get_irq(void) @@ -200,7 +199,7 @@ unsigned int hlwd_pic_get_irq(void)  void hlwd_pic_probe(void)  { -	struct irq_host *host; +	struct irq_domain *host;  	struct device_node *np;  	const u32 *interrupts;  	int cascade_virq;  |