linux-mips
[Top] [All Lists]

[PATCH] Oprofile: Loongson: Fixup of irq handler

To: Ralf Baechle <ralf@linux-mips.org>
Subject: [PATCH] Oprofile: Loongson: Fixup of irq handler
From: Wu Zhangjin <wuzhangjin@gmail.com>
Date: Fri, 7 May 2010 00:59:46 +0800
Cc: linux-mips@linux-mips.org, Wu Zhangjin <wuzhangjin@gmail.com>
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:date :message-id:x-mailer; bh=fB0VCW2T/eWzDsCgRdD1nNCFLN0bOymoswRH3XKTjQc=; b=hyRVsLSMlLjHbwL/i39etADTlHuucyVjP1vCuUfLW74q+A07/TUtP31xMKpg++QAhw C2uI4V2pOVDo+ehVDr4qQmTgBSWe7OZkR7Sz5fBL7OevQllgQG6HH1nDhwOMFqM5FMr2 SO5EA24kUD0YzcdUBuMtJzidVUzR4MpJDAijE=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; b=rPcmfsubAwDaAuoM4VZhxnuQn86qqL9MGuP6sKyJd0hlKwjmnZ9Qdl6qDmsrpc2l1d uKOWQBaRALUiVvmPW5dpRk14IxlMslGvIqMnMxPAHOAq5C57vVQayuaFeRCn+EHtW3sI Q1iecRGgpbcU39V0hq3ppEdTU/QzRFL9NsvXs=
Original-recipient: rfc822;linux-mips@linux-mips.org
Sender: linux-mips-bounce@linux-mips.org
The interrupt enable bit of performance counters of Loongson is in the
control register($24), not in the counter register, so, in
loongson2_perfcount_handler(), we need to use

        enabled = read_c0_perfctrl() & LOONGSON2_PERFCNT_INT_EN;

instead of

        enabled = read_c0_perfcnt() & LOONGSON2_PERFCNT_INT_EN;

Reported-by: Xu Hengyang <hengyang@mail.ustc.edu.cn>
Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
---
 arch/mips/oprofile/op_model_loongson2.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/mips/oprofile/op_model_loongson2.c 
b/arch/mips/oprofile/op_model_loongson2.c
index 29e2326..fa3bf66 100644
--- a/arch/mips/oprofile/op_model_loongson2.c
+++ b/arch/mips/oprofile/op_model_loongson2.c
@@ -122,7 +122,7 @@ static irqreturn_t loongson2_perfcount_handler(int irq, 
void *dev_id)
         */
 
        /* Check whether the irq belongs to me */
-       enabled = read_c0_perfcnt() & LOONGSON2_PERFCNT_INT_EN;
+       enabled = read_c0_perfctrl() & LOONGSON2_PERFCNT_INT_EN;
        if (!enabled)
                return IRQ_NONE;
        enabled = reg.cnt1_enabled | reg.cnt2_enabled;
-- 
1.7.0


<Prev in Thread] Current Thread [Next in Thread>