diff options
Diffstat (limited to 'arch/parisc/kernel/time.c')
-rw-r--r-- | arch/parisc/kernel/time.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/arch/parisc/kernel/time.c b/arch/parisc/kernel/time.c index 7ff67f8e9f8c..bc979e1abdec 100644 --- a/arch/parisc/kernel/time.c +++ b/arch/parisc/kernel/time.c | |||
@@ -89,14 +89,6 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
89 | } | 89 | } |
90 | } | 90 | } |
91 | 91 | ||
92 | #ifdef CONFIG_CHASSIS_LCD_LED | ||
93 | /* Only schedule the led tasklet on cpu 0, and only if it | ||
94 | * is enabled. | ||
95 | */ | ||
96 | if (cpu == 0 && !atomic_read(&led_tasklet.count)) | ||
97 | tasklet_schedule(&led_tasklet); | ||
98 | #endif | ||
99 | |||
100 | /* check soft power switch status */ | 92 | /* check soft power switch status */ |
101 | if (cpu == 0 && !atomic_read(&power_tasklet.count)) | 93 | if (cpu == 0 && !atomic_read(&power_tasklet.count)) |
102 | tasklet_schedule(&power_tasklet); | 94 | tasklet_schedule(&power_tasklet); |
@@ -104,6 +96,24 @@ irqreturn_t timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) | |||
104 | return IRQ_HANDLED; | 96 | return IRQ_HANDLED; |
105 | } | 97 | } |
106 | 98 | ||
99 | |||
100 | unsigned long profile_pc(struct pt_regs *regs) | ||
101 | { | ||
102 | unsigned long pc = instruction_pointer(regs); | ||
103 | |||
104 | if (regs->gr[0] & PSW_N) | ||
105 | pc -= 4; | ||
106 | |||
107 | #ifdef CONFIG_SMP | ||
108 | if (in_lock_functions(pc)) | ||
109 | pc = regs->gr[2]; | ||
110 | #endif | ||
111 | |||
112 | return pc; | ||
113 | } | ||
114 | EXPORT_SYMBOL(profile_pc); | ||
115 | |||
116 | |||
107 | /*** converted from ia64 ***/ | 117 | /*** converted from ia64 ***/ |
108 | /* | 118 | /* |
109 | * Return the number of micro-seconds that elapsed since the last | 119 | * Return the number of micro-seconds that elapsed since the last |