Commit Graph

135 Commits

Author SHA1 Message Date
Anton Vorontsov 0d7b101404 [WATCHDOG] mpc8xxx_wdt: add support for MPC8xx watchdogs
The mpc8xxx_wdt driver is using two registers: SWSRR to push magic
numbers, and SWCRR to control the watchdog.  Both registers are available
on the MPC8xx, and seem to have the same offsets and semantics as in
MPC83xx/MPC86xx watchdogs.  The only difference is prescale value.  So
this driver simply works on the MPC8xx CPUs.

One quirk is needed for the MPC8xx, though.  It has small prescale value
and slow CPU, so the watchdog resets board prior to the driver has time to
load.  To solve this we should split initialization in two steps: start
ping the watchdog early, and register the watchdog userspace interface
later.

MPC823 seem to be the first CPU in MPC8xx line, so we use fsl,mpc823-wdt
compatible matching.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Tested-by: Jochen Friedrich <jochen@scram.de>
Cc: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2008-08-06 13:08:47 +00:00
Anton Vorontsov cb55d282a0 [WATCHDOG] mpc8xxx_wdt: fix build
CC      drivers/watchdog/mpc8xxx_wdt.o
drivers/watchdog/mpc8xxx_wdt.c: In function 'mpc8xxx_wdt_ioctl':
drivers/watchdog/mpc8xxx_wdt.c:156: error: 'cmd' undeclared (first use in this function)
drivers/watchdog/mpc8xxx_wdt.c:156: error: (Each undeclared identifier is reported only once
drivers/watchdog/mpc8xxx_wdt.c:156: error: for each function it appears in.)
drivers/watchdog/mpc8xxx_wdt.c: At top level:
drivers/watchdog/mpc8xxx_wdt.c:176: warning: initialization from incompatible pointer type

This patch ought to be folded into
mpc8xxx_wdt-various-renames-mostly-s-mpc83xx-mpc8xxx-g.patch

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2008-08-06 13:07:32 +00:00
Anton Vorontsov 59ca1b0d14 [WATCHDOG] mpc8xxx_wdt: various renames, mostly s/mpc83xx/mpc8xxx/g
mpc83xx_wdt.c renamed to mpc8xxx_wdt.c, now we can do various renames in
the file itself.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2008-08-06 13:07:06 +00:00
Anton Vorontsov 28acd02f9f [WATCHDOG] mpc83xx_wdt: rename to mpc8xxx_wdt
Rename the driver because now we support some MPC86xx processors.

There are no changes to the mpc83xx_wdt.c file, yet.  When possible, we do
file renames and changes separately (because Linus once asked so, because
it helps git to track the renamed files).

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2008-08-06 13:06:25 +00:00
Anton Vorontsov 500c919e3d [WATCHDOG] mpc83xx_wdt: add support for MPC86xx CPUs
On MPC86xx the watchdog could be enabled only at power-on-reset, and could
not be disabled afterwards.  We must ping the watchdog from the kernel
until the userspace handles it.

MPC83xx CPUs are only differ in a way that watchdog could be disabled
once, but after it was enabled via software it becomes just the same as
MPC86xx.

Thus, to support MPC86xx I added the kernel timer which pings the watchdog
until the userspace opens it.

Since we implemented the timer, now we're able to implement proper
handling for the CONFIG_WATCHDOG_NOWAYOUT case, for MPC83xx and MPC86xx.

Also move the probe code into subsys_initcall, because we want start
pinging the watchdog ASAP, and misc devices are available in
subsys_initcall.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Cc: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2008-08-06 13:05:12 +00:00
Anton Vorontsov ef8ab12ec2 [WATCHDOG] mpc83xx_wdt: convert to the OF platform driver
This patch simply converts mpc83xx_wdt to the OF platform driver so we can
directly work with the device tree without passing various stuff through
platform data.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2008-08-06 13:04:26 +00:00
Alan Cox c948852051 [WATCHDOG] pcwd: a couple of watchdogs escaped conversion
Fix them up.  Once we know the long term plan the watchdogs can all get
shrunk massively anyway

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2008-08-06 13:03:11 +00:00
Wim Van Sebroeck 089ab0791d [WATCHDOG] Clean-up includes
Use #include <linux/io.h> instead of <asm/io.h>
Use #include <linux/uaccess.h> instead of <asm/uaccess.h>
Clean-up includes.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-08-06 13:02:16 +00:00
Wim Van Sebroeck 9e74114d96 [WATCHDOG] hpwdt.c - fix double includes
The last clean-up created 2 times the same include. delete the doubles.

Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-08-06 12:31:52 +00:00
Wim Van Sebroeck 96e2e6fafa [WATCHDOG] Merge code clean-up's from Alan Cox.
Merge branch 'alan' of ../linux-2.6-watchdog-mm
Fixed Conflicts in the following files:
	drivers/watchdog/booke_wdt.c
	drivers/watchdog/mpc5200_wdt.c
	drivers/watchdog/sc1200wdt.c

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-08-06 11:58:26 +00:00
Alan Cox 103a1d5c57 sc1200 watchdog driver: Fix locking, sems and coding style
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-08-04 17:12:08 -07:00
Andrew Morton 81830061bb alpha: Fix breakage in wdt_pci
drivers/watchdog/wdt_pci.c: In function 'wdtpci_ctr_mode':
drivers/watchdog/wdt_pci.c:120: error: implicit declaration of function 'udelay'
{standard input}: Assembler messages:

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-08-04 17:12:07 -07:00
Alan Cox 9f2d1f0da7 wdt: Cleanup and sort out locking and inb_p
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-08-04 17:12:07 -07:00
Alan Cox 41dc8b72e3 s3c2410_wdt watchdog driver: Locking and coding style
Kill off use of semaphores.
Fix ioctl races and locking holes.

From: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-08-04 17:12:07 -07:00
Alan Cox d6547378df it8712f_wdt: Locking and coding style
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-08-04 17:12:07 -07:00
Alan Cox 670d59c0ae ar7_wdt watchdog driver: Fix locking
Use unlocked_ioctl
Remove semaphores

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-08-04 17:12:07 -07:00
Alexey Dobriyan d667b6ddbc hpwdt: don't use static flags
Static (read: global) is potential problem.  Two threads can corrupt each
other's interrupt status, better avoid this.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Wim Van Sebroeck <wim@iguana.be>
Cc: Thomas Mingarelli <thomas.mingarelli@hp.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-07-30 09:41:45 -07:00
Adrian Bunk f606ddf42f remove the v850 port
Trying to compile the v850 port brings many compile errors, one of them exists
since at least kernel 2.6.19.

There also seems to be noone willing to bring this port back into a usable
state.

This patch therefore removes the v850 port.

If anyone ever decides to revive the v850 port the code will still be
available from older kernels, and it wouldn't be impossible for the port to
reenter the kernel if it would become actively maintained again.

Signed-off-by: Adrian Bunk <bunk@kernel.org>
Acked-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-07-24 10:47:24 -07:00
Benjamin Herrenschmidt 84c3d4aaec Merge commit 'origin/master'
Manual merge of:

	arch/powerpc/Kconfig
	arch/powerpc/kernel/stacktrace.c
	arch/powerpc/mm/slice.c
	arch/ppc/kernel/smp.c
2008-07-16 11:07:59 +10:00
Ingo Molnar f6f88e9bfb generic-ipi: more merge fallout
fix more API change fallout in recently merged upstream changes.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-07-15 22:08:52 +02:00
Stephen Rothwell 75195dabce powerpc/mpc5200_wdt: use linux/of_platform.h instead of asm
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
2008-07-12 12:10:53 -06:00
Wim Van Sebroeck 63842cccb2 Revert "[WATCHDOG] hpwdt: Add CFLAGS to get driver working"
After Linus fixed the inline assembly, the CFLAGS option is not
needed anymore.

Signed-off-by: Thomas Mingarelli <Thomas.Mingarelli@hp.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-24 13:09:26 +00:00
Alan Cox 7c4be5aa8d [WATCHDOG 57/57] wdt501/pci: Clean up, coding style and switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 20:09:22 +00:00
Alan Cox f2b79c6ede [WATCHDOG 56/57] wdt977: clean up, coding style and switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 20:07:12 +00:00
Alan Cox d0e58eed05 [WATCHDOG 55/57] wdt285: switch to unlocked_ioctl and tidy up oddments of coding style
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 20:04:09 +00:00
Alan Cox dae67a2835 [WATCHDOG 54/57] wdrtas: clean up, coding style, switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 20:02:25 +00:00
Alan Cox 694b16b2bd [WATCHDOG 53/57] wafer5823wdt: Clean up, coding style, switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 19:59:31 +00:00
Alan Cox 84af401af8 [WATCHDOG 52/57] w83977f_wdt: clean up, coding style and switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 19:57:08 +00:00
Alan Cox c1cfd1a2ff [WATCHDOG 51/57] w83877f_wdt: clean up code, coding style, switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 19:55:51 +00:00
Alan Cox c1c8dd39f5 [WATCHDOG 50/57] w83697hf_wdt: cleanup, coding style and switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 19:53:43 +00:00
Alan Cox 46a3949ddc [WATCHDOG 49/57] w83627hf: coding style, clean up and switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 16:17:43 +00:00
Alan Cox 8dc244f7de [WATCHDOG 48/57] txx9: Fix locking, switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 16:15:57 +00:00
Alan Cox f92d3749d7 [WATCHDOG 47/57] softdog: clean up, coding style and switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 15:40:42 +00:00
Alan Cox 598467938d [WATCHDOG 46/57] smsc37b787_wdt: coding style, switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 15:39:12 +00:00
Alan Cox 70b814ec1a [WATCHDOG 45/57] shwdt: coding style, cleanup, switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 15:37:26 +00:00
Alan Cox 9b748ed03c [WATCHDOG 44/57] scx200_wdt: clean up and switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 15:35:02 +00:00
Alan Cox ff94806057 [WATCHDOG 43/57] sc520_wdt: Clean up and switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 15:30:57 +00:00
Alan Cox d14bccaada [WATCHDOG 42/57] sc1200_wdt: clean up, fix locking and use unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 15:08:00 +00:00
Alan Cox df3c9de3de [WATCHDOG 41/57] sb_wdog: Clean up and switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 14:57:12 +00:00
Alan Cox f4f6f65a55 [WATCHDOG 40/57] sbc_epx_c3_wdt: switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 14:46:05 +00:00
Alan Cox 9f53c8de1a [WATCHDOG 39/57] sbc8360: clean up
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 14:42:05 +00:00
Alan Cox 619a8a2bb1 [WATCHDOG 38/57] stg7240_wdt: unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 14:39:38 +00:00
Alan Cox 1780de4140 [WATCHDOG 37/57] sbc60xxwdt: clean up and switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 14:24:34 +00:00
Alan Cox f19e031265 [WATCHDOG 36/57] sa1100_wdt: Switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 14:22:30 +00:00
Alan Cox edef7a93f9 [WATCHDOG 35/57] s3c2410: watchdog cleanup and switch to unlocked_ioctl
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 14:10:15 +00:00
Alan Cox 72d5c0505b [WATCHDOG 34/57] rm9k_wdt: clean up
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 14:01:31 +00:00
Alan Cox 84ca995c25 [WATCHDOG 33/57] pnx4008_wdt: unlocked_ioctl setup
Review and switch to unlocked_ioctl

Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-21 12:19:03 +00:00
Linus Torvalds 1f6ef23429 [watchdog] hpwdt: fix use of inline assembly
The inline assembly in drivers/watchdog/hpwdt.c was incredibly broken,
and included all the function prologue and epilogue stuff, even though
it was itself then inside a C function where the compiler would add its
own prologue and epilogue on top of it all.

This then just _happened_ to work if you had exactly the right compiler
version and exactly the right compiler flags, so that gcc just happened
to not create any prologue at all (the gcc-generated epilogue wouldn't
matter, since it would never be reached).

But the more proper way to fix it is to simply not do this.  Move the
inline asm to the top level, with no surrounding function at all (the
better alternative would be to remove the prologue and make it actually
use proper description of the arguments to the inline asm, but that's a
bigger change than the one I'm willing to make right now).

Tested-by: S.Çağlar Onur <caglar@pardus.org.tr>
Acked-by: Thomas Mingarelli <Thomas.Mingarelli@hp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-06-20 12:25:34 -07:00
Wim Van Sebroeck fdf7be6f13 Revert "[WATCHDOG] hpwdt: Fix NMI handling."
The old setup works better.

Signed-off-by: Thomas Mingarelli <Thomas.Mingarelli@hp.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-18 16:22:48 +00:00
Thomas Mingarelli 4dc7347a3b [WATCHDOG] hpwdt: Add CFLAGS to get driver working
To get this driver working we need the CFLAGS_hpwdt.o += -O in the Makefile.

Signed-off-by: Thomas Mingarelli <Thomas.Mingarelli@hp.com>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
2008-06-17 20:58:03 +00:00