Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5751d3dc authored by Bartosz Golaszewski's avatar Bartosz Golaszewski Committed by Linus Walleij
Browse files

gpio: mxs: use devres for irq generic chip



Use resource managed variants of irq_alloc_generic_chip() and
irq_setup_generic_chip().

Signed-off-by: default avatarBartosz Golaszewski <brgl@bgdev.pl>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent db5270ac
Loading
Loading
Loading
Loading
+9 −5
Original line number Original line Diff line number Diff line
@@ -66,6 +66,7 @@ struct mxs_gpio_port {
	int irq;
	int irq;
	struct irq_domain *domain;
	struct irq_domain *domain;
	struct gpio_chip gc;
	struct gpio_chip gc;
	struct device *dev;
	enum mxs_gpio_id devid;
	enum mxs_gpio_id devid;
	u32 both_edges;
	u32 both_edges;
};
};
@@ -209,8 +210,9 @@ static int mxs_gpio_init_gc(struct mxs_gpio_port *port, int irq_base)
{
{
	struct irq_chip_generic *gc;
	struct irq_chip_generic *gc;
	struct irq_chip_type *ct;
	struct irq_chip_type *ct;
	int rv;


	gc = irq_alloc_generic_chip("gpio-mxs", 2, irq_base,
	gc = devm_irq_alloc_generic_chip(port->dev, "gpio-mxs", 2, irq_base,
					 port->base, handle_level_irq);
					 port->base, handle_level_irq);
	if (!gc)
	if (!gc)
		return -ENOMEM;
		return -ENOMEM;
@@ -242,10 +244,11 @@ static int mxs_gpio_init_gc(struct mxs_gpio_port *port, int irq_base)
	ct->regs.disable = PINCTRL_IRQEN(port) + MXS_CLR;
	ct->regs.disable = PINCTRL_IRQEN(port) + MXS_CLR;
	ct->handler = handle_level_irq;
	ct->handler = handle_level_irq;


	irq_setup_generic_chip(gc, IRQ_MSK(32), IRQ_GC_INIT_NESTED_LOCK,
	rv = devm_irq_setup_generic_chip(port->dev, gc, IRQ_MSK(32),
					 IRQ_GC_INIT_NESTED_LOCK,
					 IRQ_NOREQUEST, 0);
					 IRQ_NOREQUEST, 0);


	return 0;
	return rv;
}
}


static int mxs_gpio_to_irq(struct gpio_chip *gc, unsigned offset)
static int mxs_gpio_to_irq(struct gpio_chip *gc, unsigned offset)
@@ -304,6 +307,7 @@ static int mxs_gpio_probe(struct platform_device *pdev)
	if (port->id < 0)
	if (port->id < 0)
		return port->id;
		return port->id;
	port->devid = (enum mxs_gpio_id) of_id->data;
	port->devid = (enum mxs_gpio_id) of_id->data;
	port->dev = &pdev->dev;
	port->irq = platform_get_irq(pdev, 0);
	port->irq = platform_get_irq(pdev, 0);
	if (port->irq < 0)
	if (port->irq < 0)
		return port->irq;
		return port->irq;