1. 29 Aug, 2011 5 commits
  2. 27 Aug, 2011 1 commit
  3. 26 Aug, 2011 1 commit
  4. 25 Aug, 2011 1 commit
  5. 24 Aug, 2011 1 commit
    • Magnus Damm's avatar
      ARM: mach-shmobile: sh7372 LCDC1 suspend fix · 5c3f96b2
      Magnus Damm authored
      Associate the HDMI clock together with LCDC1 on sh7372.
      
      Without this patch Suspend-to-RAM hangs on the boards
      AP4EVB and Mackerel. The code hangs in the LCDC driver
      where the software is waiting forever for the hardware to
      power down. By explicitly associating the HDMI clock with
      LCDC1 we can make sure the HDMI clock is enabled using
      Runtime PM whenever the driver is accessing the hardware.
      
      This HDMI and LCDC1 dependency is documented in the sh7372
      data sheet. Older kernels did work as expected but the
      recently merged (3.1-rc)
      
       794d78fe drivers: sh: late disabling of clocks V2
      
      introduced code to turn off clocks lacking software reference
      which happens to include the HDMI clock that is needed by
      LCDC1 to operate as expected.
      Signed-off-by: default avatarMagnus Damm <damm@opensource.se>
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      5c3f96b2
  6. 10 Aug, 2011 16 commits
  7. 09 Aug, 2011 4 commits
  8. 08 Aug, 2011 4 commits
  9. 07 Aug, 2011 3 commits
  10. 05 Aug, 2011 4 commits
    • Colin Cross's avatar
      OMAP2+: PM: SmartReflex: use put_sync_suspend for IRQ-safe disabling · 98333b3d
      Colin Cross authored
      omap_sr_disable_reset_volt is called with irqs off in omapx_enter_sleep,
      as part of idle sequence, this eventually calls sr_disable and
      pm_runtime_put_sync. pm_runtime_put_sync calls rpm_idle, which will
      enable interrupts in order to call the callback. In this short interval
      when interrupts are enabled, scenarios such as the following can occur:
      while interrupts are enabled, the timer interrupt that is supposed to
      wake the device out of idle occurs and is acked, so when the CPU finally
      goes to off, the timer is already gone, missing a wakeup event.
      
      Further, as the documentation for runtime states:"
       However, subsystems can use the pm_runtime_irq_safe() helper function
       to tell the PM core that a device's ->runtime_suspend() and ->runtime_resume()
       callbacks should be invoked in atomic context with interrupts disabled
       (->runtime_idle() is still invoked the default way)."
      
      Hence, replace pm_runtime_put_sync with pm_runtime_put_sync_suspend
      to invoke the suspend handler and shut off the fclk for SmartReflex
      module instead of using the idle handler in interrupt disabled context.
      Signed-off-by: default avatarNishanth Menon <nm@ti.com>
      Signed-off-by: default avatarColin Cross <ccross@google.com>
      [khilman@ti.com: minor Subject edits]
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      98333b3d
    • Kevin Hilman's avatar
      OMAP3: beagle: don't touch omap_device internals · 8c7f6594
      Kevin Hilman authored
      Board code should not touch omap_device internals.  To get the MPU/IVA devices,
      use existing APIs: omap2_get_mpu_device(), omap2_get_iva_device().
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      8c7f6594
    • Kevin Hilman's avatar
      OMAP1: enable GENERIC_IRQ_CHIP · b66a4026
      Kevin Hilman authored
      OMAP1 needs this also since GPIO driver (common for all OMAPs) is
      being converted to use generic IRQ chip.
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      b66a4026
    • Nishanth Menon's avatar
      OMAP3+: SR: ensure pm-runtime callbacks can be invoked with IRQs disabled · e13d8f38
      Nishanth Menon authored
      SmartReflex should be disabled while entering low power mode due to
      a) SmartReflex values are not defined for retention voltage, further
      b) with SmartReflex enabled, if CPU enters lower c-states, FSM will try
      to bump the voltage to current OPP's voltage for which it has entered c-state;
      hence SmartReflex needs to be disabled for MPU, CORE and IVA voltage
      domains in idle path before enabling auto retention voltage achievement
      on the device.
      
      However, since the current pm_runtime setup for SmartReflex devices are
      setup to allow callbacks to be invoked with interrupts enabled, calling
      SmartReflex enable/disable from other contexts such as idle paths
      where preemption is disabled causes warnings such as the following
      indicating of a potential race.
      [   82.023895] [<c04d079c>] (__irq_svc+0x3c/0x120) from [<c04d0484>] (_raw_spin_unlock_irq+0x28/0x2c)
      [   82.023895] [<c04d0484>] (_raw_spin_unlock_irq+0x28/0x2c) from [<c0323234>] (rpm_callback+0x4c/0x68)
      [   82.023956] [<c0323234>] (rpm_callback+0x4c/0x68) from [<c0323f7c>] (rpm_resume+0x338/0x53c)
      [   82.023956] [<c0323f7c>] (rpm_resume+0x338/0x53c) from [<c03243f4>] (__pm_runtime_resume+0x48/0x60)
      [   82.023986] [<c03243f4>] (__pm_runtime_resume+0x48/0x60) from [<c008aee0>] (sr_enable+0xa8/0x19c)
      [   82.023986] [<c008aee0>] (sr_enable+0xa8/0x19c) from [<c008b2fc>] (omap_sr_enable+0x50/0x90)
      [   82.024017] [<c008b2fc>] (omap_sr_enable+0x50/0x90) from [<c00888c0>] (omap4_enter_sleep+0x138/0x168)
      
      Instead, we use pm_runtime_irq_safe to tell the PM core that callbacks can be
      invoked in interrupt disabled contexts.
      Acked-by: default avatarRajendra Nayak <rnayak@ti.com>
      Signed-off-by: default avatarNishanth Menon <nm@ti.com>
      [khilman@ti.com: minor changelog edits]
      Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
      e13d8f38