Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
77de0fa3
Commit
77de0fa3
authored
Jan 22, 2004
by
Martin Hicks
Committed by
David Mosberger
Jan 22, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] ia64: add platform_timer_interrupt() hook
parent
7cb237b1
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
77 additions
and
1 deletion
+77
-1
arch/ia64/kernel/time.c
arch/ia64/kernel/time.c
+3
-0
arch/ia64/sn/kernel/sn2/Makefile
arch/ia64/sn/kernel/sn2/Makefile
+1
-1
arch/ia64/sn/kernel/sn2/timer_interrupt.c
arch/ia64/sn/kernel/sn2/timer_interrupt.c
+64
-0
include/asm-ia64/machvec.h
include/asm-ia64/machvec.h
+7
-0
include/asm-ia64/machvec_sn2.h
include/asm-ia64/machvec_sn2.h
+2
-0
No files found.
arch/ia64/kernel/time.c
View file @
77de0fa3
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#include <linux/profile.h>
#include <linux/profile.h>
#include <linux/timex.h>
#include <linux/timex.h>
#include <asm/machvec.h>
#include <asm/delay.h>
#include <asm/delay.h>
#include <asm/hw_irq.h>
#include <asm/hw_irq.h>
#include <asm/ptrace.h>
#include <asm/ptrace.h>
...
@@ -243,6 +244,8 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
...
@@ -243,6 +244,8 @@ timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
{
{
unsigned
long
new_itm
;
unsigned
long
new_itm
;
platform_timer_interrupt
(
irq
,
dev_id
,
regs
);
new_itm
=
local_cpu_data
->
itm_next
;
new_itm
=
local_cpu_data
->
itm_next
;
if
(
!
time_after
(
ia64_get_itc
(),
new_itm
))
if
(
!
time_after
(
ia64_get_itc
(),
new_itm
))
...
...
arch/ia64/sn/kernel/sn2/Makefile
View file @
77de0fa3
...
@@ -12,4 +12,4 @@
...
@@ -12,4 +12,4 @@
EXTRA_CFLAGS
:=
-DLITTLE_ENDIAN
EXTRA_CFLAGS
:=
-DLITTLE_ENDIAN
obj-y
+=
cache.o io.o ptc_deadlock.o sn2_smp.o sn_proc_fs.o
\
obj-y
+=
cache.o io.o ptc_deadlock.o sn2_smp.o sn_proc_fs.o
\
prominfo_proc.o timer.o
prominfo_proc.o timer.o
timer_interrupt.o
arch/ia64/sn/kernel/sn2/timer_interrupt.c
0 → 100644
View file @
77de0fa3
/*
*
*
* Copyright (c) 2003 Silicon Graphics, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it would be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*
* Further, this software is distributed without any warranty that it is
* free of the rightful claim of any third person regarding infringement
* or the like. Any license provided herein, whether implied or
* otherwise, applies only to this software file. Patent licenses, if
* any, provided herein do not apply to combinations of this program with
* other software, or any other product whatsoever.
*
* You should have received a copy of the GNU General Public
* License along with this program; if not, write the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
*
* Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
* Mountain View, CA 94043, or:
*
* http://www.sgi.com
*
* For further information regarding this notice, see:
*
* http://oss.sgi.com/projects/GenInfo/NoticeExplan
*/
#include <linux/interrupt.h>
#include <asm/sn/pda.h>
#include <asm/sn/leds.h>
extern
void
sn_lb_int_war_check
(
void
);
extern
irqreturn_t
timer_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
);
#define SN_LB_INT_WAR_INTERVAL 100
void
sn_timer_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
/* LED blinking */
if
(
!
pda
->
hb_count
--
)
{
pda
->
hb_count
=
HZ
/
2
;
set_led_bits
(
pda
->
hb_state
^=
LED_CPU_HEARTBEAT
,
LED_CPU_HEARTBEAT
);
printk
(
"Blink
\n
"
);
}
if
(
enable_shub_wars_1_1
())
{
/* Bugfix code for SHUB 1.1 */
if
(
pda
->
pio_shub_war_cam_addr
)
*
pda
->
pio_shub_war_cam_addr
=
0x8000000000000010UL
;
}
if
(
pda
->
sn_lb_int_war_ticks
==
0
)
sn_lb_int_war_check
();
pda
->
sn_lb_int_war_ticks
++
;
if
(
pda
->
sn_lb_int_war_ticks
>=
SN_LB_INT_WAR_INTERVAL
)
pda
->
sn_lb_int_war_ticks
=
0
;
}
include/asm-ia64/machvec.h
View file @
77de0fa3
...
@@ -28,6 +28,7 @@ typedef void ia64_mv_mca_handler_t (void);
...
@@ -28,6 +28,7 @@ typedef void ia64_mv_mca_handler_t (void);
typedef
void
ia64_mv_cmci_handler_t
(
int
,
void
*
,
struct
pt_regs
*
);
typedef
void
ia64_mv_cmci_handler_t
(
int
,
void
*
,
struct
pt_regs
*
);
typedef
void
ia64_mv_log_print_t
(
void
);
typedef
void
ia64_mv_log_print_t
(
void
);
typedef
void
ia64_mv_send_ipi_t
(
int
,
int
,
int
,
int
);
typedef
void
ia64_mv_send_ipi_t
(
int
,
int
,
int
,
int
);
typedef
void
ia64_mv_timer_interrupt_t
(
int
,
void
*
,
struct
pt_regs
*
);
typedef
void
ia64_mv_global_tlb_purge_t
(
unsigned
long
,
unsigned
long
,
unsigned
long
);
typedef
void
ia64_mv_global_tlb_purge_t
(
unsigned
long
,
unsigned
long
,
unsigned
long
);
typedef
struct
irq_desc
*
ia64_mv_irq_desc
(
unsigned
int
);
typedef
struct
irq_desc
*
ia64_mv_irq_desc
(
unsigned
int
);
typedef
u8
ia64_mv_irq_to_vector
(
u8
);
typedef
u8
ia64_mv_irq_to_vector
(
u8
);
...
@@ -90,6 +91,7 @@ extern void machvec_memory_fence (void);
...
@@ -90,6 +91,7 @@ extern void machvec_memory_fence (void);
# define platform_cmci_handler ia64_mv.cmci_handler
# define platform_cmci_handler ia64_mv.cmci_handler
# define platform_log_print ia64_mv.log_print
# define platform_log_print ia64_mv.log_print
# define platform_send_ipi ia64_mv.send_ipi
# define platform_send_ipi ia64_mv.send_ipi
# define platform_timer_interrupt ia64_mv.timer_interrupt
# define platform_global_tlb_purge ia64_mv.global_tlb_purge
# define platform_global_tlb_purge ia64_mv.global_tlb_purge
# define platform_dma_init ia64_mv.dma_init
# define platform_dma_init ia64_mv.dma_init
# define platform_dma_alloc_coherent ia64_mv.dma_alloc_coherent
# define platform_dma_alloc_coherent ia64_mv.dma_alloc_coherent
...
@@ -131,6 +133,7 @@ struct ia64_machine_vector {
...
@@ -131,6 +133,7 @@ struct ia64_machine_vector {
ia64_mv_cmci_handler_t
*
cmci_handler
;
ia64_mv_cmci_handler_t
*
cmci_handler
;
ia64_mv_log_print_t
*
log_print
;
ia64_mv_log_print_t
*
log_print
;
ia64_mv_send_ipi_t
*
send_ipi
;
ia64_mv_send_ipi_t
*
send_ipi
;
ia64_mv_timer_interrupt_t
*
timer_interrupt
;
ia64_mv_global_tlb_purge_t
*
global_tlb_purge
;
ia64_mv_global_tlb_purge_t
*
global_tlb_purge
;
ia64_mv_dma_init
*
dma_init
;
ia64_mv_dma_init
*
dma_init
;
ia64_mv_dma_alloc_coherent
*
dma_alloc_coherent
;
ia64_mv_dma_alloc_coherent
*
dma_alloc_coherent
;
...
@@ -168,6 +171,7 @@ struct ia64_machine_vector {
...
@@ -168,6 +171,7 @@ struct ia64_machine_vector {
platform_cmci_handler, \
platform_cmci_handler, \
platform_log_print, \
platform_log_print, \
platform_send_ipi, \
platform_send_ipi, \
platform_timer_interrupt, \
platform_global_tlb_purge, \
platform_global_tlb_purge, \
platform_dma_init, \
platform_dma_init, \
platform_dma_alloc_coherent, \
platform_dma_alloc_coherent, \
...
@@ -243,6 +247,9 @@ extern ia64_mv_dma_supported swiotlb_dma_supported;
...
@@ -243,6 +247,9 @@ extern ia64_mv_dma_supported swiotlb_dma_supported;
#ifndef platform_send_ipi
#ifndef platform_send_ipi
# define platform_send_ipi ia64_send_ipi
/* default to architected version */
# define platform_send_ipi ia64_send_ipi
/* default to architected version */
#endif
#endif
#ifndef platform_timer_interrupt
# define platform_timer_interrupt ((ia64_mv_timer_interrupt_t *) machvec_noop)
#endif
#ifndef platform_global_tlb_purge
#ifndef platform_global_tlb_purge
# define platform_global_tlb_purge ia64_global_tlb_purge
/* default to architected version */
# define platform_global_tlb_purge ia64_global_tlb_purge
/* default to architected version */
#endif
#endif
...
...
include/asm-ia64/machvec_sn2.h
View file @
77de0fa3
...
@@ -37,6 +37,7 @@ extern ia64_mv_setup_t sn_setup;
...
@@ -37,6 +37,7 @@ extern ia64_mv_setup_t sn_setup;
extern
ia64_mv_cpu_init_t
sn_cpu_init
;
extern
ia64_mv_cpu_init_t
sn_cpu_init
;
extern
ia64_mv_irq_init_t
sn_irq_init
;
extern
ia64_mv_irq_init_t
sn_irq_init
;
extern
ia64_mv_send_ipi_t
sn2_send_IPI
;
extern
ia64_mv_send_ipi_t
sn2_send_IPI
;
extern
ia64_mv_timer_interrupt_t
sn_timer_interrupt
;
extern
ia64_mv_global_tlb_purge_t
sn2_global_tlb_purge
;
extern
ia64_mv_global_tlb_purge_t
sn2_global_tlb_purge
;
extern
ia64_mv_irq_desc
sn_irq_desc
;
extern
ia64_mv_irq_desc
sn_irq_desc
;
extern
ia64_mv_irq_to_vector
sn_irq_to_vector
;
extern
ia64_mv_irq_to_vector
sn_irq_to_vector
;
...
@@ -73,6 +74,7 @@ extern ia64_mv_dma_supported sn_dma_supported;
...
@@ -73,6 +74,7 @@ extern ia64_mv_dma_supported sn_dma_supported;
#define platform_cpu_init sn_cpu_init
#define platform_cpu_init sn_cpu_init
#define platform_irq_init sn_irq_init
#define platform_irq_init sn_irq_init
#define platform_send_ipi sn2_send_IPI
#define platform_send_ipi sn2_send_IPI
#define platform_timer_interrupt sn_timer_interrupt
#define platform_global_tlb_purge sn2_global_tlb_purge
#define platform_global_tlb_purge sn2_global_tlb_purge
#define platform_pci_fixup sn_pci_fixup
#define platform_pci_fixup sn_pci_fixup
#define platform_inb __sn_inb
#define platform_inb __sn_inb
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment