gpio: lpc32xx: disable broken to_irq support
Subsystems (2)
PATCH 1/1 gpio: lpc32xx: disable broken to_irq support
From: Sylvain Lemieux <[email protected]>
The "to_irq" functionality is broken inside this driver since commit 76ba59f8366f ("genirq: Add irq_domain-aware core IRQ handler").
The addition of the new lpc32xx irqchip driver in 4.7, fixed the lpc32xx platform interrupt issue.
When switching to the new lpc32xx irqchip driver, a warning appear in the lpc32xx gpio driver: warning: "NR_IRQS" redefined.
To remove this warning (temporary solution), this patch disables the broken "to_irq" mapping functionality support.
---
Note:
* For details on the lpc32xx irqchip patch, refer to:
http://thread.gmane.org/gmane.linux.drivers.devicetree/165620
* The final solution is to replace the existing lpc32xx gpio driver. This work is currently in progress; refer to the following URL:
http://thread.gmane.org/gmane.linux.drivers.devicetree/144696
drivers/gpio/gpio-lpc32xx.c | 48 +-------------------------------------------- 1 file changed, 1 insertion(+), 47 deletions(-)
drivers/gpio/gpio-lpc32xx.c +1 -47
@@ -29,7 +29,6 @@#include <mach/hardware.h> #include <mach/platform.h> -#include <mach/irqs.h> #define LPC32XX_GPIO_P3_INP_STATE _GPREG(0x000)#define LPC32XX_GPIO_P3_OUTP_SET _GPREG(0x004)
@@ -371,61 +370,16 @@ static int lpc32xx_gpio_request(struct gpio_chip *chip, unsigned pin)static int lpc32xx_gpio_to_irq_p01 (struct gpio_chip *chip,unsigned offset) { -return IRQ_LPC32XX_P0_P1_IRQ ; +return -ENXIO ; } -static const char lpc32xx_gpio_to_irq_gpio_p3_table[] = { -IRQ_LPC32XX_GPIO_00 , -IRQ_LPC32XX_GPIO_01 , -IRQ_LPC32XX_GPIO_02 , -IRQ_LPC32XX_GPIO_03 , -IRQ_LPC32XX_GPIO_04 , -IRQ_LPC32XX_GPIO_05 , -}; -static int lpc32xx_gpio_to_irq_gpio_p3 (struct gpio_chip *chip,unsigned offset) { -if (offset <ARRAY_SIZE (lpc32xx_gpio_to_irq_gpio_p3_table)) -return lpc32xx_gpio_to_irq_gpio_p3_table[offset];return -ENXIO ; } -static const char lpc32xx_gpio_to_irq_gpi_p3_table[] = { -IRQ_LPC32XX_GPI_00 , -IRQ_LPC32XX_GPI_01 , -IRQ_LPC32XX_GPI_02 , -IRQ_LPC32XX_GPI_03 , -IRQ_LPC32XX_GPI_04 , -IRQ_LPC32XX_GPI_05 , -IRQ_LPC32XX_GPI_06 , -IRQ_LPC32XX_GPI_07 , -IRQ_LPC32XX_GPI_08 , -IRQ_LPC32XX_GPI_09 , - -ENXIO ,/* 10 */ - -ENXIO ,/* 11 */ - -ENXIO ,/* 12 */ - -ENXIO ,/* 13 */ - -ENXIO ,/* 14 */ - -ENXIO ,/* 15 */ - -ENXIO ,/* 16 */ - -ENXIO ,/* 17 */ - -ENXIO ,/* 18 */ -IRQ_LPC32XX_GPI_19 , - -ENXIO ,/* 20 */ - -ENXIO ,/* 21 */ - -ENXIO ,/* 22 */ - -ENXIO ,/* 23 */ - -ENXIO ,/* 24 */ - -ENXIO ,/* 25 */ - -ENXIO ,/* 26 */ - -ENXIO ,/* 27 */ -IRQ_LPC32XX_GPI_28 , -}; -static int lpc32xx_gpio_to_irq_gpi_p3 (struct gpio_chip *chip,unsigned offset) { -if (offset <ARRAY_SIZE (lpc32xx_gpio_to_irq_gpi_p3_table)) -return lpc32xx_gpio_to_irq_gpi_p3_table[offset];return -ENXIO ; }
Signature · 1 line
1.8.3.1
Vladimir Zapolskiy
maintainerPATCH 1/1 gpio: lpc32xx: disable broken to_irq support
Hi Sylvain,
Quoted 20 lines · Sylvain Lemieux
From: Sylvain Lemieux <[email protected]>
The "
to_irq" functionality is broken inside this driver since commit76ba59f8366f("genirq: Add irq_domain-aware core IRQ handler").The addition of the new lpc32xx irqchip driver in 4.7, fixed the lpc32xx platform interrupt issue.
When switching to the new lpc32xx irqchip driver, a warning appear in the lpc32xx gpio driver: warning: "
NR_IRQS" redefined.To remove this warning (temporary solution), this patch disables the broken "
to_irq" mapping functionality support.Signed-off-by Sylvain Lemieux <[email protected]>---
Note:
* For details on the lpc32xx irqchip patch, refer to:
http://thread.gmane.org/gmane.linux.drivers.devicetree/165620
Quoted 7 lines
* The final solution is to replace the existing lpc32xx gpio driver. This work is currently in progress; refer to the following URL:
http://thread.gmane.org/gmane.linux.drivers.devicetree/144696drivers/gpio/gpio-lpc32xx.c | 48 +-------------------------------------------- 1 file changed, 1 insertion(+), 47 deletions(-)
the change looks good to me.
Probably all lpc32xx_gpio_to_irq* functions can be removed along with .to_irq callback assignments, but it is up to you.
--
With best wishes,
Vladimir
PATCH 1/1 gpio: lpc32xx: disable broken to_irq support
In reply to Sylvain LemieuxQuoted 8 lines · Sylvain Lemieux
From: Sylvain Lemieux <[email protected]>
The "
to_irq" functionality is broken inside this driver since commit76ba59f8366f("genirq: Add irq_domain-aware core IRQ handler").The addition of the new lpc32xx irqchip driver in 4.7, fixed the lpc32xx platform interrupt issue.
Quoted 7 lines
When switching to the new lpc32xx irqchip driver, a warning appear in the lpc32xx gpio driver: warning: "
NR_IRQS" redefined.To remove this warning (temporary solution), this patch disables the broken "
to_irq" mapping functionality support.Signed-off-by Sylvain Lemieux <[email protected]>
Patch applied for fixes with Vladimir's ACK.
Quoted 3 lines
* The final solution is to replace the existing lpc32xx gpio driver. This work is currently in progress; refer to the following URL:
http://thread.gmane.org/gmane.linux.drivers.devicetree/144696
Hm, I see that the ambition was to merge the new irqchip driver and the new GPIO driver in the same merge window. Sorry if I was being too lazy/picky/whatever about the patch(es) I guess I didn't quite get the scope of this change. :(
I should say that as long as we can agree that the new code makes the kernel as a whole a better place, I am happy to merge it. Sometimes also I need to zoom out from the GPIO and pin control subsystem(s) and see the big picture.
Yours,
Linus Walleij
PATCH 1/1 gpio: lpc32xx: disable broken to_irq support
Hi Linus,
Quoted 21 lines · Linus Walleij
Quoted 8 lines · Sylvain Lemieux
From: Sylvain Lemieux <[email protected]>
The "
to_irq" functionality is broken inside this driver since commit76ba59f8366f("genirq: Add irq_domain-aware core IRQ handler").The addition of the new lpc32xx irqchip driver in 4.7, fixed the lpc32xx platform interrupt issue.
Quoted 7 lines
When switching to the new lpc32xx irqchip driver, a warning appear in the lpc32xx gpio driver: warning: "
NR_IRQS" redefined.To remove this warning (temporary solution), this patch disables the broken "
to_irq" mapping functionality support.Signed-off-by Sylvain Lemieux <[email protected]>Patch applied for fixes with Vladimir's ACK.
Quoted 9 lines
Quoted 3 lines
* The final solution is to replace the existing lpc32xx gpio driver. This work is currently in progress; refer to the following URL:
http://thread.gmane.org/gmane.linux.drivers.devicetree/144696Hm, I see that the ambition was to merge the new irqchip driver and the new GPIO driver in the same merge window. Sorry if I was being too lazy/picky/whatever about the patch(es) I guess I didn't quite get the scope of this change. :(
The new LPC32xx GPIO driver can go in a separate merge window; another version of the patchset is required.
For 4.7, the goal was to remove the broken dependency in the existing driver.
Quoted 7 lines
I should say that as long as we can agree that the new code makes the kernel as a whole a better place, I am happy to merge it. Sometimes also I need to zoom out from the GPIO and pin control subsystem(s) and see the big picture.
Yours,
Linus Walleij
Sylvain Lemieux