Commit:     615bb29ccbe9fa06d9f33b29d9c3f51340726656
Parent:     b4f555081fdd27d13e6ff39d455d5aefae9d2c0c
Author:     Mark Lord <[EMAIL PROTECTED]>
AuthorDate: Sat Nov 3 22:04:03 2007 -0400
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Sun Nov 4 13:13:09 2007 -0800

    rtc: ignore msb when reading back mday from alarm
    I have a system here that actively relies upon RTC wake alarms, and it
    has been failing (again) for a few days when attempting to use the
    /sys/class/rtc/rtc?/wakealarm interface.
    The old (fixed by Linus) /proc/ interface still works, but I'd like to
    get it using the new one.
    This patch fixes rtc-cmos to ignore the two upper bits when reading the
    BCD mday (day of month) register from CMOS.  Some systems (eg.  mine)
    seem to have the top bit set to "1" for some reason.
    The older /proc/ interface ignores the upper bits, and so we should too.
    Signed-off-by: Mark Lord <[EMAIL PROTECTED]>
    Acked-by: David Brownell <[EMAIL PROTECTED]>
    Cc: Alessandro Zummo <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
 drivers/rtc/rtc-cmos.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index e3fe83a..29cf145 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -120,7 +120,8 @@ static int cmos_read_alarm(struct device *dev, struct 
rtc_wkalrm *t)
        t->time.tm_hour = CMOS_READ(RTC_HOURS_ALARM);
        if (cmos->day_alrm) {
-               t->time.tm_mday = CMOS_READ(cmos->day_alrm);
+               /* ignore upper bits on readback per ACPI spec */
+               t->time.tm_mday = CMOS_READ(cmos->day_alrm) & 0x3f;
                if (!t->time.tm_mday)
                        t->time.tm_mday = -1;
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to