Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3297355pxk; Mon, 21 Sep 2020 09:59:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxYjOQNGE+Xljp45XvH63l0Ng8Kxy2vjlPHhqqAW4QJEoSLDRETpBt+9IAb+xX4PSO8wIlU X-Received: by 2002:aa7:c987:: with SMTP id c7mr565006edt.385.1600707590868; Mon, 21 Sep 2020 09:59:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600707590; cv=none; d=google.com; s=arc-20160816; b=LQR0slm2mCSJ09aEjmi7nAZw8hrnp5XYkf96X51JbeI8X7ble839p/t3m6275P+uY3 EJgDCOlxgR+WcKoSARmQLlNs0kyU9kfGKMbClrOeoLQgj1rikWCMuOiK42AHqSNdwxgW IpmyRIsdO2qH1OTJymarRnK9c4bWR6WuzEbVALMZ59TsF0teDF7HyVgWs/CU7Si5pLhU gQGnLojBloeQG/RCixlqCpAZICq4cax1Y7IgtfqBerKJ1xGPzifOkESAF5p6R7UAPtfm 1aaHaxdgXi0yzmO2OHrfW8fWZcrUdJIDhaaEJWq3rEyaNxeVko/ZZU+QxWtSLVdOLRoV njFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Cvocwec/rFBAzroYdu7tGc8yy3b9LkA/OpqJwafcMGg=; b=flQ6DpLWkKLh8LWlGy264L3RmT0v1HW+A/Pzj/b4r/vPUqJoDB8c+kjax+t3L8m9oJ pqeh83XJ3Q6CpSZVhlu1VouIZklUXTpYEJWQUi88VP4yiPAagyNkrCMZv3Uj6mlEOngZ dHVltm/tllighgQMXk3SgqATIGIjC+FtN8JwWrlN6VZfBhOOUB4lmOVja21zjvg9PM8X A+exAHHq+hYMCUwZbwWrLwt1yAmU11weqtQIt1r6evStfUOKngnQ1ThQ+ghk1sK67bab 4h2Il50KQavJN7BB6HGKqctWZL3EBwvbgVi38IRuhMRn8mnceEXIPTSqMuRM0QTuFS5N u69w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="Xo/BhlMQ"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r22si8357462eji.521.2020.09.21.09.59.27; Mon, 21 Sep 2020 09:59:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="Xo/BhlMQ"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730263AbgIUQ6b (ORCPT + 99 others); Mon, 21 Sep 2020 12:58:31 -0400 Received: from mail.kernel.org ([198.145.29.99]:45798 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729469AbgIUQlz (ORCPT ); Mon, 21 Sep 2020 12:41:55 -0400 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0CE59235F9; Mon, 21 Sep 2020 16:41:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1600706514; bh=d3XFlJeZ5FcVRMjyET295KfplhHWKUPA6e5DSv4GAcE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Xo/BhlMQ+xa6jwH45nRco+AQO/wz3qXZ07cyC5Ona2at+raur/ftMng/PbBRW6A6k fJ6tNrsU2kGN+LcNPumMF9sRxwJaQkV6nA7XDaOVpgIC+7w9KknCulR8qWUnY1Ll1K scITFrolLwjlTAuENybIx46LDYRLVsGT7Y2rkWMU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Thomas Bogendoerfer , Sasha Levin Subject: [PATCH 4.19 34/49] MIPS: SNI: Fix spurious interrupts Date: Mon, 21 Sep 2020 18:28:18 +0200 Message-Id: <20200921162036.167479232@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200921162034.660953761@linuxfoundation.org> References: <20200921162034.660953761@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Thomas Bogendoerfer [ Upstream commit b959b97860d0fee8c8f6a3e641d3c2ad76eab6be ] On A20R machines the interrupt pending bits in cause register need to be updated by requesting the chipset to do it. This needs to be done to find the interrupt cause and after interrupt service. In commit 0b888c7f3a03 ("MIPS: SNI: Convert to new irq_chip functions") the function to do after service update got lost, which caused spurious interrupts. Fixes: 0b888c7f3a03 ("MIPS: SNI: Convert to new irq_chip functions") Signed-off-by: Thomas Bogendoerfer Signed-off-by: Sasha Levin --- arch/mips/sni/a20r.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/mips/sni/a20r.c b/arch/mips/sni/a20r.c index f9407e1704762..c6af7047eb0d2 100644 --- a/arch/mips/sni/a20r.c +++ b/arch/mips/sni/a20r.c @@ -143,7 +143,10 @@ static struct platform_device sc26xx_pdev = { }, }; -static u32 a20r_ack_hwint(void) +/* + * Trigger chipset to update CPU's CAUSE IP field + */ +static u32 a20r_update_cause_ip(void) { u32 status = read_c0_status(); @@ -205,12 +208,14 @@ static void a20r_hwint(void) int irq; clear_c0_status(IE_IRQ0); - status = a20r_ack_hwint(); + status = a20r_update_cause_ip(); cause = read_c0_cause(); irq = ffs(((cause & status) >> 8) & 0xf8); if (likely(irq > 0)) do_IRQ(SNI_A20R_IRQ_BASE + irq - 1); + + a20r_update_cause_ip(); set_c0_status(IE_IRQ0); } -- 2.25.1