aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/oprofile/op_model_loongson2.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/oprofile/op_model_loongson2.c')
-rw-r--r--arch/mips/oprofile/op_model_loongson2.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/mips/oprofile/op_model_loongson2.c b/arch/mips/oprofile/op_model_loongson2.c
index d0d24e047676..60d3ea602118 100644
--- a/arch/mips/oprofile/op_model_loongson2.c
+++ b/arch/mips/oprofile/op_model_loongson2.c
@@ -43,6 +43,12 @@ static struct loongson2_register_config {
43static char *oprofid = "LoongsonPerf"; 43static char *oprofid = "LoongsonPerf";
44static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id); 44static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id);
45 45
46static void reset_counters(void *arg)
47{
48 write_c0_perfctrl(0);
49 write_c0_perfcnt(0);
50}
51
46static void loongson2_reg_setup(struct op_counter_config *cfg) 52static void loongson2_reg_setup(struct op_counter_config *cfg)
47{ 53{
48 unsigned int ctrl = 0; 54 unsigned int ctrl = 0;
@@ -139,7 +145,7 @@ static int __init loongson2_init(void)
139 145
140static void loongson2_exit(void) 146static void loongson2_exit(void)
141{ 147{
142 write_c0_perfctrl(0); 148 reset_counters(NULL);
143 free_irq(LOONGSON2_PERFCNT_IRQ, oprofid); 149 free_irq(LOONGSON2_PERFCNT_IRQ, oprofid);
144} 150}
145 151