]> err.no Git - linux-2.6/blobdiff - drivers/acpi/sleep/proc.c
rtc: fix CMOS time error after writing /proc/acpi/alarm
[linux-2.6] / drivers / acpi / sleep / proc.c
index 224c57c0338106e2d283f1b811de2bdd66b74b7f..4ebbba2b6b194f4f6c6532ad698d9a0582e2519f 100644 (file)
@@ -315,8 +315,11 @@ acpi_system_write_alarm(struct file *file,
                cmos_bcd_write(day, acpi_gbl_FADT.day_alarm, rtc_control);
        if (acpi_gbl_FADT.month_alarm)
                cmos_bcd_write(mo, acpi_gbl_FADT.month_alarm, rtc_control);
-       if (acpi_gbl_FADT.century)
+       if (acpi_gbl_FADT.century) {
+               if (adjust)
+                       yr += cmos_bcd_read(acpi_gbl_FADT.century, rtc_control) * 100;
                cmos_bcd_write(yr / 100, acpi_gbl_FADT.century, rtc_control);
+       }
        /* enable the rtc alarm interrupt */
        rtc_control |= RTC_AIE;
        CMOS_WRITE(rtc_control, RTC_CONTROL);