Received: by 2002:a25:e7d8:0:0:0:0:0 with SMTP id e207csp173061ybh; Tue, 10 Mar 2020 22:14:53 -0700 (PDT) X-Google-Smtp-Source: ADFU+vtR7GpvEEceKakDn6MunBDGfYlrvEciSSgIX9BAS4cKDGpsdW0kfCLt+d0o2lMZb/15IlUO X-Received: by 2002:aca:a857:: with SMTP id r84mr760630oie.65.1583903693025; Tue, 10 Mar 2020 22:14:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1583903693; cv=none; d=google.com; s=arc-20160816; b=i6Dzf7eyobBCTsjt7Cxa0jI7UhimUflWlJDG3d2imIgWr1TCMpywUyp+F2DpNsyjHI ph783GnVLDoRLvmY0pu9SNoYTRnFS3ZmWwjrcCxNwMftVyhcP5t9EscH/ZLm60MD2dz0 9hhJ16YwrgEI+tpI1IDb3Kor2+MdpbJ09lRb3pwW6/D2qaP5HSi4k36PQjSKTAVVS221 ANmsNkt4RrN5yGtzVsn9k20bj/t4st1Zu+kNToua+3/tvam31dAf2JTTF+q8jfjAVz9J KPLhaMkL7+VLBZ8FM61dWH/y9nop/7de2Si8LFiATRzokyfjnZuJ0BM2putV4IPSl7Ka H6Wg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=/qzd23gZ6pPMPslDNmVWN+kpWu8au0l4R1+PPh6Psko=; b=q1kEzDnOFCCYwwahVDvNUnUuRyF2Xv+aHvWwnMFoJyVIffrJXZDpE+krUvrIJw5OAh 3DtK9yjkhZ1QsKW+PqfCr1cvNTjVnftYibbqTbenHm3Z0+SDm4xoJIkhne0zcoHrwQpq 7lRRcoZZtax//iJ9O7yiWPZXA4S+ENWVzv8ME5dr7SxQAXMEfOH4LZiYiYAiXs2Xn4Vp nbZ0gePmG4SxyncphEBaR5Hxo3p6gMR/wswNu6wHdtKGyoL67qkz65GQ/zkFyHkS/ewG uR6RyPql+jFGdAuvs+Ag2gsO1d+ZoKxICMrWSh6H6rEBY7YMaHOw2RZIeb0Mvf8FJi/M 5uXA== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r19si544952otg.54.2020.03.10.22.14.40; Tue, 10 Mar 2020 22:14:53 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726955AbgCKFOC (ORCPT + 99 others); Wed, 11 Mar 2020 01:14:02 -0400 Received: from inva020.nxp.com ([92.121.34.13]:33872 "EHLO inva020.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726472AbgCKFOC (ORCPT ); Wed, 11 Mar 2020 01:14:02 -0400 Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id C858A1A08C2; Wed, 11 Mar 2020 06:13:59 +0100 (CET) Received: from invc005.ap-rdc01.nxp.com (invc005.ap-rdc01.nxp.com [165.114.16.14]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 5BBFD1A064A; Wed, 11 Mar 2020 06:13:56 +0100 (CET) Received: from localhost.localdomain (shlinux2.ap.freescale.net [10.192.224.44]) by invc005.ap-rdc01.nxp.com (Postfix) with ESMTP id D851D4024E; Wed, 11 Mar 2020 13:13:51 +0800 (SGT) From: Anson Huang To: rui.zhang@intel.com, daniel.lezcano@linaro.org, amit.kucheria@verdurent.com, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Linux-imx@nxp.com Subject: [PATCH 1/2] thermal: qoriq: Use devm_add_action_or_reset() to handle all cleanups Date: Wed, 11 Mar 2020 13:07:31 +0800 Message-Id: <1583903252-2058-1-git-send-email-Anson.Huang@nxp.com> X-Mailer: git-send-email 2.7.4 X-Virus-Scanned: ClamAV using ClamSMTP Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use devm_add_action_or_reset() to handle all cleanups of failure in .probe and .remove, then .remove callback can be dropped. Signed-off-by: Anson Huang --- drivers/thermal/qoriq_thermal.c | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/drivers/thermal/qoriq_thermal.c b/drivers/thermal/qoriq_thermal.c index 874bc46..67a8d84 100644 --- a/drivers/thermal/qoriq_thermal.c +++ b/drivers/thermal/qoriq_thermal.c @@ -228,6 +228,14 @@ static const struct regmap_access_table qoriq_rd_table = { .n_yes_ranges = ARRAY_SIZE(qoriq_yes_ranges), }; +static void qoriq_tmu_action(void *p) +{ + struct qoriq_tmu_data *data = p; + + regmap_write(data->regmap, REGS_TMR, TMR_DISABLE); + clk_disable_unprepare(data->clk); +} + static int qoriq_tmu_probe(struct platform_device *pdev) { int ret; @@ -278,6 +286,10 @@ static int qoriq_tmu_probe(struct platform_device *pdev) return ret; } + ret = devm_add_action_or_reset(dev, qoriq_tmu_action, data); + if (ret) + return ret; + /* version register offset at: 0xbf8 on both v1 and v2 */ ret = regmap_read(data->regmap, REGS_IPBRR(0), &ver); if (ret) { @@ -290,35 +302,17 @@ static int qoriq_tmu_probe(struct platform_device *pdev) ret = qoriq_tmu_calibration(dev, data); /* TMU calibration */ if (ret < 0) - goto err; + return ret; ret = qoriq_tmu_register_tmu_zone(dev, data); if (ret < 0) { dev_err(dev, "Failed to register sensors\n"); - ret = -ENODEV; - goto err; + return ret; } platform_set_drvdata(pdev, data); return 0; - -err: - clk_disable_unprepare(data->clk); - - return ret; -} - -static int qoriq_tmu_remove(struct platform_device *pdev) -{ - struct qoriq_tmu_data *data = platform_get_drvdata(pdev); - - /* Disable monitoring */ - regmap_write(data->regmap, REGS_TMR, TMR_DISABLE); - - clk_disable_unprepare(data->clk); - - return 0; } static int __maybe_unused qoriq_tmu_suspend(struct device *dev) @@ -365,7 +359,6 @@ static struct platform_driver qoriq_tmu = { .of_match_table = qoriq_tmu_match, }, .probe = qoriq_tmu_probe, - .remove = qoriq_tmu_remove, }; module_platform_driver(qoriq_tmu); -- 2.7.4