All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <k.kozlowski@samsung.com>
To: Alim Akhtar <alim.akhtar@gmail.com>
Cc: k.kozlowski.k@gmail.com, Lukasz Majewski <l.majewski@samsung.com>,
	Zhang Rui <rui.zhang@intel.com>,
	Eduardo Valentin <edubezval@gmail.com>,
	Kukjin Kim <kgene@kernel.org>,
	linux-pm@vger.kernel.org,
	"linux-samsung-soc@vger.kernel.org"
	<linux-samsung-soc@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	stable@vger.kernel.org
Subject: Re: [PATCH 1/5] thermal: exynos: Fix unbalanced regulator disable on probe failure
Date: Fri, 9 Oct 2015 19:58:08 +0900	[thread overview]
Message-ID: <56179DC0.1040003@samsung.com> (raw)
In-Reply-To: <CAGOxZ52DE42YA3b5z-16H7fxs58f6Mv+AjMcaaaJEM6bftEmnA@mail.gmail.com>

W dniu 09.10.2015 o 01:45, Alim Akhtar pisze:
> Hello,
> 
> On Thu, Oct 8, 2015 at 11:04 AM, Krzysztof Kozlowski
> <k.kozlowski@samsung.com> 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.

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 <k.kozlowski@samsung.com>
>> Fixes: 5f09a5cbd14a ("thermal: exynos: Disable the regulator on probe failure")
>> Cc: <stable@vger.kernel.org>
>> ---
>>  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
> 
> 
> 


WARNING: multiple messages have this Message-ID (diff)
From: k.kozlowski@samsung.com (Krzysztof Kozlowski)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/5] thermal: exynos: Fix unbalanced regulator disable on probe failure
Date: Fri, 9 Oct 2015 19:58:08 +0900	[thread overview]
Message-ID: <56179DC0.1040003@samsung.com> (raw)
In-Reply-To: <CAGOxZ52DE42YA3b5z-16H7fxs58f6Mv+AjMcaaaJEM6bftEmnA@mail.gmail.com>

W dniu 09.10.2015 o 01:45, Alim Akhtar pisze:
> Hello,
> 
> On Thu, Oct 8, 2015 at 11:04 AM, Krzysztof Kozlowski
> <k.kozlowski@samsung.com> 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.

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 <k.kozlowski@samsung.com>
>> Fixes: 5f09a5cbd14a ("thermal: exynos: Disable the regulator on probe failure")
>> Cc: <stable@vger.kernel.org>
>> ---
>>  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 at lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 
> 
> 

  reply	other threads:[~2015-10-09 10:58 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-08  5:34 [PATCH 1/5] thermal: exynos: Fix unbalanced regulator disable on probe failure Krzysztof Kozlowski
2015-10-08  5:34 ` Krzysztof Kozlowski
2015-10-08  5:34 ` [PATCH 2/5] thermal: exynos: Fix first temperature read after registering sensor Krzysztof Kozlowski
2015-10-08  5:34   ` Krzysztof Kozlowski
2015-10-08 16:43   ` Alim Akhtar
2015-10-08 16:43     ` Alim Akhtar
2015-11-04 11:18     ` Lukasz Majewski
2015-11-04 11:18       ` Lukasz Majewski
2015-10-08  5:34 ` [PATCH 3/5] thermal: exynos: Use IS_ERR() because regulator cannot be NULL Krzysztof Kozlowski
2015-10-08  5:34   ` Krzysztof Kozlowski
2015-10-08 16:46   ` Alim Akhtar
2015-10-08 16:46     ` Alim Akhtar
2015-11-04 11:17     ` Lukasz Majewski
2015-11-04 11:17       ` Lukasz Majewski
2015-10-08  5:34 ` [PATCH 4/5] thermal: exynos: Remove unneeded semicolon Krzysztof Kozlowski
2015-10-08  5:34   ` Krzysztof Kozlowski
2015-11-04 10:52   ` Lukasz Majewski
2015-11-04 10:52     ` Lukasz Majewski
2015-10-08  5:34 ` [PATCH 5/5] thermal: exynos: Directly return 0 instead of using local ret variable Krzysztof Kozlowski
2015-10-08  5:34   ` Krzysztof Kozlowski
2015-10-08 16:47   ` Alim Akhtar
2015-10-08 16:47     ` Alim Akhtar
2015-11-04 10:51     ` Lukasz Majewski
2015-11-04 10:51       ` Lukasz Majewski
2015-10-08 16:45 ` [PATCH 1/5] thermal: exynos: Fix unbalanced regulator disable on probe failure Alim Akhtar
2015-10-08 16:45   ` Alim Akhtar
2015-10-09 10:58   ` Krzysztof Kozlowski [this message]
2015-10-09 10:58     ` Krzysztof Kozlowski
2015-10-10  1:46     ` Alim Akhtar
2015-10-10  1:46       ` Alim Akhtar
2015-11-04 10:52       ` Lukasz Majewski
2015-11-04 10:52         ` Lukasz Majewski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56179DC0.1040003@samsung.com \
    --to=k.kozlowski@samsung.com \
    --cc=alim.akhtar@gmail.com \
    --cc=edubezval@gmail.com \
    --cc=k.kozlowski.k@gmail.com \
    --cc=kgene@kernel.org \
    --cc=l.majewski@samsung.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=rui.zhang@intel.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.