1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- ###############################################################################
- #
- # MN10300 Watchdog interrupt handler
- #
- # Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
- # Written by David Howells (dhowells@redhat.com)
- #
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU General Public Licence
- # as published by the Free Software Foundation; either version
- # 2 of the Licence, or (at your option) any later version.
- #
- ###############################################################################
- #include <linux/sys.h>
- #include <linux/linkage.h>
- #include <asm/intctl-regs.h>
- #include <asm/timer-regs.h>
- #include <asm/frame.inc>
- .text
- ###############################################################################
- #
- # Watchdog handler entry point
- # - special non-maskable interrupt
- #
- ###############################################################################
- .globl watchdog_handler
- .type watchdog_handler,@function
- watchdog_handler:
- add -4,sp
- SAVE_ALL
- mov 0xffffffff,d0
- mov d0,(REG_ORIG_D0,fp)
- mov fp,d0
- lsr 2,d1
- call watchdog_interrupt[],0 # watchdog_interrupt(regs,irq)
- jmp ret_from_intr
- .size watchdog_handler,.-watchdog_handler
- ###############################################################################
- #
- # Watchdog touch entry point
- # - kept to absolute minimum (unfortunately, it's prototyped in linux/nmi.h so
- # we can't inline it)
- #
- ###############################################################################
- .globl touch_nmi_watchdog
- .type touch_nmi_watchdog,@function
- touch_nmi_watchdog:
- clr d0
- mov d0,(watchdog_alert_counter)
- ret [],0
- .size touch_nmi_watchdog,.-touch_nmi_watchdog
|