Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp2576435pxb; Tue, 24 Aug 2021 02:25:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxf5W2noV9DQ1O8wLtyGNKrJI3YuCLy8S+VujhQX0y4n7Wi8rkDRHg/yU9xYgIwcgb/GyIX X-Received: by 2002:aa7:d9d3:: with SMTP id v19mr6413332eds.257.1629797107024; Tue, 24 Aug 2021 02:25:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629797107; cv=none; d=google.com; s=arc-20160816; b=NKtFmGbHhIrmz3H4y9byxVOFnvZ3UUR1179SMMDFGsYaRiTrBzDPpU7kLA0bUVKyzm HwqjZ3QUxqgEqAsfBEGUq+qaCF5puhvpWYrVaumzqlhaJB6dQJIfbbiVJmwqp2Ewf6x/ UMh7VZfks4F0HwRQ9FsOf5Wd8oCHOQgx7p9rR8qEW0x440gOCrKo6b1nkDQ8DGw9zPPg KCvVO2kNEl9RmonX1foEdNROXGOxhCortj1Tk3O9UaEWGNrxDln0kpMkl/rrMjmvcyRS Om3EUWr3PLks5FGU7gDVvAjcfzYP5wli3DnWT77GqmKsFU5g9LD0MgMKJFZSrSGUxadM 7dOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from; bh=Ut+lPMpGgx0BoyK8Xa0IkwEfrgoDc+cLpc44hmJbv6c=; b=bZQjvFAvcr2Y7+lg0Q1gKE9mUsyaXCJQWb5j5eyujUj9mHQyfcv2i7InLwH8JANnNc W6roOfRrR9sf89azwmlDrWjSIX0TnT3r09KgCGUUaNGyT4sK72FX+pai+614eACDSBzs GG4ZvPihUj+JaKNiOlGat0mNAdaT/ysMov9vES5wJtcWV7wc9gbfipkh/EOqGYRH4ZGY byFScVE6mOPEiIeKSoXIO7vM/RDhO3v2Vv+VONu42B3OQqwKxX+b0z9JCUohlthuwxDK yaJBlF+Ja4v/HQ/IuKsJYA4YLDoWnjzwHY7TWVvKAj8L3ntWnO9fA47eYsWD34iZhOqB Lk8w== 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 p4si20205586eju.288.2021.08.24.02.24.43; Tue, 24 Aug 2021 02:25:07 -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; 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 S235642AbhHXJYG (ORCPT + 99 others); Tue, 24 Aug 2021 05:24:06 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:42808 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S234545AbhHXJYF (ORCPT ); Tue, 24 Aug 2021 05:24:05 -0400 X-UUID: f1c77deed7ad4765b590f2d5fb132666-20210824 X-UUID: f1c77deed7ad4765b590f2d5fb132666-20210824 Received: from mtkmbs10n1.mediatek.inc [(172.21.101.34)] by mailgw02.mediatek.com (envelope-from ) (Generic MTA with TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384 256/256) with ESMTP id 1027731108; Tue, 24 Aug 2021 17:23:16 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 24 Aug 2021 17:23:15 +0800 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkcas07.mediatek.inc (172.21.101.84) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 24 Aug 2021 17:23:15 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Tue, 24 Aug 2021 17:23:14 +0800 From: Fengquan Chen To: Daniel Lezcano , Thomas Gleixner , Matthias Brugger , Stanley Chu , , , CC: Subject: [PATCH] [v5, 1/1] clocksource/drivers/timer-mediatek: optimize systimer irq clear flow on shutdown Date: Tue, 24 Aug 2021 17:23:10 +0800 Message-ID: <1629796990-28361-2-git-send-email-Fengquan.Chen@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1629796990-28361-1-git-send-email-Fengquan.Chen@mediatek.com> References: <1629796990-28361-1-git-send-email-Fengquan.Chen@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "fengquan.chen" mtk_syst_clkevt_shutdown is called after irq disabled in suspend flow, clear any pending systimer irq when shutdown to avoid suspend aborted due to timer irq pending Also as for systimer in mediatek socs, there must be firstly enable timer before clear systimer irq Fixes: e3af677607d9("clocksource/drivers/timer-mediatek: Add support for system timer") Signed-off-by: Fengquan Chen --- drivers/clocksource/timer-mediatek.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/clocksource/timer-mediatek.c b/drivers/clocksource/timer-mediatek.c index 9318edc..6461fd3 100644 --- a/drivers/clocksource/timer-mediatek.c +++ b/drivers/clocksource/timer-mediatek.c @@ -60,9 +60,9 @@ * SYST_CON_EN: Clock enable. Shall be set to * - Start timer countdown. * - Allow timeout ticks being updated. - * - Allow changing interrupt functions. + * - Allow changing interrupt status,like clear irq pending. * - * SYST_CON_IRQ_EN: Set to allow interrupt. + * SYST_CON_IRQ_EN: Set to enable interrupt. * * SYST_CON_IRQ_CLR: Set to clear interrupt. */ @@ -75,6 +75,7 @@ static void mtk_syst_ack_irq(struct timer_of *to) { /* Clear and disable interrupt */ + writel(SYST_CON_EN, SYST_CON_REG(to)); writel(SYST_CON_IRQ_CLR | SYST_CON_EN, SYST_CON_REG(to)); } @@ -111,6 +112,9 @@ static int mtk_syst_clkevt_next_event(unsigned long ticks, static int mtk_syst_clkevt_shutdown(struct clock_event_device *clkevt) { + /* Clear any irq */ + mtk_syst_ack_irq(to_timer_of(clkevt)); + /* Disable timer */ writel(0, SYST_CON_REG(to_timer_of(clkevt))); -- 1.8.1.1.dirty