Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp6113676ybv; Tue, 18 Feb 2020 10:09:34 -0800 (PST) X-Google-Smtp-Source: APXvYqxt2t1di/0EFfC/x/M3V4pMYsI571f3FOscrWi5qRs7LGDqDWhhPIHPIYfRfbTIrG3enDWJ X-Received: by 2002:aca:c70b:: with SMTP id x11mr2097781oif.29.1582049374587; Tue, 18 Feb 2020 10:09:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1582049374; cv=none; d=google.com; s=arc-20160816; b=eTbBuiC2BmaOux6kVajAbcdL28huxzkZZ3HKNBCigw9+fZHpiOb1/5SRjPFJaF4/Kp GAkbV0p5GRLZf3lUjWUfm/vhFZNR2qeluDxvLgQQeAX6cXXEXFgHx93hLtY3Lst2Fyem Ky+8w4GGLf17ExK+PHksy1xE3iSkzz2eTWuOYJ7N8P0sBfmshdXhPLCUyNMeWarW/BQa 1CjylRppJ9wzpdD4wK1h47SHoIoH+lhR6zPAaceQOLLEXscfknrlZ6qbctw394BXxvNu CZ7kGtHinuq3GvQnn5RUY9+lVWdtR223rgW3E6AhY7hrzxUvEdSZrGn7vzo/uB1cyWSj 0AhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=6prP7ysYWXxngsabwCLZ6Q8WNjavjjlVNgaAaw12qdY=; b=nCu+BR09fcfmea2Y3T7ISizpoWLoFEL64Y3DDxanlSQ8A6HMuJ64NbYKKhj1rDjtFw ZDAF2I0ru8p4YUpCivKRicRWZyeOsw6j4uxvBHj5qiU98bQhEDDOTei6iAgDQFG1JFNz 2SRs/+rMx3V9u6QXRBH6UBs4Sc69+fsXgAaEWYfc+z0+LJt742q1wjdyhTam83t0P+6y bLF9WJAizKKmEtKSDIUNmfGNwl6xQ0aXob0beRa4QwSQo9zCnKxyIf1hjqXc2CzDzAYr iSg3JgdTkmMKjxzd7Lzd3iRwrJSfqeGQCygAmNfUsPdxai7NLYslEZnN+qTQ6rye0qds N9+Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=fx2lGVQK; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id x84si8328645oia.27.2020.02.18.10.09.21; Tue, 18 Feb 2020 10:09:34 -0800 (PST) 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=pass header.i=@linaro.org header.s=google header.b=fx2lGVQK; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726548AbgBRSIN (ORCPT + 99 others); Tue, 18 Feb 2020 13:08:13 -0500 Received: from mail-ua1-f65.google.com ([209.85.222.65]:43959 "EHLO mail-ua1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726168AbgBRSIN (ORCPT ); Tue, 18 Feb 2020 13:08:13 -0500 Received: by mail-ua1-f65.google.com with SMTP id o42so7786622uad.10 for ; Tue, 18 Feb 2020 10:08:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=6prP7ysYWXxngsabwCLZ6Q8WNjavjjlVNgaAaw12qdY=; b=fx2lGVQKk26pPAfyKcAsRSrGbTuNO3q08Z07hJsNy8c8SrZ3VTpeMJeE2T/XJFLDVv 7UH+54XwBkACySAz7ob046rH5LmcV/kHRLOptqkAEZ0gzx23a15q/uuupl1GzPoEApyn EaEl+yQBStY3BALT+DDkCz4CxqvytqLNl2SJMUoYbCsLSGVazlljVeOO033WQfgbkco2 8Dr0PL76qPJKtBpvSZU3vGh8OGo+HlBfjG39ijpu7SaZIVl2sA5lj4OpFFvRDyNyspX9 StNgFWnBH3VvWv3Xs2wIUScxDGTAzPqKuIjSZVHVsBNYNxix4MZ9n1+X5+uWcD08A34D zn3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=6prP7ysYWXxngsabwCLZ6Q8WNjavjjlVNgaAaw12qdY=; b=e+9vkU4ZI18btJAEHOoz+tWCix2oJV5PhOd2L95q32XLbCQjPSg1ijpS0ngKPKJ0Z3 fHQriLgqNEHAO43WWAkr3fylB8R1NhT4Z9cIJM4LRgYDTrPacs3NMX276uFx2WS0vElJ 0xMP7AtHdcBICV4Fgt502rGYUA9lpRc5MTfhrbAmMDMZt7sxlFP62D8+/mlTTvCm7E2K 3IRFaylR1xgtGJE8FffnQwyeB1b2fX+1mBQC1Ms/wcpJ6aEC1S8gFrAYChsklV0t/Twf DYVEb7Y512FLQB4aVUW811mcnzLwLE7ajvv2GVRyJ84f8++ShuJ281Gr8xrg3VTE/iWt 20bg== X-Gm-Message-State: APjAAAWBZvIdsG5muxQEaoSQqHzUvCyrKFhINKmwnDzGhCHU75W/iFhg wRpi7J15kWMi7IQuSf1uhjnschzm+KBiJ8rd89FvEw== X-Received: by 2002:ab0:2358:: with SMTP id h24mr11397467uao.67.1582049292153; Tue, 18 Feb 2020 10:08:12 -0800 (PST) MIME-Version: 1.0 References: <20200203184213.GG3948@builder> In-Reply-To: <20200203184213.GG3948@builder> From: Amit Kucheria Date: Tue, 18 Feb 2020 23:38:00 +0530 Message-ID: Subject: Re: [PATCH v4 5/7] drivers: thermal: tsens: Add watchdog support To: Bjorn Andersson Cc: LKML , linux-arm-msm , Stephen Boyd , sivaa@codeaurora.org, Andy Gross , Linux PM list Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Feb 4, 2020 at 12:12 AM Bjorn Andersson wrote: > > On Thu 30 Jan 05:27 PST 2020, Amit Kucheria wrote: > > > TSENS IP v2.3 onwards adds support for a watchdog to detect if the TSENS > > HW FSM is stuck. Add support to detect and restart the FSM in the > > driver. The watchdog is configured by the bootloader, we just enable the > > watchdog bark as a debug feature in the kernel. > > > > Signed-off-by: Amit Kucheria > > --- > > drivers/thermal/qcom/tsens-common.c | 43 +++++++++++++++++++++++++++++ > > drivers/thermal/qcom/tsens-v2.c | 10 +++++++ > > drivers/thermal/qcom/tsens.h | 14 ++++++++++ > > 3 files changed, 67 insertions(+) > > > > diff --git a/drivers/thermal/qcom/tsens-common.c b/drivers/thermal/qcom/tsens-common.c > > index 9d1594d2f1ed..ee2414f33606 100644 > > --- a/drivers/thermal/qcom/tsens-common.c > > +++ b/drivers/thermal/qcom/tsens-common.c > > @@ -377,6 +377,26 @@ irqreturn_t tsens_critical_irq_thread(int irq, void *data) > > struct tsens_irq_data d; > > unsigned long flags; > > int temp, ret, i; > > + u32 wdog_status, wdog_count; > > + > > + if (priv->feat->has_watchdog) { > > + ret = regmap_field_read(priv->rf[WDOG_BARK_STATUS], &wdog_status); > > + if (ret) > > + return ret; > > + > > + if (wdog_status) { > > + /* Clear WDOG interrupt */ > > + regmap_field_write(priv->rf[WDOG_BARK_CLEAR], 1); > > + regmap_field_write(priv->rf[WDOG_BARK_CLEAR], 0); > > + ret = regmap_field_read(priv->rf[WDOG_BARK_COUNT], &wdog_count); > > + if (ret) > > + return ret; > > + if (wdog_count) > > + dev_dbg(priv->dev, "%s: watchdog count: %d\n", __func__, wdog_count); > > + > > + return IRQ_HANDLED; > > Patch looks good, but would is make sense to fall through and handle > critical interrupts as well (both in positive and error cases of this > hunk)? Yes, it makes sense. I'll remove the return IRQ_HANDLED and add a comment instead. > Reviewed-by: Bjorn Andersson > > Regards, > Bjorn