Re: [BISECTED] v4.4-rc1 GPIO regression on OMAP1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Thu, Nov 19, 2015 at 01:57:37PM +0200, Grygorii Strashko wrote:
> On 11/18/2015 08:31 PM, Aaro Koskinen wrote:
> > On Wed, Nov 18, 2015 at 02:58:38PM +0200, Grygorii Strashko wrote:
> >> On 11/17/2015 11:42 PM, Aaro Koskinen wrote:
> >>> Amstrad E3 computer (OMAP1) boot crashes early with v4.4-rc1. Bisected to:
> >>>
> >>> 	450fa54cfd66e3dda6eda26256637ee8928af12a is the first bad commit
> >>> 	commit 450fa54cfd66e3dda6eda26256637ee8928af12a
> >>> 	Author: Grygorii Strashko <grygorii.strashko@xxxxxx>
> >>> 	Date:   Fri Sep 25 12:28:03 2015 -0700
> >>> 	
> >>> 	    gpio: omap: convert to use generic irq handler
> >>
> >> Could you check pls if below change will solve this issue, pls?
> >>
> >> iff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
> >> index 56d2d02..2905e0d 100644
> >> --- a/drivers/gpio/gpio-omap.c
> >> +++ b/drivers/gpio/gpio-omap.c
> >> @@ -1129,7 +1129,7 @@ static int omap_gpio_chip_init(struct gpio_bank *bank,
> >> struct irq_chip *irqc)
> >>          }
> >>
> >>          ret = gpiochip_irqchip_add(&bank->chip, irqc,
> >> -                                  irq_base, handle_bad_irq,
> >> +                                  irq_base, handle_simple_irq,
> >>                                     IRQ_TYPE_NONE);
> > 
> 
> Thanks for testing it. But I'd like to ask you for more help here if possible :)
> Above change is expected to fix the OMAP1 boot, but looking at the OMAP GPIO code
> I think that MPUIO IRQ are not working :( and this functionality has been broken 
> long time ago - commit "gpio: omap: convert to use generic irq handler" has just 
> made hidden issue visible.
> (I've found only one OMAP1 board which uses MPUIO GPIO as IRQ (board-osk.c)).
> 
> So, could I ask you to test another change instead of previous one?
> 
> --- a/drivers/gpio/gpio-omap.c
> +++ b/drivers/gpio/gpio-omap.c
> @@ -1122,8 +1122,6 @@ static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)
>         /* MPUIO is a bit different, reading IRQ status clears it */
>         if (bank->is_mpuio) {
>                 irqc->irq_ack = dummy_irq_chip.irq_ack;
> -               irqc->irq_mask = irq_gc_mask_set_bit;
> -               irqc->irq_unmask = irq_gc_mask_clr_bit;
>                 if (!bank->regs->wkup_en)
>                         irqc->irq_set_wake = NULL;
>         }

This fixes the boot crash issue as well...

> In my opinion real test will be
> - request(any MPUIO GPIO IRQ, IRQF_TRIGGER_LOW/HIGH), 
> - trigger MPUIO GPIO IRQ
> - free(MPUIO GPIO IRQ)

...but I don't think I can cover that with my boards (E3/770)?

Anyone willing to donate a 5912 OSK?

A.
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux