Received: by 10.192.165.148 with SMTP id m20csp3660418imm; Mon, 30 Apr 2018 04:19:13 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqXWYV+N/UUQSGfkj/mY1SX3J/qlfuzIkZfHCBLTL5PTFCL8gwJEszZzWKuWd8wihSl1Sp8 X-Received: by 2002:a63:41c1:: with SMTP id o184-v6mr9749907pga.393.1525087153138; Mon, 30 Apr 2018 04:19:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1525087153; cv=none; d=google.com; s=arc-20160816; b=gziYjlkBdenD1YnEW9CjxoCPj2z7pcQs25oYgtbd3pMZjZQZdt/91cMUK4+hZSURdI ShfABQWE84/CtwR3fbNTgf+aQlgLDRs2FnnUTGU7GH86mx56SanvAwYKIQOZwtOW6QaO +DoiqXi8SMlRHCebmy6/yXlUjJHg28lxtUv+Y9dr2AwWZbGKyQeq4pcOoYnCr9fdI6+z fogNWq+hKX1ZD9AqNEDQAo8FXnAwnfd76nK0hpqvs6dUXxf5rb7QYPtUlU0l5TxQpo4X Qb9C4vYMcqJ5bXO7aQE4zgK5df5oUECG5/wZ0O/wBeDx80yRgLU+C0R/6kig4hzdq6uy Io3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=0h96wL9c5C59xrV0Lxm2oMKh9Ic3Z9fzmKDZ+AcI1eQ=; b=eIsNS4/AsXkN7l+N4oYn9wwipOOJ46eLz+YR2VgIw8aGRO+Qbe/K3CWmWR9TNklMrI tPLmhNAEpblvmhFw0qCTF+4rhLI89SpzlLN62HloAFxxceaOfIdp0TA0aT/PDupW+/3G DyWwsAVmBIKH3/KsmBCR9GErpth7gSwikkNSd2zoXdG5wCrZjk4I8WiohbTQ5pDWBxSb ONChdyfl3QI2KaHXPLmZoWEXzCqdO6sanHsKZlwAIGh7In6kId9RItIQzrULUUB1FzE0 4a0Xy2xY5Ol3IWZJ8yZxEqY/tZyXplxELLOU/e1GnPqT5oyKqfy+Y5t+CH2U1Pu631yd e7Mg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=f/0yXIOs; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s4-v6si7402853plp.266.2018.04.30.04.18.58; Mon, 30 Apr 2018 04:19:13 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=f/0yXIOs; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752994AbeD3LSa (ORCPT + 99 others); Mon, 30 Apr 2018 07:18:30 -0400 Received: from mail-pg0-f66.google.com ([74.125.83.66]:35752 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752668AbeD3LS3 (ORCPT ); Mon, 30 Apr 2018 07:18:29 -0400 Received: by mail-pg0-f66.google.com with SMTP id j11-v6so6120862pgf.2; Mon, 30 Apr 2018 04:18:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=0h96wL9c5C59xrV0Lxm2oMKh9Ic3Z9fzmKDZ+AcI1eQ=; b=f/0yXIOs7k7LKLDIGtJOqeITxrJV0mRJBmezYUUuTz8T98xyQzS3hFHfiOSUaNUqqN 9OCkpjhr5FJIS48R74ie+IDvYLjcBIqUXK8ptIAtH32ZAP2VkcgX6e7ID7v3yDUWgr61 hVBU3UJWpvmpG+yq5NFeLVejV1c8x1H/BJe9kqCoe6PDnE0/HCVLA8lciwjKTh3p1/U1 /bU+wKYBmiLk4ZPqPTjyVzkz1xLs7pN+wFe3ax7GgHmM2O7ullphc6k+vY83Yg5T9zMr KxiumBKsqLcinRv4ptQlBXAKMtxj33W9cOB1qxClhZS/KUcDLYBgs6WsgzOaQz2c2jdr R9Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:cc:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=0h96wL9c5C59xrV0Lxm2oMKh9Ic3Z9fzmKDZ+AcI1eQ=; b=QZdjDxARfTkVtApLFF+AiHJLV6u9+1EQ7Yr4Rdzsf9w51V4zqOf9aICtprxDAY+Kik M2tW59EbeoIEqwQAyex5/JOkWjKh3eWQbEhy+9d9Ne//csS5OUDyZ/260npKxdmzaZFE 3u3BsbIlYp4wlK7n0AkX/s3FkpJAvWUjoxCag4VrBB+6DJ1k97MPdqihFLGSMUINv7/+ kEsUeRr9RhTIKxRg3WwyptS4KEz4sGYNR05lRjeSySB73RMIw8l+qXoeZe/luQ+25LOW M+lRFI478S4hqqZwHAQ7U2XUakpxIBuQJpoYP2aWgZD0FKjzNo/b6NemfI2T1zAYnupD PWMg== X-Gm-Message-State: ALQs6tB6NqUtqbJuavSmMsw2OlNWVq8hMl9YXKfQeZ66cF8zyl/knsqD ClQMYjC4hyY3PjTuNDXaZmk= X-Received: by 10.98.13.151 with SMTP id 23mr11727264pfn.231.1525087108651; Mon, 30 Apr 2018 04:18:28 -0700 (PDT) Received: from server.roeck-us.net (108-223-40-66.lightspeed.sntcca.sbcglobal.net. [108.223.40.66]) by smtp.gmail.com with ESMTPSA id x4sm2466453pfb.99.2018.04.30.04.18.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 30 Apr 2018 04:18:27 -0700 (PDT) Subject: Re: [PATCH] watchdog: sp805: add restart handler To: Jongsung Kim , Viresh Kumar , Wim Van Sebroeck , linux-watchdog@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Chanho Min References: <20180430064433.28715-1-neidhard.kim@lge.com> From: Guenter Roeck Message-ID: <452a2320-c297-2bd2-2e98-0b71a077c065@roeck-us.net> Date: Mon, 30 Apr 2018 04:18:26 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180430064433.28715-1-neidhard.kim@lge.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 04/29/2018 11:44 PM, Jongsung Kim wrote: > Add restart handler for SP805 watchdog so that the driver can be > used to reboot the system. > > Signed-off-by: Jongsung Kim > --- > drivers/watchdog/sp805_wdt.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/watchdog/sp805_wdt.c b/drivers/watchdog/sp805_wdt.c > index 01d816251302..01f7b6c29f92 100644 > --- a/drivers/watchdog/sp805_wdt.c > +++ b/drivers/watchdog/sp805_wdt.c > @@ -23,6 +23,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -67,6 +68,7 @@ struct sp805_wdt { > struct clk *clk; > struct amba_device *adev; > unsigned int load_val; > + struct notifier_block restart; > }; > > static bool nowayout = WATCHDOG_NOWAYOUT; > @@ -200,6 +202,18 @@ static const struct watchdog_ops wdt_ops = { > .get_timeleft = wdt_timeleft, > }; > > +static int > +wdt_restart(struct notifier_block *this, unsigned long mode, void *cmd) > +{ > + struct sp805_wdt *wdt = container_of(this, struct sp805_wdt, restart); > + > + writel_relaxed(0, wdt->base + WDTCONTROL); > + writel_relaxed(0, wdt->base + WDTLOAD); > + writel_relaxed(INT_ENABLE | RESET_ENABLE, wdt->base + WDTCONTROL); > + > + return 0; > +} > + > static int > sp805_wdt_probe(struct amba_device *adev, const struct amba_id *id) > { > @@ -241,6 +255,10 @@ sp805_wdt_probe(struct amba_device *adev, const struct amba_id *id) > } > amba_set_drvdata(adev, wdt); > > + wdt->restart.notifier_call = wdt_restart; > + wdt->restart.priority = 128; > + register_restart_handler(&wdt->restart); > + Why not use the watchdog core ? Guenter > dev_info(&adev->dev, "registration successful\n"); > return 0; > > @@ -253,6 +271,7 @@ static int sp805_wdt_remove(struct amba_device *adev) > { > struct sp805_wdt *wdt = amba_get_drvdata(adev); > > + unregister_restart_handler(&wdt->restart); > watchdog_unregister_device(&wdt->wdd); > watchdog_set_drvdata(&wdt->wdd, NULL); > >