diff mbox

[v1] PM / devfreq: exynos-ppmu : Handle return value of clk_prepare_enable

Message ID 1495191364-16015-1-git-send-email-arvind.yadav.cs@gmail.com (mailing list archive)
State Not Applicable, archived
Headers show

Commit Message

Arvind Yadav May 19, 2017, 10:56 a.m. UTC
clk_prepare_enable() can fail here and we must check its return value.

Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
---
 drivers/devfreq/event/exynos-ppmu.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

Comments

Chanwoo Choi May 23, 2017, 9:41 a.m. UTC | #1
On 2017년 05월 19일 19:56, Arvind Yadav wrote:
> clk_prepare_enable() can fail here and we must check its return value.
> 
> Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
> ---
>  drivers/devfreq/event/exynos-ppmu.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/devfreq/event/exynos-ppmu.c b/drivers/devfreq/event/exynos-ppmu.c
> index 9b73509..8f6537a 100644
> --- a/drivers/devfreq/event/exynos-ppmu.c
> +++ b/drivers/devfreq/event/exynos-ppmu.c
> @@ -648,7 +648,11 @@ static int exynos_ppmu_probe(struct platform_device *pdev)
>  			dev_name(&pdev->dev), desc[i].name);
>  	}
>  
> -	clk_prepare_enable(info->ppmu.clk);
> +	ret = clk_prepare_enable(info->ppmu.clk);
> +	if (ret) {
> +		dev_err(&pdev->dev, "failed to prepare ppmu clock\n");
> +		return ret;
> +	}

You're right. But, actually, some ppmu device-tree node doesn't include
the clock information because exynos clk driver don't support the
clock for some ppmu devices. Until now, the clock of ppmu devices
are default on state.

Before applying this patch, exynos clock driver have to support
the ppmu's clock and then add the clock information to the device tree
of ppmu devices.

>  
>  	return 0;
>  }
>
MyungJoo Ham May 24, 2017, 1:30 a.m. UTC | #2
> On 2017년 05월 19일 19:56, Arvind Yadav wrote:
> > clk_prepare_enable() can fail here and we must check its return value.
> > 
> > Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
> > ---
> >  drivers/devfreq/event/exynos-ppmu.c | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/devfreq/event/exynos-ppmu.c b/drivers/devfreq/event/exynos-ppmu.c
> > index 9b73509..8f6537a 100644
> > --- a/drivers/devfreq/event/exynos-ppmu.c
> > +++ b/drivers/devfreq/event/exynos-ppmu.c
> > @@ -648,7 +648,11 @@ static int exynos_ppmu_probe(struct platform_device *pdev)
> >  			dev_name(&pdev->dev), desc[i].name);
> >  	}
> >  
> > -	clk_prepare_enable(info->ppmu.clk);
> > +	ret = clk_prepare_enable(info->ppmu.clk);
> > +	if (ret) {
> > +		dev_err(&pdev->dev, "failed to prepare ppmu clock\n");
> > +		return ret;
> > +	}
> 
> You're right. But, actually, some ppmu device-tree node doesn't include
> the clock information because exynos clk driver don't support the
> clock for some ppmu devices. Until now, the clock of ppmu devices
> are default on state.

If it does not include the clock information, info->ppmu.clk is NULL,
which makes ret == NULL, so this should be ok.
(Line 593 of this file does that.)


Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com>
(Applied to next-rc in devfreq tree)

(same applies to exynos-nocp commit as well)


Cheers,
MyungJoo
Chanwoo Choi May 24, 2017, 1:54 a.m. UTC | #3
On 2017년 05월 24일 10:30, MyungJoo Ham wrote:
>> On 2017년 05월 19일 19:56, Arvind Yadav wrote:
>>> clk_prepare_enable() can fail here and we must check its return value.
>>>
>>> Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
>>> ---
>>>  drivers/devfreq/event/exynos-ppmu.c | 6 +++++-
>>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/devfreq/event/exynos-ppmu.c b/drivers/devfreq/event/exynos-ppmu.c
>>> index 9b73509..8f6537a 100644
>>> --- a/drivers/devfreq/event/exynos-ppmu.c
>>> +++ b/drivers/devfreq/event/exynos-ppmu.c
>>> @@ -648,7 +648,11 @@ static int exynos_ppmu_probe(struct platform_device *pdev)
>>>  			dev_name(&pdev->dev), desc[i].name);
>>>  	}
>>>  
>>> -	clk_prepare_enable(info->ppmu.clk);
>>> +	ret = clk_prepare_enable(info->ppmu.clk);
>>> +	if (ret) {
>>> +		dev_err(&pdev->dev, "failed to prepare ppmu clock\n");
>>> +		return ret;
>>> +	}
>>
>> You're right. But, actually, some ppmu device-tree node doesn't include
>> the clock information because exynos clk driver don't support the
>> clock for some ppmu devices. Until now, the clock of ppmu devices
>> are default on state.
> 
> If it does not include the clock information, info->ppmu.clk is NULL,
> which makes ret == NULL, so this should be ok.
> (Line 593 of this file does that.)

Ah.. You're right. I'm missing this point.

Looks good to me.
Acked-by: Chanwoo Choi <cw00.choi@samsung.com>
diff mbox

Patch

diff --git a/drivers/devfreq/event/exynos-ppmu.c b/drivers/devfreq/event/exynos-ppmu.c
index 9b73509..8f6537a 100644
--- a/drivers/devfreq/event/exynos-ppmu.c
+++ b/drivers/devfreq/event/exynos-ppmu.c
@@ -648,7 +648,11 @@  static int exynos_ppmu_probe(struct platform_device *pdev)
 			dev_name(&pdev->dev), desc[i].name);
 	}
 
-	clk_prepare_enable(info->ppmu.clk);
+	ret = clk_prepare_enable(info->ppmu.clk);
+	if (ret) {
+		dev_err(&pdev->dev, "failed to prepare ppmu clock\n");
+		return ret;
+	}
 
 	return 0;
 }