diff mbox series

drm/exynos: Use pm_runtime_resume_and_get() to replace open coding

Message ID 1621517811-64765-1-git-send-email-tiantao6@hisilicon.com
State Superseded
Headers show
Series drm/exynos: Use pm_runtime_resume_and_get() to replace open coding | expand

Commit Message

Tian Tao May 20, 2021, 1:36 p.m. UTC
use pm_runtime_resume_and_get() to replace pm_runtime_get_sync and
pm_runtime_put_noidle. it also avoids the problem of positive return
values so we can change if (ret < 0) to if (ret).

Signed-off-by: Tian Tao <tiantao6@hisilicon.com>
---
 drivers/gpu/drm/exynos/exynos_drm_mic.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Comments

Inki Dae May 21, 2021, 4:47 a.m. UTC | #1
Hi,

21. 5. 20. 오후 10:36에 Tian Tao 이(가) 쓴 글:
> use pm_runtime_resume_and_get() to replace pm_runtime_get_sync and

> pm_runtime_put_noidle. it also avoids the problem of positive return

> values so we can change if (ret < 0) to if (ret).


Could you tell me why did you change the condition? pm_runtime_resume_and_get() can return only 0 or negative value.
So I think you don't have to change the condition. Could you drop this description?

> 

> Signed-off-by: Tian Tao <tiantao6@hisilicon.com>

> ---

>  drivers/gpu/drm/exynos/exynos_drm_mic.c | 6 ++----

>  1 file changed, 2 insertions(+), 4 deletions(-)

> 

> diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c

> index 3821ea7..6d94eae 100644

> --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c

> +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c

> @@ -268,11 +268,9 @@ static void mic_pre_enable(struct drm_bridge *bridge)

>  	if (mic->enabled)

>  		goto unlock;

>  

> -	ret = pm_runtime_get_sync(mic->dev);

> -	if (ret < 0) {

> -		pm_runtime_put_noidle(mic->dev);

> +	ret = pm_runtime_resume_and_get(mic->dev);


Right, we can use pm_runtime_resume_and_get function because pm_runtime_resume_and_get function does exactly same thing as existing code does.

> +	if (ret)


Seems unnecessary change.

Thanks,
Inki Dae

>  		goto unlock;

> -	}

>  

>  	mic_set_path(mic, 1);

>  

>
tiantao (H) May 21, 2021, 6:08 a.m. UTC | #2
在 2021/5/21 12:47, Inki Dae 写道:
> Hi,

>

> 21. 5. 20. 오후 10:36에 Tian Tao 이(가) 쓴 글:

>> use pm_runtime_resume_and_get() to replace pm_runtime_get_sync and

>> pm_runtime_put_noidle. it also avoids the problem of positive return

>> values so we can change if (ret < 0) to if (ret).

> Could you tell me why did you change the condition? pm_runtime_resume_and_get() can return only 0 or negative value.

> So I think you don't have to change the condition. Could you drop this description?

>

>> Signed-off-by: Tian Tao <tiantao6@hisilicon.com>

>> ---

>>   drivers/gpu/drm/exynos/exynos_drm_mic.c | 6 ++----

>>   1 file changed, 2 insertions(+), 4 deletions(-)

>>

>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c

>> index 3821ea7..6d94eae 100644

>> --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c

>> +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c

>> @@ -268,11 +268,9 @@ static void mic_pre_enable(struct drm_bridge *bridge)

>>   	if (mic->enabled)

>>   		goto unlock;

>>   

>> -	ret = pm_runtime_get_sync(mic->dev);

>> -	if (ret < 0) {

>> -		pm_runtime_put_noidle(mic->dev);

>> +	ret = pm_runtime_resume_and_get(mic->dev);

> Right, we can use pm_runtime_resume_and_get function because pm_runtime_resume_and_get function does exactly same thing as existing code does.

>

>> +	if (ret)

> Seems unnecessary change.


as you can see,If pm_runtime_resume_and_get returns 0, it means that the 
function was executed successfully and should not be executed in an if 
condition.

There is no error in continuing to use if (ret < 0), but it is not as 
concise as using if (ret) directly

static inline int pm_runtime_resume_and_get(struct device *dev)
{
     int ret;

     ret = __pm_runtime_resume(dev, RPM_GET_PUT);
     if (ret < 0) {
         pm_runtime_put_noidle(dev);
         return ret;
     }

     return 0;
}
>

> Thanks,

> Inki Dae

>

>>   		goto unlock;

>> -	}

>>   

>>   	mic_set_path(mic, 1);

>>   

>>

> .

>
tiantao (H) May 21, 2021, 8:30 a.m. UTC | #3
在 2021/5/21 16:36, Inki Dae 写道:
>

> 21. 5. 21. 오후 3:08에 tiantao (H) 이(가) 쓴 글:

>> 在 2021/5/21 12:47, Inki Dae 写道:

>>> Hi,

>>>

>>> 21. 5. 20. 오후 10:36에 Tian Tao 이(가) 쓴 글:

>>>> use pm_runtime_resume_and_get() to replace pm_runtime_get_sync and

>>>> pm_runtime_put_noidle. it also avoids the problem of positive return

>>>> values so we can change if (ret < 0) to if (ret).

>>> Could you tell me why did you change the condition? pm_runtime_resume_and_get() can return only 0 or negative value.

>>> So I think you don't have to change the condition. Could you drop this description?

>>>

>>>> Signed-off-by: Tian Tao <tiantao6@hisilicon.com>

>>>> ---

>>>>    drivers/gpu/drm/exynos/exynos_drm_mic.c | 6 ++----

>>>>    1 file changed, 2 insertions(+), 4 deletions(-)

>>>>

>>>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c

>>>> index 3821ea7..6d94eae 100644

>>>> --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c

>>>> +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c

>>>> @@ -268,11 +268,9 @@ static void mic_pre_enable(struct drm_bridge *bridge)

>>>>        if (mic->enabled)

>>>>            goto unlock;

>>>>    -    ret = pm_runtime_get_sync(mic->dev);

>>>> -    if (ret < 0) {

>>>> -        pm_runtime_put_noidle(mic->dev);

>>>> +    ret = pm_runtime_resume_and_get(mic->dev);

>>> Right, we can use pm_runtime_resume_and_get function because pm_runtime_resume_and_get function does exactly same thing as existing code does.

>>>

>>>> +    if (ret)

>>> Seems unnecessary change.

>> as you can see,If pm_runtime_resume_and_get returns 0, it means that the function was executed successfully and should not be executed in an if condition.

>>

>> There is no error in continuing to use if (ret < 0), but it is not as concise as using if (ret) directly

>>

> I don't see why positive value should be considered because pm_runtime_resume_and_get function never return positive value as you can see.

> Is there something I'm missing?

sorry, I misunderstand you, I wil send v2 to drop this.
>

>> static inline int pm_runtime_resume_and_get(struct device *dev)

>> {

>>      int ret;

>>

>>      ret = __pm_runtime_resume(dev, RPM_GET_PUT);

>>      if (ret < 0) {

>>          pm_runtime_put_noidle(dev);

>>          return ret;

>>      }

>>

>>      return 0;

>> }

>>> Thanks,

>>> Inki Dae

>>>

>>>>            goto unlock;

>>>> -    }

>>>>          mic_set_path(mic, 1);

>>>>   

>>> .

>>>

>>

> .

>
Inki Dae May 21, 2021, 8:36 a.m. UTC | #4
21. 5. 21. 오후 3:08에 tiantao (H) 이(가) 쓴 글:
> 

> 在 2021/5/21 12:47, Inki Dae 写道:

>> Hi,

>>

>> 21. 5. 20. 오후 10:36에 Tian Tao 이(가) 쓴 글:

>>> use pm_runtime_resume_and_get() to replace pm_runtime_get_sync and

>>> pm_runtime_put_noidle. it also avoids the problem of positive return

>>> values so we can change if (ret < 0) to if (ret).

>> Could you tell me why did you change the condition? pm_runtime_resume_and_get() can return only 0 or negative value.

>> So I think you don't have to change the condition. Could you drop this description?

>>

>>> Signed-off-by: Tian Tao <tiantao6@hisilicon.com>

>>> ---

>>>   drivers/gpu/drm/exynos/exynos_drm_mic.c | 6 ++----

>>>   1 file changed, 2 insertions(+), 4 deletions(-)

>>>

>>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c

>>> index 3821ea7..6d94eae 100644

>>> --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c

>>> +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c

>>> @@ -268,11 +268,9 @@ static void mic_pre_enable(struct drm_bridge *bridge)

>>>       if (mic->enabled)

>>>           goto unlock;

>>>   -    ret = pm_runtime_get_sync(mic->dev);

>>> -    if (ret < 0) {

>>> -        pm_runtime_put_noidle(mic->dev);

>>> +    ret = pm_runtime_resume_and_get(mic->dev);

>> Right, we can use pm_runtime_resume_and_get function because pm_runtime_resume_and_get function does exactly same thing as existing code does.

>>

>>> +    if (ret)

>> Seems unnecessary change.

> 

> as you can see,If pm_runtime_resume_and_get returns 0, it means that the function was executed successfully and should not be executed in an if condition.

> 

> There is no error in continuing to use if (ret < 0), but it is not as concise as using if (ret) directly

> 


I don't see why positive value should be considered because pm_runtime_resume_and_get function never return positive value as you can see.
Is there something I'm missing?

> static inline int pm_runtime_resume_and_get(struct device *dev)

> {

>     int ret;

> 

>     ret = __pm_runtime_resume(dev, RPM_GET_PUT);

>     if (ret < 0) {

>         pm_runtime_put_noidle(dev);

>         return ret;

>     }

> 

>     return 0;

> }

>>

>> Thanks,

>> Inki Dae

>>

>>>           goto unlock;

>>> -    }

>>>         mic_set_path(mic, 1);

>>>  

>> .

>>

> 

>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c
index 3821ea7..6d94eae 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_mic.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c
@@ -268,11 +268,9 @@  static void mic_pre_enable(struct drm_bridge *bridge)
 	if (mic->enabled)
 		goto unlock;
 
-	ret = pm_runtime_get_sync(mic->dev);
-	if (ret < 0) {
-		pm_runtime_put_noidle(mic->dev);
+	ret = pm_runtime_resume_and_get(mic->dev);
+	if (ret)
 		goto unlock;
-	}
 
 	mic_set_path(mic, 1);