From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2DE9DC2BC73 for ; Wed, 4 Dec 2019 18:11:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0020520865 for ; Wed, 4 Dec 2019 18:11:17 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575483078; bh=zei5XXSiJlVh0aRUkaleW2khLyQEpR2YizO3Ith2k/0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=d8CadgcMxfwMmZeCuUuvuKMLJyAY6vz7ZNbig2eKkTwOq7WDIrRAD3TbKc51TnBHq TGl56fnJjrhw0m3q1yk2hbkTgUfqHSpd752ygdGjM2bQbioDyqVzSM0Wq0PaozIAFo dgqwKzkLAHAg96dode7MVFdO4k57yCDhJaKPqFHI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731387AbfLDSLN (ORCPT ); Wed, 4 Dec 2019 13:11:13 -0500 Received: from mail.kernel.org ([198.145.29.99]:39228 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731403AbfLDSLM (ORCPT ); Wed, 4 Dec 2019 13:11:12 -0500 Received: from localhost (unknown [217.68.49.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 99F3920863; Wed, 4 Dec 2019 18:11:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1575483072; bh=zei5XXSiJlVh0aRUkaleW2khLyQEpR2YizO3Ith2k/0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=V7PCSDGZCEdMDxIPPB6C9fpUiqZYgW+xK9KBMEXzSop1dxwn2wqrxfdCzMlhGyJpQ VOeYgDbWJzxKvBjkORM3f/9lHQoLOZZjaqUsmiHhIBEC5ziiReAb4SVEY3F2cN5Krg 7GVvDsJNr/0D8sxYsb/yKOaLJc7MniyrK2SBlFQw= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Xingyu Chen , Neil Armstrong , Kevin Hilman , Guenter Roeck , Wim Van Sebroeck , Sasha Levin Subject: [PATCH 4.9 009/125] watchdog: meson: Fix the wrong value of left time Date: Wed, 4 Dec 2019 18:55:14 +0100 Message-Id: <20191204175313.361413674@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191204175308.377746305@linuxfoundation.org> References: <20191204175308.377746305@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org From: Xingyu Chen [ Upstream commit 2c77734642d52448aca673e889b39f981110828b ] The left time value is wrong when we get it by sysfs. The left time value should be equal to preset timeout value minus elapsed time value. According to the Meson-GXB/GXL datasheets which can be found at [0], the timeout value is saved to BIT[0-15] of the WATCHDOG_TCNT, and elapsed time value is saved to BIT[16-31] of the WATCHDOG_TCNT. [0]: http://linux-meson.com Fixes: 683fa50f0e18 ("watchdog: Add Meson GXBB Watchdog Driver") Signed-off-by: Xingyu Chen Acked-by: Neil Armstrong Reviewed-by: Kevin Hilman Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck Signed-off-by: Sasha Levin --- drivers/watchdog/meson_gxbb_wdt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/watchdog/meson_gxbb_wdt.c b/drivers/watchdog/meson_gxbb_wdt.c index 44d180a2c5e57..58e06f059e673 100644 --- a/drivers/watchdog/meson_gxbb_wdt.c +++ b/drivers/watchdog/meson_gxbb_wdt.c @@ -137,8 +137,8 @@ static unsigned int meson_gxbb_wdt_get_timeleft(struct watchdog_device *wdt_dev) reg = readl(data->reg_base + GXBB_WDT_TCNT_REG); - return ((reg >> GXBB_WDT_TCNT_CNT_SHIFT) - - (reg & GXBB_WDT_TCNT_SETUP_MASK)) / 1000; + return ((reg & GXBB_WDT_TCNT_SETUP_MASK) - + (reg >> GXBB_WDT_TCNT_CNT_SHIFT)) / 1000; } static const struct watchdog_ops meson_gxbb_wdt_ops = { -- 2.20.1