Path: blob/master/arch/mn10300/kernel/mn10300-watchdog-low.S
10817 views
###############################################################################1#2# MN10300 Watchdog interrupt handler3#4# Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.5# Written by David Howells ([email protected])6#7# This program is free software; you can redistribute it and/or8# modify it under the terms of the GNU General Public Licence9# as published by the Free Software Foundation; either version10# 2 of the Licence, or (at your option) any later version.11#12###############################################################################13#include <linux/sys.h>14#include <linux/linkage.h>15#include <asm/intctl-regs.h>16#include <asm/timer-regs.h>17#include <asm/frame.inc>18#include <linux/threads.h>1920.text2122###############################################################################23#24# Watchdog handler entry point25# - special non-maskable interrupt26#27###############################################################################28.globl watchdog_handler29.type watchdog_handler,@function30watchdog_handler:31add -4,sp32SAVE_ALL3334mov 0xffffffff,d035mov d0,(REG_ORIG_D0,fp)3637mov fp,d038lsr 2,d139call watchdog_interrupt[],0 # watchdog_interrupt(regs,irq)4041jmp ret_from_intr4243.size watchdog_handler,.-watchdog_handler4445###############################################################################46#47# Watchdog touch entry point48# - kept to absolute minimum (unfortunately, it's prototyped in linux/nmi.h so49# we can't inline it)50#51###############################################################################52.globl touch_nmi_watchdog53.type touch_nmi_watchdog,@function54touch_nmi_watchdog:55clr d056clr d157mov watchdog_alert_counter, a058setlb59mov d0, (a0+)60inc d161cmp NR_CPUS, d162lne63ret [],06465.size touch_nmi_watchdog,.-touch_nmi_watchdog666768