The patch titled
Fix /proc/acpi/alarm to work with BCD alarm encodings (AWARD BIOS)
has been added to the -mm tree. Its filename is
fix-proc-acpi-alarm-to-work-with-bcd-alarm-encodings-award.patch
*** Remember to use Documentation/SubmitChecklist when testing your code ***
See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this
------------------------------------------------------
Subject: Fix /proc/acpi/alarm to work with BCD alarm encodings (AWARD BIOS)
From: Mark Lord <[EMAIL PROTECTED]>
My Foxconn motherboard has ICH8 + AWARD BIOS. The BIOS seems to prefer to
maintain the RTC alarm in BCD format rather than binary.
The existing code in linux/drivers/acpi/sleep/proc.c has a nasty bug that
prevents BCD mode from working: the code converts binary to BCD three times
in a row, each time taking the previous result. This thoroughly mangles
the alarm timestamp, and never worked.
The patch below fixes it, by removing the first two (bogus) conversions,
and leaving only the final conversion in place. Tested & working on my
system here.
Note for future enhancement: fix the code to either handle 12-hour mode (as
opposed to the more sensible 24-hour mode) timekeeping, or at least have it
complain loudly when 12-hour mode is detected.
Signed-off-by: Mark Lord <[EMAIL PROTECTED]>
Cc: David Brownell <[EMAIL PROTECTED]>
Cc: Len Brown <[EMAIL PROTECTED]>
Cc: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
drivers/acpi/sleep/proc.c | 17 -----------------
1 file changed, 17 deletions(-)
diff -puN
drivers/acpi/sleep/proc.c~fix-proc-acpi-alarm-to-work-with-bcd-alarm-encodings-award
drivers/acpi/sleep/proc.c
---
a/drivers/acpi/sleep/proc.c~fix-proc-acpi-alarm-to-work-with-bcd-alarm-encodings-award
+++ a/drivers/acpi/sleep/proc.c
@@ -258,14 +258,6 @@ acpi_system_write_alarm(struct file *fil
spin_lock_irq(&rtc_lock);
rtc_control = CMOS_READ(RTC_CONTROL);
- if (!(rtc_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
- BIN_TO_BCD(yr);
- BIN_TO_BCD(mo);
- BIN_TO_BCD(day);
- BIN_TO_BCD(hr);
- BIN_TO_BCD(min);
- BIN_TO_BCD(sec);
- }
if (adjust) {
yr += CMOS_READ(RTC_YEAR);
@@ -278,15 +270,6 @@ acpi_system_write_alarm(struct file *fil
spin_unlock_irq(&rtc_lock);
- if (!(rtc_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
- BCD_TO_BIN(yr);
- BCD_TO_BIN(mo);
- BCD_TO_BIN(day);
- BCD_TO_BIN(hr);
- BCD_TO_BIN(min);
- BCD_TO_BIN(sec);
- }
-
if (sec > 59) {
min++;
sec -= 60;
_
Patches currently in -mm which might be from [EMAIL PROTECTED] are
fix-proc-acpi-alarm-to-work-with-bcd-alarm-encodings-award.patch
-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html