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

Commit 2a3267a4 authored by Shawn Guo's avatar Shawn Guo
Browse files

arm/imx: fix return type of callback passed to of_irq_init()



The of_irq_init() expects the callback passed by .data of of_device_id
return 'int' instead of 'void'.  This patch fixes it to have
irq_init_cb() return the correct value, and in turn have the secondary
interrupt controller (gpio in this case) initialized properly and also
eliminate the error message 'of_irq_init: children remain, but no
parents' which was overlooked before.

Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
parent caca6a03
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ static void __init imx6q_map_io(void)
	imx_scu_map_io();
}

static void __init imx6q_gpio_add_irq_domain(struct device_node *np,
static int __init imx6q_gpio_add_irq_domain(struct device_node *np,
				struct device_node *interrupt_parent)
{
	static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS -
@@ -44,6 +44,8 @@ static void __init imx6q_gpio_add_irq_domain(struct device_node *np,

	irq_domain_add_simple(np, gpio_irq_base);
	gpio_irq_base += 32;

	return 0;
}

static const struct of_device_id imx6q_irq_match[] __initconst = {
+5 −2
Original line number Diff line number Diff line
@@ -44,13 +44,14 @@ static const struct of_dev_auxdata imx51_auxdata_lookup[] __initconst = {
	{ /* sentinel */ }
};

static void __init imx51_tzic_add_irq_domain(struct device_node *np,
static int __init imx51_tzic_add_irq_domain(struct device_node *np,
				struct device_node *interrupt_parent)
{
	irq_domain_add_simple(np, 0);
	return 0;
}

static void __init imx51_gpio_add_irq_domain(struct device_node *np,
static int __init imx51_gpio_add_irq_domain(struct device_node *np,
				struct device_node *interrupt_parent)
{
	static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS -
@@ -58,6 +59,8 @@ static void __init imx51_gpio_add_irq_domain(struct device_node *np,

	irq_domain_add_simple(np, gpio_irq_base);
	gpio_irq_base += 32;

	return 0;
}

static const struct of_device_id imx51_irq_match[] __initconst = {
+5 −2
Original line number Diff line number Diff line
@@ -48,13 +48,14 @@ static const struct of_dev_auxdata imx53_auxdata_lookup[] __initconst = {
	{ /* sentinel */ }
};

static void __init imx53_tzic_add_irq_domain(struct device_node *np,
static int __init imx53_tzic_add_irq_domain(struct device_node *np,
				struct device_node *interrupt_parent)
{
	irq_domain_add_simple(np, 0);
	return 0;
}

static void __init imx53_gpio_add_irq_domain(struct device_node *np,
static int __init imx53_gpio_add_irq_domain(struct device_node *np,
				struct device_node *interrupt_parent)
{
	static int gpio_irq_base = MXC_GPIO_IRQ_START + ARCH_NR_GPIOS -
@@ -62,6 +63,8 @@ static void __init imx53_gpio_add_irq_domain(struct device_node *np,

	irq_domain_add_simple(np, gpio_irq_base);
	gpio_irq_base += 32;

	return 0;
}

static const struct of_device_id imx53_irq_match[] __initconst = {