1. 10 6月, 2006 1 次提交
  2. 09 6月, 2006 3 次提交
    • M
      [ARM] 3546/1: PATCH: subtle lost interrupts bug on i.MX · e2f04e18
      Matt Reimer 提交于
      Patch from Matt Reimer
      
      There is a subtle bug in the GPIO interrupt status register
      handling in arch/arm/mach-imx/irq.c:imx_gpio_ack_irq(). The
      documentation states that a 1 should be written to the relevant bit to
      acknowledge a GPIO interrupt, but that is not what the code does.
      
      The problem is that the |= writes back 1s for all the *other*
      interrupts represented in the register, so interrupts could get lost.
      For example, if interrupts are pending for GPIO B10 and B12, ISR_B
      would have the value 0x00001400. Then when the interrupt code handles
      GPIO B10, it eventually calls imx_gpio_ack_irq(IRQ_GPIOB(10)), which
      effectively does this:
      
      ISR_B |= 1 << 10;
      
      with the result that (0x00001400 | 0x00000400) is written, clearing
      the interrupt status bits for *both* GPIO B10 and B12.
      
      The fix is to write 1s only for the interrupts we want to clear.
      
      The same problem seems to be occurring in the DMA code; this patch
      does not address those issues.
      Acked-by: NSascha Hauer <s.hauer@pengutronix.de>
      Signed-off-by: NMatt Reimer <mreimer@vpop.net>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      e2f04e18
    • R
      [ARM] 3547/1: PXA-OHCI: Allow platforms to specify a power budget · 0c27c5d5
      Richard Purdie 提交于
      Patch from Richard Purdie
      
      Add a power budget variable to the PXA OHCI platform data and add a
      default value for the spitz platform(s) which prevents known failures
      with certain USB devices.
      Signed-off-by: NRichard Purdie <rpurdie@rpsys.net>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      0c27c5d5
    • R
      [ARM] Fix Neponset IRQ handling · d782f33d
      Russell King 提交于
      While testing the genirq code on ARM, a condition was found whereby
      the Neponset IRQ handler was being re-entered, causing the system
      to deadlock.
      
      Under the ARM IRQ code, this would not have been a visible problem
      because the "simple" IRQ handling had no re-entrancy protection.
      
      Resolve this by acknowledging the parent interrupt after we mask it
      when we are going to handle one of our "special" level-based sources
      (from ethernet or USAR chip.)
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      d782f33d
  3. 06 6月, 2006 36 次提交