Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp3903561pxf; Mon, 22 Mar 2021 19:34:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwZjMZyKKtvAtkPPC+1og7i9hJ7saurY+v/1ub56CcC5dBGN6U3UvyyqTPhC5Y/vjw5gbTs X-Received: by 2002:a17:906:938f:: with SMTP id l15mr2582098ejx.15.1616466883821; Mon, 22 Mar 2021 19:34:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1616466883; cv=none; d=google.com; s=arc-20160816; b=W8t3xBRJkkmUzrzRvz2F8rm5jevpIBZjVadcel9yjT2F3DSWlb44aCeey8FHKZ/joS lAfNKLH6N3kseWKaXd0sgd/QDRBLmjeA/hu3zNzoIUzAN04M8iVm+fGFbQAsglldrElJ 7iT1x4dkgM5weRz+jBVTYX0zFBiXQ+O6wqRtRrVJYNQITOnz1bseAu5MR0CT0qQFWBrO zsno7jbNkpi06D6WNeQORzmBpTw92Gkak37cQyjw2LHRjJeDbOwLby3eLbv3C2VOAQOn s4QyjTc8lGwRIrYEPRQl7M1cAV6bp8E6c9829kul11wlHVitFG0EisHn/7IozuIjCfKj mLpQ== 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=/PNfJp056kSOAhF1JC6fHKGW+1ZC3wnB64Och9PFNCk=; b=v8/zBPSfRps5LA7uG4jyH90RXBtZO5IdE50wQLp8kDAKbpyivnuO4aXRjDu1gCu6mq ihM+7uuHFcFW2IpI51x94EtlfjvpNRQ86I57o7KDVRpkf3i4ey8VzcqGkWehZAGCIW1P JS1XlCQ45nDyA8csUG6WD/vd/PGtD4mPKJnZOpBpaaMtksUlfeI1GPFFU5l+CYlncqFM KYq2Hw7AeQsgmihTGQSE+vjFJziYXmdRrvhs2s3C3mqIkxFlHuMqjkbmi4lZZQgEumU7 9v5QzrRyX8whw+RI8VvEiKT81z9oZp5PEOKisBdP1+jnwPpvN0eRmnid3c4iwMzN6Z5+ hqzA== 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 j5si13048154edy.408.2021.03.22.19.34.21; Mon, 22 Mar 2021 19:34:43 -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 S229658AbhCWC32 (ORCPT + 99 others); Mon, 22 Mar 2021 22:29:28 -0400 Received: from Mailgw01.mediatek.com ([1.203.163.78]:18570 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S229494AbhCWC3T (ORCPT ); Mon, 22 Mar 2021 22:29:19 -0400 X-UUID: 48e53b11c35f4e56b99ec7d95215c6c0-20210323 X-UUID: 48e53b11c35f4e56b99ec7d95215c6c0-20210323 Received: from mtkcas36.mediatek.inc [(172.27.4.253)] by mailgw01.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 635549371; Tue, 23 Mar 2021 10:29:17 +0800 Received: from mtkcas10.mediatek.inc (172.21.101.39) by MTKMBS31N1.mediatek.inc (172.27.4.69) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 23 Mar 2021 10:29:11 +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; Tue, 23 Mar 2021 10:29:10 +0800 From: Fengquan Chen To: Daniel Lezcano , Thomas Gleixner , Matthias Brugger , , , CC: , , Fengquan Chen Subject: [PATCH] [v2, 1/1]Fixes: e3af677607d9(clocksource/drivers/timer-mediatek: optimize systimer irq clear flow on shutdown) Date: Tue, 23 Mar 2021 10:29:03 +0800 Message-ID: <1616466543-13387-2-git-send-email-Fengquan.Chen@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1616466543-13387-1-git-send-email-Fengquan.Chen@mediatek.com> References: <1616466543-13387-1-git-send-email-Fengquan.Chen@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: D4488B2E5BBE6B138EAD1D7F778C11CE6D71F350986AF03F3C2E7D89D3F24D972000: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 Change-Id: Ia3eda83324af2fdaf5cbb3569a9bf020a11f8009 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