From patchwork Fri Dec 18 14:18:16 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Lezcano X-Patchwork-Id: 7886351 Return-Path: X-Original-To: patchwork-linux-arm@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 543B9BEEE5 for ; Fri, 18 Dec 2015 15:10:49 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 7907B20416 for ; Fri, 18 Dec 2015 15:10:48 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 98C1E20145 for ; Fri, 18 Dec 2015 15:10:46 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1a9wec-0007vy-5l; Fri, 18 Dec 2015 15:09:10 +0000 Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1a9vtK-0007r5-Kx for linux-arm-kernel@lists.infradead.org; Fri, 18 Dec 2015 14:20:22 +0000 Received: by mail-wm0-x229.google.com with SMTP id l126so67223771wml.1 for ; Fri, 18 Dec 2015 06:19:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=XTVAXdopc8/0L3rv1OCd9XBaimjIqh1fuDuFvLdKZIo=; b=DBiuVUwSjEepyXbxAbGCA0KZ3B3VN56Nq8US2rbWZuHf/j5ad1DYMflXm2MvsZuFNC nUgJvZ3SvS5VdqZL2RJFW5Tnw1QweAlpM3wZfXk8DhTaH4IC6ql7YzjwXRrLy6Qo1zlL 8iPsnJURfXpBTfLygpDvG7ddVkX3Cuxo2+NSY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=XTVAXdopc8/0L3rv1OCd9XBaimjIqh1fuDuFvLdKZIo=; b=IkuHDBC4qfEjVhxwdEM/TzaIr3jAanvgKbud0EytBE8bMLrU3kTUjI/KmtZrL4eth3 ffho2g9PPi/67lLcDN/Ch1LRATbwgtA2+xGqU0GmUL77VHtbs8W5Aw2FLXmLDWhwRR8q 8A++nOaHajkGp1+02h1hZJFiG6OPu1cuKwP8Vkj/aolwVa0Plirai5/SXmYjL/AAHj3Q d6f3/rB8eaGR74xzr/9NGuxBrkrIbzHHtILxai9rnGWQ3aybxA45rMqK2OVuoO/ZdwZg PiWw0XAORNd6KaLk8uv3ayYTbDO+fa+pycVksCLUz1wO5bxgv5gHvh8N2BrohtVFSDYg OjSw== X-Gm-Message-State: ALoCoQm8WcNn840hux0WyePXQyNvLrmaqV+yJpW+bCohuNTGrjRgdBTrZK9SnW4ClOAPgmuQx24M2a7n6bg7HuvgLlrdKFTNtg== X-Received: by 10.194.116.40 with SMTP id jt8mr4795198wjb.57.1450448397925; Fri, 18 Dec 2015 06:19:57 -0800 (PST) Received: from localhost.localdomain ([78.210.255.2]) by smtp.gmail.com with ESMTPSA id ql10sm15010027wjc.23.2015.12.18.06.19.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 18 Dec 2015 06:19:57 -0800 (PST) From: Daniel Lezcano To: tglx@linutronix.de Subject: [PATCH 63/69] clocksource/drivers/arm_global_timer: Fix suspend resume Date: Fri, 18 Dec 2015 15:18:16 +0100 Message-Id: <1450448302-27429-63-git-send-email-daniel.lezcano@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1450448302-27429-1-git-send-email-daniel.lezcano@linaro.org> References: <5672CB9E.7090707@linaro.org> <1450448302-27429-1-git-send-email-daniel.lezcano@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20151218_062019_043180_551E8FD9 X-CRM114-Status: GOOD ( 13.54 ) X-Spam-Score: -2.0 (--) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Grygorii Strashko , "open list:ARM/STI ARCHITECTURE" , Arnd Bergmann , Tony Lindgren , Srinivas Kandagatla , linux-kernel@vger.kernel.org, Felipe Balbi , Patrice Chotard , Marc Zyngier , John Stultz , mingo@kernel.org, linux-arm-kernel@lists.infradead.org, Maxime Coquelin MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Grygorii Strashko Now the System stall is observed on TI AM437x based board (am437x-gp-evm) during resuming from System suspend when ARM Global timer is selected as clocksource device (CPUIdle not enabled) - SysRq are working, but nothing else. The reason of stall is that ARM Global timer loses its contexts during System suspend: GT_CONTROL.TIMER_ENABLE = 0 (unbanked) GT_COUNTERx = 0 Hence, update ARM Global timer driver to reflect above behaviour - re-enable ARM Global timer on resume (GT_CONTROL.TIMER_ENABLE = 1) if not enabled. CC: Arnd Bergmann Cc: John Stultz Cc: Felipe Balbi Cc: Tony Lindgren Cc: Marc Zyngier Reviewed-by: Santosh Shilimkar Signed-off-by: Grygorii Strashko Signed-off-by: Daniel Lezcano --- drivers/clocksource/arm_global_timer.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/clocksource/arm_global_timer.c b/drivers/clocksource/arm_global_timer.c index f99be6b..d189d8c 100644 --- a/drivers/clocksource/arm_global_timer.c +++ b/drivers/clocksource/arm_global_timer.c @@ -195,12 +195,23 @@ static cycle_t gt_clocksource_read(struct clocksource *cs) return gt_counter_read(); } +static void gt_resume(struct clocksource *cs) +{ + unsigned long ctrl; + + ctrl = readl(gt_base + GT_CONTROL); + if (!(ctrl & GT_CONTROL_TIMER_ENABLE)) + /* re-enable timer on resume */ + writel(GT_CONTROL_TIMER_ENABLE, gt_base + GT_CONTROL); +} + static struct clocksource gt_clocksource = { .name = "arm_global_timer", .rating = 300, .read = gt_clocksource_read, .mask = CLOCKSOURCE_MASK(64), .flags = CLOCK_SOURCE_IS_CONTINUOUS, + .resume = gt_resume, }; #ifdef CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK