Commit fc51299f authored by David S. Miller's avatar David S. Miller Committed by David S. Miller

[SPARC64]: Kill SPARC64_USE_STICK and use real timer drivers.

parent b13e3088
...@@ -719,12 +719,8 @@ void handler_irq(int irq, struct pt_regs *regs) ...@@ -719,12 +719,8 @@ void handler_irq(int irq, struct pt_regs *regs)
*/ */
{ {
unsigned long clr_mask = 1 << irq; unsigned long clr_mask = 1 << irq;
unsigned long tick_mask; unsigned long tick_mask = tick_ops->softint_mask;
if (SPARC64_USE_STICK)
tick_mask = (1UL << 16);
else
tick_mask = (1UL << 0);
if ((irq == 14) && (get_softint() & tick_mask)) { if ((irq == 14) && (get_softint() & tick_mask)) {
irq = 0; irq = 0;
clr_mask = tick_mask; clr_mask = tick_mask;
......
This diff is collapsed.
This diff is collapsed.
...@@ -560,8 +560,8 @@ xcall_flush_tlb_kernel_range: ...@@ -560,8 +560,8 @@ xcall_flush_tlb_kernel_range:
/* This runs in a very controlled environment, so we do /* This runs in a very controlled environment, so we do
* not need to worry about BH races etc. * not need to worry about BH races etc.
*/ */
.globl xcall_sync_stick .globl xcall_sync_tick
xcall_sync_stick: xcall_sync_tick:
rdpr %pstate, %g2 rdpr %pstate, %g2
wrpr %g2, PSTATE_IG | PSTATE_AG, %pstate wrpr %g2, PSTATE_IG | PSTATE_AG, %pstate
rdpr %pil, %g2 rdpr %pil, %g2
...@@ -569,7 +569,7 @@ xcall_sync_stick: ...@@ -569,7 +569,7 @@ xcall_sync_stick:
sethi %hi(109f), %g7 sethi %hi(109f), %g7
b,pt %xcc, etrap_irq b,pt %xcc, etrap_irq
109: or %g7, %lo(109b), %g7 109: or %g7, %lo(109b), %g7
call smp_synchronize_stick_client call smp_synchronize_tick_client
nop nop
clr %l6 clr %l6
b rtrap_xcall b rtrap_xcall
......
...@@ -45,8 +45,6 @@ enum ultra_tlb_layout { ...@@ -45,8 +45,6 @@ enum ultra_tlb_layout {
extern enum ultra_tlb_layout tlb_type; extern enum ultra_tlb_layout tlb_type;
#define SPARC64_USE_STICK (tlb_type != spitfire)
#define CHEETAH_HIGHEST_LOCKED_TLBENT (16 - 1) #define CHEETAH_HIGHEST_LOCKED_TLBENT (16 - 1)
#define L1DCACHE_SIZE 0x4000 #define L1DCACHE_SIZE 0x4000
......
...@@ -50,6 +50,17 @@ struct sun5_timer { ...@@ -50,6 +50,17 @@ struct sun5_timer {
*/ */
#define SUN5_HZ_TO_LIMIT(__hz) (1000000/(__hz)) #define SUN5_HZ_TO_LIMIT(__hz) (1000000/(__hz))
struct sparc64_tick_ops {
void (*init_tick)(unsigned long);
unsigned long (*get_tick)(void);
unsigned long (*get_compare)(void);
unsigned long (*add_tick)(unsigned long, unsigned long);
unsigned long (*add_compare)(unsigned long);
unsigned long softint_mask;
};
extern struct sparc64_tick_ops *tick_ops;
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
extern unsigned long timer_tick_offset; extern unsigned long timer_tick_offset;
extern void timer_tick_interrupt(struct pt_regs *); extern void timer_tick_interrupt(struct pt_regs *);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment