1. 23 12月, 2011 1 次提交
  2. 09 12月, 2011 1 次提交
  3. 23 11月, 2011 2 次提交
    • A
      rtc: Fix some bugs that allowed accumulating time drift in suspend/resume · 6a8943d9
      Arve Hjønnevåg 提交于
      The current code checks if abs(delta_delta.tv_sec) is greater or
      equal to two before it discards the old delta value, but this can
      trigger at close to -1 seconds since -1.000000001 seconds is stored
      as tv_sec -2 and tv_nsec 999999999 in a normalized timespec.
      
      rtc_resume had an early return check if the rtc value had not changed
      since rtc_suspend. This effectivly stops time for the duration of the
      short sleep. Check if sleep_time is positive after all the adjustments
      have been applied instead since this allows the old_system adjustment
      in rtc_suspend to have an effect even for short sleep cycles.
      
      CC: stable@kernel.org
      Signed-off-by: NArve Hjønnevåg <arve@android.com>
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      6a8943d9
    • R
      rtc: Disable the alarm in the hardware · c0afabd3
      Rabin Vincent 提交于
      Currently, the RTC code does not disable the alarm in the hardware.
      
      This means that after a sequence such as the one below (the files are in the
      RTC sysfs), the box will boot up after 2 minutes even though we've
      asked for the alarm to be turned off.
      
      	# echo $((`cat since_epoch`)+120) > wakealarm
      	# echo 0 > wakealarm
      	# poweroff
      
      Fix this by disabling the alarm when there are no timers to run.
      
      Cc: stable@kernel.org
      Cc: John Stultz <john.stultz@linaro.org>
      Signed-off-by: NRabin Vincent <rabin.vincent@stericsson.com>
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      c0afabd3
  4. 15 11月, 2011 1 次提交
  5. 12 11月, 2011 1 次提交
    • F
      vrtc: change its year offset from 1960 to 1972 · 57e6319d
      Feng Tang 提交于
      Real world year equals the value in vrtc YEAR register plus an offset.
      We used 1960 as the offset to make leap year consistent, but for a
      device's first use, its YEAR register is 0 and the system year will
      be parsed as 1960 which is not a valid UNIX time and will cause many
      applications to fail mysteriously. So we use 1972 instead to fix this
      issue.
      
      Updated patch which adds a sanity check suggested by Mathias
      
      This isn't a change in behaviour for systems, because 1972 is the one we
      actually use. It's the old version in upstream which is out of sync with
      all devices.
      Signed-off-by: NFeng Tang <feng.tang@intel.com>
      Signed-off-by: NAlan Cox <alan@linux.intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      57e6319d
  6. 03 11月, 2011 3 次提交
  7. 02 11月, 2011 1 次提交
  8. 01 11月, 2011 1 次提交
  9. 15 9月, 2011 2 次提交
  10. 27 8月, 2011 2 次提交
    • T
      rtc: twl: Fix registration vs. init order · 7e72c686
      Todd Poynor 提交于
      Only register as an RTC device after the hardware has been
      successfully initialized.  The RTC class driver will call
      back to this driver to read a pending alarm, and other
      drivers watching for new devices on the RTC class may
      read the RTC time upon registration.  Such access might
      occur while the RTC is stopped, prior to clearing
      pending alarms, etc.
      
      The new ordering also avoids leaving the platform
      device drvdata set to an unregistered struct rtc_device *
      on probe errors.
      Signed-off-by: NTodd Poynor <toddpoynor@google.com>
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      7e72c686
    • M
      rtc: Initialized rtc_time->tm_isdst · a7402deb
      Mike Waychison 提交于
      Even though the Linux kernel does not use the tm_isdst field, it is
      exposed as part of the ABI.  This field can accidentally be left
      initialized, which is why we currently memset buffers returned to
      userland in rtc_read_time.
      
      There is a case however where the field can return garbage from the
      stack though when using the RTC_ALM_READ ioctl on the rtc device.  This
      ioctl invokes rtc_read_alarm, which is careful to memset the rtc_wkalrm
      buffer that is copied to userland, but it then uses a struct copy to
      assign to alarm->time given the return value from rtc_ktime_to_tm().
      
      rtc_ktime_to_tm() is implemented by calling rtc_time_to_tm using a
      derivative seconds counds from ktime, but rtc_time_to_tm does not assign
      a value to ->tm_isdst.  This results in garbage from rtc_ktime_to_tm()'s
      frame ending up being copied out to userland as part of the returned
      rtc_wkalrm.
      
      Fix this by initializing rtc_time->tm_isdst to 0 in rtc_time_to_tm.
      Signed-off-by: NMike Waychison <mikew@google.com>
      Signed-off-by: NJohn Stultz <john.stultz@linaro.org>
      a7402deb
  11. 26 8月, 2011 2 次提交
  12. 11 8月, 2011 4 次提交
  13. 04 8月, 2011 1 次提交
  14. 27 7月, 2011 6 次提交
  15. 26 7月, 2011 5 次提交
  16. 02 7月, 2011 6 次提交
  17. 28 6月, 2011 1 次提交