1. 05 7月, 2008 3 次提交
    • M
      rtc-x1205: Fix alarm set · 471d47e3
      Michael Hamel 提交于
      I have discovered that the current version of rtc-x1205.c does not work
      correctly when asked to set the alarm time by the RTC_WKALM_SET ioctl()
      call.  This happens because the alarm registers do not behave like the
      current-time registers.  They are non-volatile.  Two things go wrong:
      
      - the X1205 requires a 10 msec delay after any attempt to write to the
        non-volatile registers.  The x1205_set_datetime() routine does the write
        as 8 single-byte writes without any delay.  Only the first write
        succeeds.  The second is NAKed because the chip is busy.
      
      - the X1205 resets the RWEL bit after any write to the non-volatile
        registers.  This would lock out any further writes after the first even
        with a 10msec delay.
      
      I fix this by doing a single 8-byte write and then waiting 10msec for the
      chip to be ready.  A side effect of this change is that it will speed up
      x1205_rtc_set_time() which uses the same code.
      
      I have also implemented the 'enable' bit in the rtc_wkalm structure, which
      the existing driver does not attempt to do.  I have modified both
      x1205_rtc_set_alarm() to set the AL0E bit, and x1205_rtc_read_alarm() to
      return it.
      
      I have tested this patch on a LinkSys NSLU2 under OpenWRT, but on no other
      hardware.  On the NSLU2 the X1205 correctly asserts its IRQ pin when the
      alarm time matches the current time.
      
      [akpm@linux-foundation.org: clean up over-parenthesisation]
      Signed-off-by: NMichael Hamel <mhamel@adi.co.nz>
      Signed-off-by: NAlessandro Zummo <a.zummo@towertech.it>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      471d47e3
    • G
      serial: fix serial_match_port() for dynamic major tty-device numbers · 7ca796f4
      Guennadi Liakhovetski 提交于
      As reported by Vipul Gandhi, the current serial_match_port() doesn't work
      for tty-devices using dynamic major number allocation.  Fix it.
      
      It oopses if you suspend a serial port with _dynamic_ major number.  ATM,
      I think, there's only the drivers/serial/jsm/jsm_driver.c driver, that
      does it in-tree.
      Signed-off-by: NGuennadi Liakhovetski <g.liakhovetski@gmx.de>
      Tested-by: NVipul Gandhi <vcgandhi1@aol.com>
      Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      7ca796f4
    • D
      rtc: rtc_read_alarm() handles wraparound · a01cc657
      David Brownell 提交于
      While 0e36a9a4 ("rtc: fix readback from
      /sys/class/rtc/rtc?/wakealarm") made sure that active alarms were never
      returned with invalid "wildcard" fields (negative), it can still report
      (wrongly) that the alarm triggers in the past.
      
      Example, if it's now 10am, an alarm firing at 5am will be triggered
      TOMORROW not today.  (Which may also be next month or next year...)
      
      This updates that alarm handling in three ways:
      
        * Handle alarm rollover in the common cases of RTCs that don't
          support matching on all date fields.
      
        * Skip the invalid-field logic when it's not needed.
      
        * Minor bugfix ... tm_isdst should be ignored, it's one of the
          fields Linux doesn't maintain.
      
      A warning is emitted for some of the unhandled rollover cases, but the
      possible combinations are a bit too numerous to handle every bit of
      potential hardware and firmware braindamage.
      Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
      Cc: Mark Lord <lkml@rtr.ca>
      Acked-by: NAlessandro Zummo <a.zummo@towertech.it>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      a01cc657
  2. 04 7月, 2008 17 次提交
  3. 03 7月, 2008 5 次提交
  4. 02 7月, 2008 3 次提交
  5. 01 7月, 2008 8 次提交
  6. 30 6月, 2008 1 次提交
  7. 28 6月, 2008 3 次提交