1. 09 12月, 2013 19 次提交
  2. 02 12月, 2013 13 次提交
  3. 21 11月, 2013 2 次提交
  4. 19 11月, 2013 1 次提交
  5. 18 11月, 2013 1 次提交
  6. 17 11月, 2013 1 次提交
  7. 16 11月, 2013 1 次提交
  8. 15 11月, 2013 2 次提交
    • N
      ARM: OMAP2+: omap_device: maintain sane runtime pm status around suspend/resume · 3522bf7b
      Nishanth Menon 提交于
      OMAP device hooks around suspend|resume_noirq ensures that hwmod
      devices are forced to idle using omap_device_idle/enable as part of
      the last stage of suspend activity.
      
      For a device such as i2c who uses autosuspend, it is possible to enter
      the suspend path with dev->power.runtime_status = RPM_ACTIVE.
      
      As part of the suspend flow, the generic runtime logic would increment
      it's dev->power.disable_depth to 1. This should prevent further
      pm_runtime_get_sync from succeeding once the runtime_status has been
      set to RPM_SUSPENDED.
      
      Now, as part of the suspend_noirq handler in omap_device, we force the
      following: if the device status is !suspended, we force the device
      to idle using omap_device_idle (clocks are cut etc..). This ensures
      that from a hardware perspective, the device is "suspended". However,
      runtime_status is left to be active.
      
      *if* an operation is attempted after this point to
      pm_runtime_get_sync, runtime framework depends on runtime_status to
      indicate accurately the device status, and since it sees it to be
      ACTIVE, it assumes the module is functional and returns a non-error
      value. As a result the user will see pm_runtime_get succeed, however a
      register access will crash due to the lack of clocks.
      
      To prevent this from happening, we should ensure that runtime_status
      exactly indicates the device status. As a result of this change
      any further calls to pm_runtime_get* would return -EACCES (since
      disable_depth is 1). On resume, we restore the clocks and runtime
      status exactly as we suspended with. These operations are not expected
      to fail as we update the states after the core runtime framework has
      suspended itself and restore before the core runtime framework has
      resumed.
      
      Cc: stable@vger.kernel.org # v3.4+
      Reported-by: NJ Keerthy <j-keerthy@ti.com>
      Signed-off-by: NNishanth Menon <nm@ti.com>
      Acked-by: NRajendra Nayak <rnayak@ti.com>
      Acked-by: NKevin Hilman <khilman@linaro.org>
      Reviewed-by: NFelipe Balbi <balbi@ti.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      3522bf7b
    • W
      ARM: OMAP3: Beagle: fix return value check in beagle_opp_init() · c27f2de7
      Wei Yongjun 提交于
      In case of error, the function get_cpu_device() returns NULL pointer
      not ERR_PTR(). The IS_ERR() test in the return value check should be
      replaced with NULL test.
      Signed-off-by: NWei Yongjun <yongjun_wei@trendmicro.com.cn>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      c27f2de7