diff options
Diffstat (limited to 'arch/powerpc/platforms/52xx/mpc52xx_gpt.c')
| -rw-r--r-- | arch/powerpc/platforms/52xx/mpc52xx_gpt.c | 16 | 
1 files changed, 7 insertions, 9 deletions
diff --git a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c index f94f06e5276..028470b9588 100644 --- a/arch/powerpc/platforms/52xx/mpc52xx_gpt.c +++ b/arch/powerpc/platforms/52xx/mpc52xx_gpt.c @@ -81,7 +81,7 @@ MODULE_LICENSE("GPL");   * @regs: virtual address of GPT registers   * @lock: spinlock to coordinate between different functions.   * @gc: gpio_chip instance structure; used when GPIO is enabled - * @irqhost: Pointer to irq_host instance; used when IRQ mode is supported + * @irqhost: Pointer to irq_domain instance; used when IRQ mode is supported   * @wdt_mode: only relevant for gpt0: bit 0 (MPC52xx_GPT_CAN_WDT) indicates   *   if the gpt may be used as wdt, bit 1 (MPC52xx_GPT_IS_WDT) indicates   *   if the timer is actively used as wdt which blocks gpt functions @@ -91,7 +91,7 @@ struct mpc52xx_gpt_priv {  	struct device *dev;  	struct mpc52xx_gpt __iomem *regs;  	spinlock_t lock; -	struct irq_host *irqhost; +	struct irq_domain *irqhost;  	u32 ipb_freq;  	u8 wdt_mode; @@ -204,7 +204,7 @@ void mpc52xx_gpt_irq_cascade(unsigned int virq, struct irq_desc *desc)  	}  } -static int mpc52xx_gpt_irq_map(struct irq_host *h, unsigned int virq, +static int mpc52xx_gpt_irq_map(struct irq_domain *h, unsigned int virq,  			       irq_hw_number_t hw)  {  	struct mpc52xx_gpt_priv *gpt = h->host_data; @@ -216,7 +216,7 @@ static int mpc52xx_gpt_irq_map(struct irq_host *h, unsigned int virq,  	return 0;  } -static int mpc52xx_gpt_irq_xlate(struct irq_host *h, struct device_node *ct, +static int mpc52xx_gpt_irq_xlate(struct irq_domain *h, struct device_node *ct,  				 const u32 *intspec, unsigned int intsize,  				 irq_hw_number_t *out_hwirq,  				 unsigned int *out_flags) @@ -236,7 +236,7 @@ static int mpc52xx_gpt_irq_xlate(struct irq_host *h, struct device_node *ct,  	return 0;  } -static struct irq_host_ops mpc52xx_gpt_irq_ops = { +static const struct irq_domain_ops mpc52xx_gpt_irq_ops = {  	.map = mpc52xx_gpt_irq_map,  	.xlate = mpc52xx_gpt_irq_xlate,  }; @@ -252,14 +252,12 @@ mpc52xx_gpt_irq_setup(struct mpc52xx_gpt_priv *gpt, struct device_node *node)  	if (!cascade_virq)  		return; -	gpt->irqhost = irq_alloc_host(node, IRQ_HOST_MAP_LINEAR, 1, -				      &mpc52xx_gpt_irq_ops, -1); +	gpt->irqhost = irq_domain_add_linear(node, 1, &mpc52xx_gpt_irq_ops, gpt);  	if (!gpt->irqhost) { -		dev_err(gpt->dev, "irq_alloc_host() failed\n"); +		dev_err(gpt->dev, "irq_domain_add_linear() failed\n");  		return;  	} -	gpt->irqhost->host_data = gpt;  	irq_set_handler_data(cascade_virq, gpt);  	irq_set_chained_handler(cascade_virq, mpc52xx_gpt_irq_cascade);  |