Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp1171229pxf; Fri, 9 Apr 2021 01:38:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwFDhT3NNfy5qidEVDYbJqDArkFUOsL6+OfLSdtiLN7U59buGii+MgBYKOAAzXhND+0DbKV X-Received: by 2002:a17:906:3949:: with SMTP id g9mr15160746eje.7.1617957487487; Fri, 09 Apr 2021 01:38:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617957487; cv=none; d=google.com; s=arc-20160816; b=X7Sb24cmomV3jKSNW7FCKhuF8gZI/vOqOeZ/+gZCvuJNGYG6gaNyY/hsLxTWciwcbf XmqgRN06AMBf9BGNF8+/RMr1KCDUpOnNGcBlZ6PKFoFV1zEXcF9JUixx0RAup8uykg7P toV1TBqB+rrpeK0qrACwGBXRttJfcQB9iY3G+u6MBKbN5PgISuIiV9nsGAxSUYQmRMDu OdFIf7yd6Bsr3imBLKbHmaDOFRocsZukQifb6yruStuJyt5h3tRatHbthFKYXO4Y7DT7 DuAPq2fzG3VeSRoK1nW+UPKPYKUeN3EnPTwbrqRH/0urjGo/kvs/EbKOlTC3y6Qu7FtE g7iA== 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=Rsj7jr7xYXxkN73PvB1k1NpEr1ElYUH5+dcy5+N5ERM=; b=1I3cd9U1apg6UUwPoKIeyzb4Dv6SGcwH4edYQzn+gWVcIctCE3DFHw1P/V9LkQoXQ3 x+Nua+frxZHEgaV9CFtBxTXpbslbfrTpquBe1AjKwLzmOXG41ItSN4cvpIvpurYT6XVN ZL8mW6HRyMyNcMvxs/TrEtxjgpWPrEGCaZSV48zu7EznJofGkMpg5gXaAYJbTntlc9La gppmcQnNVb9YFhNHlGgoY4SDLSUQrEnT73ufNRtAq/mEGTBJVtJPqOrHRzLABi7ika0B 68AK63JNc17pN7SuhxrNwfi2K3CvOfe8EJ+61ikvTep7M38XcYE01LxuqpPyjEJy1dkX drkQ== 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 ko21si1574034ejc.333.2021.04.09.01.37.44; Fri, 09 Apr 2021 01:38: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 S231946AbhDIIgt (ORCPT + 99 others); Fri, 9 Apr 2021 04:36:49 -0400 Received: from mailgw02.mediatek.com ([1.203.163.81]:8306 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S229673AbhDIIgt (ORCPT ); Fri, 9 Apr 2021 04:36:49 -0400 X-UUID: acf327dcf0664fe5b416ecaf894e39d8-20210409 X-UUID: acf327dcf0664fe5b416ecaf894e39d8-20210409 Received: from mtkcas35.mediatek.inc [(172.27.4.253)] by mailgw02.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1696923408; Fri, 09 Apr 2021 16:36:34 +0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by MTKMBS31N2.mediatek.inc (172.27.4.87) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 9 Apr 2021 16:36:28 +0800 Received: from localhost.localdomain (10.17.3.153) by mtkcas10.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 9 Apr 2021 16:36:27 +0800 From: Fengquan Chen To: Daniel Lezcano , Thomas Gleixner , Matthias Brugger , , , CC: , , Fengquan Chen Subject: [PATCH] [v3, 1/1] clocksource/drivers/timer-mediatek: optimize systimer irq clear flow on shutdown Date: Fri, 9 Apr 2021 16:36:07 +0800 Message-ID: <1617957367-479-2-git-send-email-Fengquan.Chen@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1617957367-479-1-git-send-email-Fengquan.Chen@mediatek.com> References: <1617957367-479-1-git-send-email-Fengquan.Chen@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: D50B5F8EB4DA75930AEADF960CA9BFDBADFF81711B1575D17A97B24A553E917A2000:8 X-MTK: N Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 Change-Id: I1cd408cef4af4c5d7965eab27eda305ee4356315 --- 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