1. 18 Oct, 2008 1 commit
    • Vikram Pandita's avatar
      Fix bootup crash for LDP platform · df338deb
      Vikram Pandita authored
      Fix following bootup crash on LDP platform by enabling T2 USB driver for MUSB
      
      Backtrace:
      [<c001b9ac>] (musb_platform_init+0x0/0x120) from [<c001b0a8>] (musb_probe+0x208/0xb0c)
       r5:00000000 r4:c0222ad4
      [<c001aea0>] (musb_probe+0x0/0xb0c) from [<c0142e80>] (platform_drv_probe+0x20/0x24)
      [<c0142e60>] (platform_drv_probe+0x0/0x24) from [<c0142118>] (driver_probe_device+0xd0/0x17c)
      [<c0142048>] (driver_probe_device+0x0/0x17c) from [<c0142210>] (__driver_attach+ 0x4c/0x70)
       r7:c0233214 r6:c0233214 r5:c02229ec r4:c0222940
      [<c01421c4>] (__driver_attach+0x0/0x70) from [<c0141790>] (bus_for_each_dev+0x4c/0x84)
       r7:c0233214 r6:c01421c4 r5:c781de94 r4:00000000
      [<c0141744>] (bus_for_each_dev+0x0/0x84) from [<c0141f60>] (driver_attach+0x20/0x28)
       r7:c78999c0 r6:c0234c60 r5:c0233214 r4:00000000
      [<c0141f40>] (driver_attach+0x0/0x28) from [<c0141c1c>] (bus_add_driver+0xa8/0x214)
      [<c0141b74>] (bus_add_driver+0x0/0x214) from [<c0142404>] (driver_register+0x98/0x120)
       r8:00000000 r7:00000000 r6:c0234c60 r5:c0233214 r4:c001e5c4
      [<c014236c>] (driver_register+0x0/0x120) from [<c014303c>] (platform_driver_register+0x78/0x94)
      [<c0142fc4>] (platform_driver_register+0x0/0x94) from [<c0143070>] (platform_driver_probe+0x18/0x68)
      [<c0143058>] (platform_driver_probe+0x0/0x68) from [<c001ad38>] (musb_init+0x3c/0x54)
       r5:c001e510 r4:c001e5c4
      [<c001acfc>] (musb_init+0x0/0x54) from [<c0022298>] (__exception_text_end+0x50/0x168)
      Signed-off-by: default avatarVikram Pandita <vikram.pandita@ti.com>
      Acked-by: default avatarFelipe Balbi <felipe.balbi@nokia.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      df338deb
  2. 17 Oct, 2008 20 commits
  3. 16 Oct, 2008 15 commits
  4. 14 Oct, 2008 1 commit
  5. 11 Oct, 2008 1 commit
    • Paul Walmsley's avatar
      i2c-omap: fix I2C timeouts due to recursive omap_i2c_{un,}idle() · 663715fc
      Paul Walmsley authored
      omap_i2c_unidle() and omap_i2c_idle() are called recursively during
      omap_i2c_probe().  This is evidently unexpected and will wipe
      out the I2C interrupt enable register the second time that
      omap_i2c_idle() is called consecutively.  Any I2C transactions
      following a probe of a bus with at least one device on it will then
      time out.
      
      Fix by moving omap_i2c_idle() further up in omap_i2c_probe().  Ensure
      the I2C controller is marked as idle before the probe starts.  Also
      attempt to catch future reappearances of this bug early in development
      by warning in omap_i2c_{un,}idle() when they are called recursively.
      
      Problem reported by David Brownell <david-b@pacbell.net>.
      
      Tested on 3430SDP and 2430SDP.
      Signed-off-by: default avatarPaul Walmsley <paul@pwsan.com>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: Richard Woodruff <r-woodruff2@ti.com>
      Acked-by; Steve Sakoman <steve@sakoman.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      663715fc
  6. 10 Oct, 2008 2 commits
    • Sanjeev Premi's avatar
      Enable CONFIG_GPIO_TWL4030=y · 3c013448
      Sanjeev Premi authored
      Without this option, kernel builds would fail, with
      errors similar to:
      
      hsmmc.c:50: undefined reference to `twl4030_get_gpio_datain'
      hsmmc.c:82: undefined reference to `twl4030_free_gpio'
      hsmmc.c:63: undefined reference to `twl4030_request_gpio'
      hsmmc.c:67: undefined reference to `twl4030_set_gpio_debounce'
      Signed-off-by: default avatarSanjeev Premi <premi@ti.com>
      Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
      3c013448
    • David Brownell's avatar
      twl4030-pwrirq simplification, cleanup · 62c21db8
      David Brownell authored
      I can't test the pwrbutton stuff, but rtc and musb behave...
      
      With one issue:  the usb transceiver glue misbehaves on
      startup if the device is connected.  (Again.)  I looked at
      this a bit, and I think the issue is probably caused by
      not actually using key USB registers ... IRQ trigger
      mode state transitions are at best a fragile proxy for the
      real state.
      
      (This is similar to the GPIO patch I just sent, but simpler
      except for the impact on the few drivers thinking oddly
      about IRQs.  Those patches cover the key SIH modules, and
      a similar one affects the PIH in twl4030-core.)
      
      - Dave
      
      ================================
      Streamline the "power irq" code, and some of the mechanisms
      it uses:
      
       - Support IRQ masking, not just unmasking; simpler code.
       - Use the standard handle_edge_irq() handler for these edge IRQs.
       - Use generic_handle_irq() instead of a manual expansion thereof.
       - Provide a missing spinlock for the shared data.
      
      In short, use more of the standard genirq code ... more correctly.
      
      Also, update the drivers using the "power IRQ" accordingly:
      
       - Don't request IRQF_DISABLED if the handler makes I2C calls;
         and defend against lockdep forcing it on us.
      
       - Let the irq_chip handle IRQ mask/unmask; it handles mutual
         exclusion between drivers, among other things.
      
       - (Unrelated) remove useless MODULE_ALIAS in pwrbutton.
      
      The USB transceiver driver still places some dodgey games with IRQ
      enable/disable, and IRQ trigger flags.  At least some of them seem
      like they'd be simplified by using USB transceiver registers ...
      notably, startup code, which doesn't seem to check state before
      it enters an irq-driven mode.
      
      For the moment, these drivers still (wrongly) try to configure IRQ
      trigger modes themselves ... again, that's something that an irq_chip
      handles (but not yet, for this one).
      
      NOTE:  tested (MUSB and RTC only) along with the init/retry hack
      to make twl4030-pwrirq work around the i2c-omap timeout problems.
      62c21db8