Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965322AbbKDKwP (ORCPT ); Wed, 4 Nov 2015 05:52:15 -0500 Received: from mailout4.samsung.com ([203.254.224.34]:34893 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965304AbbKDKwK (ORCPT ); Wed, 4 Nov 2015 05:52:10 -0500 X-AuditID: cbfee61b-f79d56d0000048c5-eb-5639e357ee65 Date: Wed, 04 Nov 2015 11:52:02 +0100 From: Lukasz Majewski To: Alim Akhtar Cc: Krzysztof Kozlowski , "linux-samsung-soc@vger.kernel.org" , linux-pm@vger.kernel.org, k.kozlowski.k@gmail.com, "linux-kernel@vger.kernel.org" , stable@vger.kernel.org, Eduardo Valentin , Kukjin Kim , Zhang Rui , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH 1/5] thermal: exynos: Fix unbalanced regulator disable on probe failure Message-id: <20151104115202.1321c996@amdc2363> In-reply-to: References: <1444282446-6419-1-git-send-email-k.kozlowski@samsung.com> <56179DC0.1040003@samsung.com> Organization: SPRC Poland X-Mailer: Claws Mail 3.8.1 (GTK+ 2.24.10; x86_64-pc-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpkkeLIzCtJLcpLzFFi42I5/e+xoG74Y8swg5fHLS2W3qq2mH/lGqvF 838/2C1evzC06H/8mtli02Og0OVdc9gsPvceYbSYcX4fk8WTh31sFgs2PmJ04PbYOesuu8fi PS+ZPDat6mTz2Lyk3qNvyypGj8+b5ALYorhsUlJzMstSi/TtErgy5l2yLbirUvH66wzGBsaP Ul2MnBwSAiYSTx6cZoWwxSQu3FvPBmILCcxilLh5O6WLkQvIfsMoceXLTnaQBIuAqsTZpqtg DWwCehKf7z5lArFFBNQlXt7fyArSwCxwnFnizuzVjCAJYYFYiVWr2sCm8gI1HDj9EizOKRAs 0b/jFxPEhq+MEs/mQBTxC0hKtP/7wQxxkp3EuU8b2CGaBSV+TL7HAmIzC2hJbN7WxAphy0ts XvOWeQKj4CwkZbOQlM1CUraAkXkVo0RqQXJBcVJ6rlFearlecWJucWleul5yfu4mRnDEPJPe wXh4l/shRgEORiUe3ob/FmFCrIllxZW5hxglOJiVRHhNT1mGCfGmJFZWpRblxxeV5qQWH2KU 5mBREufV9zQKExJITyxJzU5NLUgtgskycXBKNTByuASFlOea33niumVX3JHnJpb9B0zsUwpW 991emvXrauKrZhnNxzLVB30vPS2ZsNnYRY59vyvDqb11+h2+hgsa1k/j5d4fymQjIe2i1Gy1 Klbnn9WSrSuvH85YOMNzh8z6/faL7ixbwxit+tLh4tV9/HZLRJgl5h1dvElFdrlVj+TujSc3 bLurxFKckWioxVxUnAgA0LD0BJQCAAA= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4812 Lines: 139 Hi Alim, > Hello, > > On Fri, Oct 9, 2015 at 4:28 PM, Krzysztof Kozlowski > wrote: > > W dniu 09.10.2015 o 01:45, Alim Akhtar pisze: > >> Hello, > >> > >> On Thu, Oct 8, 2015 at 11:04 AM, Krzysztof Kozlowski > >> wrote: > >>> During probe if the regulator could not be enabled, the error > >>> exit path would still disable it. This could lead to unbalanced > >>> counter of regulator enable/disable. > >>> > >> Do you see a regulator unbalanced reported here during boot? You > >> may want to add that to commit message. > > > > I did not see the warning/error message about unbalanced disable. It > > would happen in certain condition only - no other enables of > > regulator and count going below 0. > > > > I would have to simulate this error to get the warning message. I > > don't think it is worth the effort. > > > Ok, looking at code, it does looks to be calling regulator disable in > case regulator enable fails. > Feel free to add > Reviewed-by: Alim Akhtar > Thanks!! > > > Best regards, > > Krzysztof > > > >> > >>> The patch moves code for getting and enabling the regulator from > >>> exynos_map_dt_data() to probe function because it is really not a > >>> part of getting Device Tree properties. > >>> > >>> Signed-off-by: Krzysztof Kozlowski > >>> Fixes: 5f09a5cbd14a ("thermal: exynos: Disable the regulator on > >>> probe failure") Cc: > >>> --- > >>> drivers/thermal/samsung/exynos_tmu.c | 34 > >>> +++++++++++++++++----------------- 1 file changed, 17 > >>> insertions(+), 17 deletions(-) > >>> > >>> diff --git a/drivers/thermal/samsung/exynos_tmu.c > >>> b/drivers/thermal/samsung/exynos_tmu.c index > >>> 0bae8cc6c23a..23f4320f8ef7 100644 --- > >>> a/drivers/thermal/samsung/exynos_tmu.c +++ > >>> b/drivers/thermal/samsung/exynos_tmu.c @@ -1168,27 +1168,10 @@ > >>> static int exynos_map_dt_data(struct platform_device *pdev) > >>> struct exynos_tmu_data *data = platform_get_drvdata(pdev); struct > >>> exynos_tmu_platform_data *pdata; struct resource res; > >>> - int ret; > >>> > >>> if (!data || !pdev->dev.of_node) > >>> return -ENODEV; > >>> > >>> - /* > >>> - * Try enabling the regulator if found > >>> - * TODO: Add regulator as an SOC feature, so that > >>> regulator enable > >>> - * is a compulsory call. > >>> - */ > >>> - data->regulator = devm_regulator_get(&pdev->dev, "vtmu"); > >>> - if (!IS_ERR(data->regulator)) { > >>> - ret = regulator_enable(data->regulator); > >>> - if (ret) { > >>> - dev_err(&pdev->dev, "failed to enable > >>> vtmu\n"); > >>> - return ret; > >>> - } > >>> - } else { > >>> - dev_info(&pdev->dev, "Regulator node (vtmu) not > >>> found\n"); > >>> - } > >>> - > >>> data->id = of_alias_get_id(pdev->dev.of_node, "tmuctrl"); > >>> if (data->id < 0) > >>> data->id = 0; > >>> @@ -1312,6 +1295,23 @@ static int exynos_tmu_probe(struct > >>> platform_device *pdev) pr_err("thermal: tz: %p ERROR\n", > >>> data->tzd); return PTR_ERR(data->tzd); > >>> } > >>> + > >>> + /* > >>> + * Try enabling the regulator if found > >>> + * TODO: Add regulator as an SOC feature, so that > >>> regulator enable > >>> + * is a compulsory call. > >>> + */ > >>> + data->regulator = devm_regulator_get(&pdev->dev, "vtmu"); > >>> + if (!IS_ERR(data->regulator)) { > >>> + ret = regulator_enable(data->regulator); > >>> + if (ret) { > >>> + dev_err(&pdev->dev, "failed to enable > >>> vtmu\n"); > >>> + return ret; > >>> + } > >>> + } else { > >>> + dev_info(&pdev->dev, "Regulator node (vtmu) not > >>> found\n"); > >>> + } > >>> + > >>> ret = exynos_map_dt_data(pdev); > >>> if (ret) > >>> goto err_sensor; > >>> -- > >>> 1.9.1 > >>> > >>> > >>> _______________________________________________ > >>> linux-arm-kernel mailing list > >>> linux-arm-kernel@lists.infradead.org > >>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > >> > >> > >> > > > > > Acked-by: Lukasz Majewski Tested-by: Lukasz Majewski -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/