linux/arch
James Hogan 106eccb4d2 MIPS: Malta: Don't reinitialise RTC
On Malta, since commit a87ea88d8f ("MIPS: Malta: initialise the RTC at
boot"), the RTC is reinitialised and forced into binary coded decimal
(BCD) mode during init, even if the bootloader has already initialised
it, and may even have already put it into binary mode (as YAMON does).
This corrupts the current time, can result in the RTC seconds being an
invalid BCD (e.g. 0x1a..0x1f) for up to 6 seconds, as well as confusing
YAMON for a while after reset, enough for it to report timeouts when
attempting to load from TFTP (it actually uses the RTC in that code).

Therefore only initialise the RTC to the extent that is necessary so
that Linux avoids interfering with the bootloader setup, while also
allowing it to estimate the CPU frequency without hanging, without a
bootloader necessarily having done anything with the RTC (for example
when the kernel is loaded via EJTAG).

The divider control is configured for a 32KHZ reference clock if
necessary, and the SET bit of the RTC_CONTROL register is cleared if
necessary without changing any other bits (this bit will be set when
coming out of reset if the battery has been disconnected).

Fixes: a87ea88d8f ("MIPS: Malta: initialise the RTC at boot")
Signed-off-by: James Hogan <james.hogan@imgtec.com>
Reviewed-by: Paul Burton <paul.burton@imgtec.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Maciej W. Rozycki <macro@linux-mips.org>
Cc: linux-mips@linux-mips.org
Cc: <stable@vger.kernel.org> # 3.14+
Patchwork: https://patchwork.linux-mips.org/patch/10739/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2015-08-03 09:25:07 +02:00
..
alpha mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
arc mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
arm ARM: SoC fixes 2015-08-02 09:12:46 -07:00
arm64 dmaengine fixes for 4.2-rc5 2015-08-01 12:47:04 -07:00
avr32 avr32: handle NULL as a valid clock object 2015-07-27 09:14:07 +02:00
blackfin mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
c6x mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
cris mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
frv mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
h8300 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
hexagon mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
ia64 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
m32r m32r: Add ioreadXX/iowriteXX big-endian mmio accessors 2015-07-23 18:08:28 -07:00
m68k mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
metag mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
microblaze mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
mips MIPS: Malta: Don't reinitialise RTC 2015-08-03 09:25:07 +02:00
mn10300 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
nios2 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
openrisc mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
parisc parisc: mm: Fix a memory leak related to pmd not attached to the pgd 2015-07-19 08:56:14 +02:00
powerpc powerpc/eeh-powernv: Fix unbalanced IRQ warning 2015-07-30 19:01:32 +10:00
s390 s390/cachinfo: add missing facility check to init_cache_level() 2015-07-28 08:54:42 +02:00
score mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
sh mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
sparc mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
tile tile: use free_bootmem_late() for initrd 2015-07-23 14:11:09 -04:00
um mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
unicore32 mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
x86 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-08-01 09:16:33 -07:00
xtensa mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
.gitignore
Kconfig x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT and use it on x86 2015-07-18 03:42:51 +02:00