1. 21 12月, 2013 12 次提交
  2. 19 12月, 2013 1 次提交
  3. 16 12月, 2013 12 次提交
  4. 12 12月, 2013 3 次提交
  5. 02 12月, 2013 2 次提交
  6. 21 11月, 2013 2 次提交
  7. 19 11月, 2013 1 次提交
  8. 18 11月, 2013 1 次提交
  9. 17 11月, 2013 1 次提交
  10. 16 11月, 2013 1 次提交
  11. 15 11月, 2013 4 次提交
    • 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
    • J
      ARM: at91: fix hanged boot due to early rtt-interrupt · 94c4c79f
      Johan Hovold 提交于
      Make sure the RTT-interrupts are masked at boot by adding a new helper
      function to be used at SOC-init.
      
      This fixes hanged boot on all AT91 SOCs with an RTT, for example, if an
      RTT-alarm goes off after a non-clean shutdown (e.g. when using RTC
      wakeup).
      
      The RTC and RTT-peripherals are powered by backup power (VDDBU) (on all
      AT91 SOCs but RM9200) and are not reset on wake-up, user, watchdog or
      software reset. This means that their interrupts may be enabled during
      early boot if, for example, they where not disabled during a previous
      shutdown (e.g. due to a buggy driver or a non-clean shutdown such as a
      user reset). Furthermore, an RTC or RTT-alarm may also be active.
      
      The RTC and RTT-interrupts use the shared system-interrupt line, which
      is also used by the PIT, and if an interrupt occurs before a handler
      (e.g. RTC-driver) has been installed this leads to the system interrupt
      being disabled and prevents the system from booting.
      
      Note that when boot hangs due to an early RTC or RTT-interrupt, the only
      way to get the system to start again is to remove the backup power (e.g.
      battery) or to disable the interrupt manually from the bootloader. In
      particular, a user reset is not sufficient.
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Cc: stable@vger.kernel.org # 3.11.x
      94c4c79f
    • J
      ARM: at91: fix hanged boot due to early rtc-interrupt · 6de714c2
      Johan Hovold 提交于
      Make sure the RTC-interrupts are masked at boot by adding a new helper
      function to be used at SOC-init.
      
      This fixes hanged boot on all AT91 SOCs with an RTC (but RM9200), for
      example, after a reset during an RTC-update or if an RTC-alarm goes off
      after shutdown (e.g. when using RTC wakeup).
      
      The RTC and RTT-peripherals are powered by backup power (VDDBU) (on all
      AT91 SOCs but RM9200) and are not reset on wake-up, user, watchdog or
      software reset. This means that their interrupts may be enabled during
      early boot if, for example, they where not disabled during a previous
      shutdown (e.g. due to a buggy driver or a non-clean shutdown such as a
      user reset). Furthermore, an RTC or RTT-alarm may also be active.
      
      The RTC and RTT-interrupts use the shared system-interrupt line, which
      is also used by the PIT, and if an interrupt occurs before a handler
      (e.g. RTC-driver) has been installed this leads to the system interrupt
      being disabled and prevents the system from booting.
      
      Note that when boot hangs due to an early RTC or RTT-interrupt, the only
      way to get the system to start again is to remove the backup power (e.g.
      battery) or to disable the interrupt manually from the bootloader. In
      particular, a user reset is not sufficient.
      Signed-off-by: NJohan Hovold <jhovold@gmail.com>
      Signed-off-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Cc: stable@vger.kernel.org # 3.11.x
      6de714c2