Merge branches 'fixes', 'cleanups' and 'boards'
[linux-2.6] / arch / mn10300 / kernel / mn10300-watchdog-low.S
1 ###############################################################################
2 #
3 # MN10300 Watchdog interrupt handler
4 #
5 # Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
6 # Written by David Howells (dhowells@redhat.com)
7 #
8 # This program is free software; you can redistribute it and/or
9 # modify it under the terms of the GNU General Public Licence
10 # as published by the Free Software Foundation; either version
11 # 2 of the Licence, or (at your option) any later version.
12 #
13 ###############################################################################
14 #include <linux/sys.h>
15 #include <linux/linkage.h>
16 #include <asm/intctl-regs.h>
17 #include <asm/timer-regs.h>
18 #include <asm/frame.inc>
19
20         .text
21
22 ###############################################################################
23 #
24 # Watchdog handler entry point
25 # - special non-maskable interrupt
26 #
27 ###############################################################################
28         .globl  watchdog_handler
29         .type   watchdog_handler,@function
30 watchdog_handler:
31         add     -4,sp
32         SAVE_ALL
33
34         mov     0xffffffff,d0
35         mov     d0,(REG_ORIG_D0,fp)
36
37         mov     fp,d0
38         lsr     2,d1
39         call    watchdog_interrupt[],0          # watchdog_interrupt(regs,irq)
40
41         jmp     ret_from_intr
42
43         .size   watchdog_handler,.-watchdog_handler
44
45 ###############################################################################
46 #
47 # Watchdog touch entry point
48 # - kept to absolute minimum (unfortunately, it's prototyped in linux/nmi.h so
49 #   we can't inline it)
50 #
51 ###############################################################################
52         .globl  touch_nmi_watchdog
53         .type   touch_nmi_watchdog,@function
54 touch_nmi_watchdog:
55         clr     d0
56         mov     d0,(watchdog_alert_counter)
57         ret     [],0
58
59         .size   touch_nmi_watchdog,.-touch_nmi_watchdog