Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
ia64
sn
kernel
sn2
timer_interrupt.c
Go to the documentation of this file.
1
/*
2
*
3
*
4
* Copyright (c) 2005, 2006 Silicon Graphics, Inc. All Rights Reserved.
5
*
6
* This program is free software; you can redistribute it and/or modify it
7
* under the terms of version 2 of the GNU General Public License
8
* as published by the Free Software Foundation.
9
*
10
* This program is distributed in the hope that it would be useful, but
11
* WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
*
14
* Further, this software is distributed without any warranty that it is
15
* free of the rightful claim of any third person regarding infringement
16
* or the like. Any license provided herein, whether implied or
17
* otherwise, applies only to this software file. Patent licenses, if
18
* any, provided herein do not apply to combinations of this program with
19
* other software, or any other product whatsoever.
20
*
21
* You should have received a copy of the GNU General Public
22
* License along with this program; if not, write the Free Software
23
* Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
24
*
25
* For further information regarding this notice, see:
26
*
27
* http://oss.sgi.com/projects/GenInfo/NoticeExplan
28
*/
29
30
#include <
linux/interrupt.h
>
31
#include <
asm/sn/pda.h
>
32
#include <
asm/sn/leds.h
>
33
34
extern
void
sn_lb_int_war_check
(
void
);
35
extern
irqreturn_t
timer_interrupt
(
int
irq,
void
*
dev_id
,
struct
pt_regs
*
regs
);
36
37
#define SN_LB_INT_WAR_INTERVAL 100
38
39
void
sn_timer_interrupt
(
int
irq,
void
*
dev_id
)
40
{
41
/* LED blinking */
42
if
(!
pda
->hb_count--) {
43
pda
->hb_count =
HZ
/ 2;
44
set_led_bits(
pda
->hb_state ^=
45
LED_CPU_HEARTBEAT
,
LED_CPU_HEARTBEAT
);
46
}
47
48
if
(
is_shub1
()) {
49
if
(
enable_shub_wars_1_1
()) {
50
/* Bugfix code for SHUB 1.1 */
51
if
(
pda
->pio_shub_war_cam_addr)
52
*
pda
->pio_shub_war_cam_addr = 0x8000000000000010
UL
;
53
}
54
if
(
pda
->sn_lb_int_war_ticks == 0)
55
sn_lb_int_war_check
();
56
pda
->sn_lb_int_war_ticks++;
57
if
(
pda
->sn_lb_int_war_ticks >=
SN_LB_INT_WAR_INTERVAL
)
58
pda
->sn_lb_int_war_ticks = 0;
59
}
60
}
Generated on Thu Jan 10 2013 13:07:16 for Linux Kernel by
1.8.2