Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp2920870pxb; Sun, 23 Jan 2022 20:33:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJzgnjWS/edaLP5+MTY5TGyLFBWi9jCKWJcctQZBobAKGj86v3N3tVZAzuPV7UMtYolDxoFu X-Received: by 2002:a63:80c7:: with SMTP id j190mr10900416pgd.592.1642998805981; Sun, 23 Jan 2022 20:33:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642998805; cv=none; d=google.com; s=arc-20160816; b=bx412kz0kTiLGRjOvfJFZYkQ5aVrqcdV1LnjOb/g+/KSGQIe7eS6tJsEgp1ibxQjNw bnudVtXbKe8tDvnV526N7924D5njGezN5WXbGCqIVxPruw2BH3HbGcz85vOylQrlkW5e FrN/d1OI8UzKB51h2xW4iBLBePS81rxHeLa2UHGl6Cm5pF2JGIWZP7bBS2mH0s+3Fvdr sC1oHfBPw0ltlpiZVXOlNH14IMssEtMxjyvaJrdrO8YHDcU9kLC5H2vOn/74MlkeTCTM 0pRsxTmFm1Fn6JQ2FCJPDbRFZzKNdpf43cLCZc6QOWwVn2pH+7nEipcgtF7FjdN/JVQN aMAw== 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 :message-id:date:subject:cc:to:from; bh=M+GzfhD9pGAOco3QVeBV4cNbFXwcRQO6YrDkdc7ABMY=; b=jlIIX/fCEd3cXyRiBxMJeyCtLK9c03i/ua33XMt6K33cowihZFXxcF2ChsIX8G5er8 tHNnfnTOAh9oP9OqW5AShzp1snz3mExObzyVf1HD16yBJuBeqM2o9jKU/5PVYwSVn+E2 bo+Ns7B0RWy6FcZxk5GeUlh3yEux/69Eu3RQkHp0F1CX6RU2QgW38z33XxenpGGFu1VM Ieg7fLgFBLtw6v6skzWkdg5+06iVBgyQPSlpoVRT4kFauPrAgweeDkoBK2zu9uJQCMlr JVflokgyltxWXGfepYyI7KDCyAp8bPtbPXvK8h82CDjWXIDFOOy9+VuQ1tjW997g1LDX c1/A== ARC-Authentication-Results: i=1; mx.google.com; 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=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 16si14133982pgs.428.2022.01.23.20.33.01; Sun, 23 Jan 2022 20:33:25 -0800 (PST) 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; 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=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235331AbiAWDd7 (ORCPT + 99 others); Sat, 22 Jan 2022 22:33:59 -0500 Received: from mailgw01.mediatek.com ([60.244.123.138]:47768 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S232076AbiAWDd6 (ORCPT ); Sat, 22 Jan 2022 22:33:58 -0500 X-UUID: d47e39515d5541e8a978c68408054fcc-20220123 X-UUID: d47e39515d5541e8a978c68408054fcc-20220123 Received: from mtkcas10.mediatek.inc [(172.21.101.39)] by mailgw01.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 669783469; Sun, 23 Jan 2022 11:33:54 +0800 Received: from mtkexhb01.mediatek.inc (172.21.101.102) by mtkmbs07n2.mediatek.inc (172.21.101.141) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 23 Jan 2022 11:33:52 +0800 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkexhb01.mediatek.inc (172.21.101.102) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 23 Jan 2022 11:33:46 +0800 Received: from localhost.localdomain (10.17.3.154) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Sun, 23 Jan 2022 11:33:46 +0800 From: qizhong cheng To: Ryder Lee , Jianjun Wang , Lorenzo Pieralisi , =?UTF-8?q?Krzysztof=20Wilczy=C5=84ski?= , Bjorn Helgaas CC: , , , , , Subject: [PATCH] PCI: mediatek: Change MSI interrupt processing sequence Date: Sun, 23 Jan 2022 11:33:06 +0800 Message-ID: <20220123033306.29799-1-qizhong.cheng@mediatek.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-MTK: N Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As an edge-triggered interrupts, its interrupt status should be cleared before dispatch to the handler of device. Signed-off-by: qizhong cheng --- drivers/pci/controller/pcie-mediatek.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/pci/controller/pcie-mediatek.c b/drivers/pci/controller/pcie-mediatek.c index 2f3f974977a3..705ea33758b1 100644 --- a/drivers/pci/controller/pcie-mediatek.c +++ b/drivers/pci/controller/pcie-mediatek.c @@ -624,12 +624,12 @@ static void mtk_pcie_intr_handler(struct irq_desc *desc) if (status & MSI_STATUS){ unsigned long imsi_status; + /* Clear MSI interrupt status */ + writel(MSI_STATUS, port->base + PCIE_INT_STATUS); while ((imsi_status = readl(port->base + PCIE_IMSI_STATUS))) { for_each_set_bit(bit, &imsi_status, MTK_MSI_IRQS_NUM) generic_handle_domain_irq(port->inner_domain, bit); } - /* Clear MSI interrupt status */ - writel(MSI_STATUS, port->base + PCIE_INT_STATUS); } } -- 2.25.1