Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MIPS: generic: Set RTC_ALWAYS_BCD to 0

Drivers for the mc146818 RTC generally check control registers to
determine whether a value is encoded as binary or as a binary coded
decimal. Setting RTC_ALWAYS_BCD to 1 effectively bypasses these checks
and causes drivers to always expect binary coded decimal values,
regardless of control register values.

This does not seem like a sane default - defaulting to 0 allows the
drivers to check control registers to determine encoding type & allows
the driver to work generically with both binary & BCD encodings. Set
this in mach-generic/mc146818rtc.h such that the generic kernel, or
platforms which don't provide a custom mc146818rtc.h, can have an RTC
driver which works with both encodings.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/16185/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

authored by

Paul Burton and committed by
Ralf Baechle
ae7ce6b1 e889dfca

+1 -1
+1 -1
arch/mips/include/asm/mach-generic/mc146818rtc.h
··· 27 27 outb_p(data, RTC_PORT(1)); 28 28 } 29 29 30 - #define RTC_ALWAYS_BCD 1 30 + #define RTC_ALWAYS_BCD 0 31 31 32 32 #ifndef mc146818_decode_year 33 33 #define mc146818_decode_year(year) ((year) < 70 ? (year) + 2000 : (year) + 1900)