Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp3303571pxk; Mon, 21 Sep 2020 10:07:22 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyoJBC/rb6IN9fNkVzwDxs2kjSfHt10XpRCZd9HPhqRIL9RaF2ExtZYj+LpdT1gGJVrrumA X-Received: by 2002:aa7:da48:: with SMTP id w8mr617247eds.165.1600708041837; Mon, 21 Sep 2020 10:07:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1600708041; cv=none; d=google.com; s=arc-20160816; b=X47hDk7jC7i3BJNhFNrYHyLwmA8OUXjd5TEOnYziLGM0BgTzqr8jlUwt2Kux5OGCeL uyBOV8bU5KMUW9JfDPvdzMsqFNsk9ys+OHSb+ebTqHkInhE/fzF0qJ4xLtQumnakuaIf OmKmucEsiZnoo1bfxdUzSfwKWhoGq7YIujlf2BytfV0yAWs1u0vuZGViAI5Jz1HO14vx evEmBgAWyCdP42xC8QgzBTOhJyif135OC7Ep5mMgKeJlP9URkBhs/87vVnHuJOfBooH8 9ZBIvck80TH5HwxvF0kw+Br+r32R3KduBV5DbMOufFWhTCBh8vyic9YEtRAO71Vc6mhs X6uw== 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=aw3OyYnuLl9p3Q5gMJokXan+7nuS+QdZeYxN0iYyXUL9fuTNNcNeEyrDe/5Rf0Mr5H G3EqjTZ7xUIzE7Xk7NnAU+CZ7JuGZiR4l74KOY9qCpFHelUwO3O6WGxyas2xtJNp9b11 Qwd1BApXQ7n93NGJTqqPp6YPv3eYWho+uSxjX/826B6cRbV9fatXGFgQDe35uD18magD Wa/XJtdBheWZKH6clajaVrv6SW0xOrUyGmFSuYee1y1qpb0X0N4BjRt98GqHM0ghRMN2 uHwMwq08Pm9AGGcKZLiJf1Jc4aSdivCWMm2jY9GPniCkgcE9dN/X5OUDbYZh0ippQZGC /5Mw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=k8Ex2r1t; 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 a16si9983642ejk.665.2020.09.21.10.06.57; Mon, 21 Sep 2020 10:07:21 -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=k8Ex2r1t; 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 S1730487AbgIURF5 (ORCPT + 99 others); Mon, 21 Sep 2020 13:05:57 -0400 Received: from mail.kernel.org ([198.145.29.99]:59458 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728599AbgIUQdV (ORCPT ); Mon, 21 Sep 2020 12:33:21 -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 9108C2399C; Mon, 21 Sep 2020 16:33:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1600706001; bh=d3XFlJeZ5FcVRMjyET295KfplhHWKUPA6e5DSv4GAcE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=k8Ex2r1tXdmvxlywiOYVkp+7d+0ZjBMgNWrEFMwrhQe6TWd3CRE8c1DIIPZlOOQmI VgNSa1/nPyrtoOfeU/cOysIgztJBKHvlsSpTc/8bzJKfQAM1cXAuWNGTU/Z+95lc8T BuL7c8JJXsfb8uPcGl1a27V45QaAYlqBKxd9NFmw= 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.4 38/46] MIPS: SNI: Fix spurious interrupts Date: Mon, 21 Sep 2020 18:27:54 +0200 Message-Id: <20200921162035.034931409@linuxfoundation.org> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20200921162033.346434578@linuxfoundation.org> References: <20200921162033.346434578@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