Message ID | 20210811124800.2593226-8-rasmus.villemoes@prevas.dk |
---|---|
State | Changes Requested |
Delegated to: | Stefan Roese |
Headers | show
Return-Path: <u-boot-bounces@lists.denx.de> X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=<UNKNOWN>) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=prevas.dk header.i=@prevas.dk header.a=rsa-sha256 header.s=selector1 header.b=N85Ojc2M; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4Gl8m81yDZz9tkJ for <incoming@patchwork.ozlabs.org>; Wed, 11 Aug 2021 22:49:44 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3BC2482DFA; Wed, 11 Aug 2021 14:48:50 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=prevas.dk Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=prevas.dk header.i=@prevas.dk header.b="N85Ojc2M"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D5DA082DD4; Wed, 11 Aug 2021 14:48:32 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS autolearn=no autolearn_force=no version=3.4.2 Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0700.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe1e::700]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id B381182C2C for <u-boot@lists.denx.de>; Wed, 11 Aug 2021 14:48:15 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=reject dis=none) header.from=prevas.dk Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=rasmus.villemoes@prevas.dk ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XS3i+7kmke8ok/QjeND4izIXD2LWv88HpyCXcLq4pbFcVh5ond54NdI9pm14xtxGr8+V3VY1JtM+4d8qK5qTcIhdRj2POfsZHc+tQgEZTpssqhNrlBkuSnPo+A5v4UjJeJO3FmZ2CwoYUUjKgaTmUjaRvF8+P118y0buzh/CibWwhm8JY+MxdhRdL/JE46/XVF0OdYIUQPmrxlWTcSMNOKxd16dYzm4MR1QZONwRl23azBMWLxENxAH5Z3O7N1jGhwUb9LnUJpoXeDAjjc01lwcIfHzxbnvRQYk2iSvzofs+0mroCS4iKCsqGZOsVZQu2veh6LqeiQt7ibzDCji54g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6tJ/jaoCOMhCAr8AsdDDTgLtRpW0t7gdt1kWpF4E7Es=; b=Yon6wuXebDd9cWnOHiwslAs3QbU8nHBaxBuX6UUPeIxAejnpgxY0W+b1/bHlSGyN6n98vzzT0sy1lyDm6RiphQU5fWERzD1BwVnLj/O+6ayenZf+xdZYgmg/sHExVH2vrT1+yCllRh8yiCfIZ6MUa8TLCXnQaFxBAIV54owiFwFjtT8yaB1VnkcBWduRp2CRXHqxGU/YCBZ6lk1PBJtIJxDBPtLJvyW463Zf3mU9HRTBZrUzyvIyYzgM1+n2mKhjGjFDAMDreOBIjNcX4B6h4+SP/K90Zr4M4rRpYRKeyuRiVGv1FBngKwjkmb1bFK9aQFdG7NIOOgrMaB/oFj+tYg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=prevas.dk; dmarc=pass action=none header.from=prevas.dk; dkim=pass header.d=prevas.dk; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=prevas.dk; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6tJ/jaoCOMhCAr8AsdDDTgLtRpW0t7gdt1kWpF4E7Es=; b=N85Ojc2M0/Ti1EesgcG+KUd/D8cEndlWz2p1RxUoDTLOMTP4KYZ90rtAESvf8ZUBGL+wXpj+2k7KP1vxJPTSIo5fSoLh1N0wAbAZOAkfLpmrsylKN9oBudmhX+mWZHg86KAQ+cTTViDYBJh98M9VrRIbAu+eAgmTrBqnrjAKkic= Authentication-Results: lists.denx.de; dkim=none (message not signed) header.d=none;lists.denx.de; dmarc=none action=none header.from=prevas.dk; Received: from AM0PR10MB1874.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:3f::10) by AM8PR10MB4083.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:1e8::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.15; Wed, 11 Aug 2021 12:48:14 +0000 Received: from AM0PR10MB1874.EURPRD10.PROD.OUTLOOK.COM ([fe80::fc83:36a5:db02:3dbb]) by AM0PR10MB1874.EURPRD10.PROD.OUTLOOK.COM ([fe80::fc83:36a5:db02:3dbb%7]) with mapi id 15.20.4394.025; Wed, 11 Aug 2021 12:48:14 +0000 From: Rasmus Villemoes <rasmus.villemoes@prevas.dk> To: u-boot@lists.denx.de Cc: Simon Glass <sjg@chromium.org>, Stefan Roese <sr@denx.de>, Tom Rini <trini@konsulko.com>, Rasmus Villemoes <rasmus.villemoes@prevas.dk> Subject: [PATCH v5 07/12] watchdog: wdt-uclass.c: add wdt_stop_all() helper Date: Wed, 11 Aug 2021 14:47:55 +0200 Message-Id: <20210811124800.2593226-8-rasmus.villemoes@prevas.dk> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210811124800.2593226-1-rasmus.villemoes@prevas.dk> References: <20210811124800.2593226-1-rasmus.villemoes@prevas.dk> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: HE1P190CA0049.EURP190.PROD.OUTLOOK.COM (2603:10a6:7:52::38) To AM0PR10MB1874.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:208:3f::10) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from prevas-ravi.prevas.se (81.216.59.226) by HE1P190CA0049.EURP190.PROD.OUTLOOK.COM (2603:10a6:7:52::38) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.15 via Frontend Transport; Wed, 11 Aug 2021 12:48:14 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fa5af49d-00e7-4e08-a15d-08d95cc648d7 X-MS-TrafficTypeDiagnostic: AM8PR10MB4083: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: <AM8PR10MB4083914976DB275414156E0993F89@AM8PR10MB4083.EURPRD10.PROD.OUTLOOK.COM> X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TSolxgOgnAbGMib0G3WFUPGeRP3uuRDBMiY2VI37mJ5SbKHIGU2bkzHkwZhXHGReUremAaOatu6/RLdNJXMfzmolC8xNxcYXbBYPaBIhLNml9WD71qyoq0juJN7kRgtDLffCf2A7ZtA9GnqIqbeWIU/IHQfav7sPiH264Z6MpgC/r5fuawuVEKbvYnZl4wzZ8P+ykmpaAHR6OSYhSfQ3wpcWk324ieMh3zxT5I++QuDnXRGV5V38EbsxJCA4+1nFbzoxyEjjc4d1WHRGLzNQqfMGvbuB77D2XI37co3QlNDATXhTMr/NT0kjDcsAlDlW578YqdL28FrcMr3e3iqeoRXk+yx1F1sVfUKgaIItL4xtXl8SJi1iW+uen7PpoXSUoMMygl3qlf45ww8KJvS9v52a/+GB/ieA4BVoclj9ZYKJiRqSaZoPBKX1vfT18RKJc3B7LAQFvE2mDaiOFf9ezQcl+o7n2dFdRz/wEn0sLCMMrbw5cl1tYxGe8ASqZODBTb1ZqlSk30My612kiMRuS/9aULNdz/uMaGDAo6klmKwUtvWuPWlELwn8WF7cSlcNDC03VpN9AuefMw+jbLVkk+QGXeO/ZOZ+XzEIVJWy2MobAeqNeSDKm1Re91ufSjWqN6wPyiKreuBmoKn9npHR8y+SNdN3a00kj4TSZ6hOJo0G+UaCfdxS4R8i/eb5Wur8nP1HWED7OAVDDsosGbTsJQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR10MB1874.EURPRD10.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(346002)(366004)(396003)(39850400004)(376002)(136003)(8676002)(2906002)(5660300002)(38350700002)(38100700002)(186003)(956004)(8936002)(8976002)(2616005)(26005)(36756003)(1076003)(4326008)(6512007)(6506007)(6486002)(52116002)(478600001)(107886003)(54906003)(316002)(83380400001)(44832011)(66946007)(6666004)(86362001)(66476007)(6916009)(66556008); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: q2EP6EQPS3Q+bPmID+BXI8GHg8rfit17GiVBZUFjEcbHDlqWW6/YAr/unqyvAnVG2NCU18aUbXoavHWBvuc3wFCDFeh2TTpnaDrf/wW+tBtDeRSbgxisI73iIBn0t/xbPXu5jfUs8ewqA6cTS1PJd2ykWLbJKcoT000wA28PImmC32bXXuWAOIg5x15sqW8NoNbGap66D/ct29lXBtJDXVUQZ9Y0ONRULEPPt+Hyya+hpxUgOtOb4Ndeu/U66dONTH/S4ozIZDrfrSt3s0bJHVRYkC4nNDxhTuzLbpdUVRlgwI6oOPEAudhz2BuRc/x+lqGUchv2u1Z0ATozRC/Fl6s16rSOE+5sLAsnEKbu1huRbz7MrlZGQYqMvEmwbaysrxfd9GJ8/6UcrY/pX4aUMswIQyRFPnD+H1FCs9+hxHZR0x558/ApH8VHCtC0a9t/kn2P1QRq6iZEPJ+D98b9pe7JFyH6zmiHChvz1Lw44BrbiNOegmqY6TuHLeov48uGXRFM6vVlGvBxbDIiYr3iKvAFG+aJw6kYQrTYwphqKrztGgiuc+I+ljR/ZDDcix5jTu0zcbXS4NJW/YOxOtHvck+AIejSH3MKzH5N9AXgAT61K9EIKXmBwhOs0xCOioVe7WXbaJosJro79FdCh8jacthfl+Uon+YmXIKxR/tBPjvVaE0fjo0G6yJqBofKeLdTfhx2B7YoKJd8W8EjbDLnFVzlADzPrzPMVEUWwApIO6vj6NHdG5ChsFmzoZ5k/ejnK4TivR7e726Fg5ch+fZdMAckpHmILghn0MJufiwRxpxMQrnl4AjsYvxPggUZWKVJm827Sr/Gudt8/DPHl2JY86lKH9kvslqkb5Ui91+NLRICKWLVrmh/aEygMXvDv7mKi2lVzhSGC4m/fwdj4H3+LIgFpw1yIZ170nxCgNN4Lo2Mx/yUvdjPbcpE2XpRUafWk6Sskst2A9WaiXWe0kxfVwSNoG+ZKKNPIFBSPjWPHJzdx2WwfJgklAf/WkUf9Jtv4Rrc6QAcYn9KkRKnxDzVmJHCb/zd6uBNAs/w5UnHqwfsWgrB7IWFXDrms2AtiXMGqZAj8u9rOwcpuT4b3hRhqS9jhF+Pw9BZ9k/1HQTH4GQiY3sagtYsIFcRS7Im/xnlZIz8uzTj8QfX/9qFTPfCZloAvyLoG6WX1vpUd4U61qXVdy51cwNWZH99XbhaPvlok+S8RORPPj4Q/Lj08D72BlEP8lnzWEaiWYKfGxvTXosW3opuqPifrUg6g8T+JAp/+sO9eBqW/nVxkaO/OjchL/3/ZvaGpOGHCLZI0RsdbXbnCpYQ/rPPCmVQZcGjrm6M X-OriginatorOrg: prevas.dk X-MS-Exchange-CrossTenant-Network-Message-Id: fa5af49d-00e7-4e08-a15d-08d95cc648d7 X-MS-Exchange-CrossTenant-AuthSource: AM0PR10MB1874.EURPRD10.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2021 12:48:14.6675 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: d350cf71-778d-4780-88f5-071a4cb1ed61 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: hEyDeTUwyF0Mu2Iz6MyAc0Yty3Tr8yAbL78fJUko6xWmUbabdMrsIvOyc2plY3vbLMkk53zNj0VWGL4MygRnqS+o16+WXSb0/zoiIuf0P7A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR10MB4083 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion <u-boot.lists.denx.de> List-Unsubscribe: <https://lists.denx.de/options/u-boot>, <mailto:u-boot-request@lists.denx.de?subject=unsubscribe> List-Archive: <https://lists.denx.de/pipermail/u-boot/> List-Post: <mailto:u-boot@lists.denx.de> List-Help: <mailto:u-boot-request@lists.denx.de?subject=help> List-Subscribe: <https://lists.denx.de/listinfo/u-boot>, <mailto:u-boot-request@lists.denx.de?subject=subscribe> Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" <u-boot-bounces@lists.denx.de> X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean |
Series |
handling all DM watchdogs in watchdog_reset()
|
expand
|
diff --git a/drivers/watchdog/wdt-uclass.c b/drivers/watchdog/wdt-uclass.c index 358fc68e27..75ff4c2a6c 100644 --- a/drivers/watchdog/wdt-uclass.c +++ b/drivers/watchdog/wdt-uclass.c @@ -116,6 +116,31 @@ int wdt_stop(struct udevice *dev) return ret; } +void wdt_stop_all(void) +{ + struct wdt_priv *priv; + struct udevice *dev; + struct uclass *uc; + int ret; + + ret = uclass_get(UCLASS_WDT, &uc); + if (ret) { + log_debug("Error getting UCLASS_WDT: %d\n", ret); + return; + } + + uclass_foreach_dev(dev, uc) { + if (!device_active(dev)) + continue; + priv = dev_get_uclass_priv(dev); + if (!priv->running) + continue; + ret = wdt_stop(dev); + if (ret) + log_debug("wdt_stop(%s) failed: %d\n", dev->name, ret); + } +} + int wdt_reset(struct udevice *dev) { const struct wdt_ops *ops = device_get_ops(dev); diff --git a/include/wdt.h b/include/wdt.h index bc242c2eb2..5ab5cecbe0 100644 --- a/include/wdt.h +++ b/include/wdt.h @@ -37,6 +37,11 @@ int wdt_start(struct udevice *dev, u64 timeout_ms, ulong flags); */ int wdt_stop(struct udevice *dev); +/* + * Stop all registered watchdog devices. + */ +void wdt_stop_all(void); + /* * Reset the timer, typically restoring the counter to * the value configured by start()
Since the watchdog_dev member of struct global_data is going away in favor of the wdt-uclass handling all watchdog devices, prepare for that by adding a helper to call wdt_stop() on all known devices. Initially, this will only be used in one single place (board/alliedtelesis/x530/x530.c), and that user currently ignores the return value of wdt_stop(). It's not clear what one should do if we encounter an error (remember the error but still stop the remaining ones? return immediately? try to unwind and restart the devices already stopped?). Moreover, some watchdogs are by design always-running (and don't have a ->stop method at all), so at the very least some exception for -ENOSYS would be in order. So for now, and until a real use case appears from which we can decide the desired semantics, have the function return void and just emit a log_debug() if an error is encountered. Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk> --- drivers/watchdog/wdt-uclass.c | 25 +++++++++++++++++++++++++ include/wdt.h | 5 +++++ 2 files changed, 30 insertions(+)