Re: [Freedreno] [PATCH v1 1/5] drm/msm/dp: remove pm_runtime_xxx() from dp_power.c

2023-07-10 Thread Dmitry Baryshkov

On 10/07/2023 20:25, Kuogee Hsieh wrote:


On 7/9/2023 1:32 PM, Abhinav Kumar wrote:



On 7/9/2023 11:00 AM, Dmitry Baryshkov wrote:
On Sun, 9 Jul 2023 at 20:22, Abhinav Kumar 
 wrote:




On 7/7/2023 5:06 PM, Dmitry Baryshkov wrote:

On 08/07/2023 02:52, Kuogee Hsieh wrote:

Since both pm_runtime_resume() and pm_runtime_suspend() are not
populated at dp_pm_ops. Those pm_runtime_get/put() functions within
dp_power.c will not have any effects in addition to increase/decrease
power counter.


Lie.



Even if the commit text is incorrect, review comments like this are not
helping the patch nor the author and will just get ignored anyway.


The review comment might be overreacting, excuse me. I was really
impressed by the commit message, which contradicts the basic source
code. pm_runtime_get() does a lot more than just increasing the power
counter.



It says within dp_power.c. Nonetheless, please let us know what is 
missing in the context of this patch like Bjorn did to make it an 
effective review and we can correct it. In its current form, the 
review comment is adding no value.



I am new in pm.

Any recommendation to revise this commit test?


I'd say, squash patches 1 and 2 and then state in the commit message 
that you are changing pm_runtime code paths because you want to power up 
the device from the runtime callbacks rather than just waking up the 
device in the power up path.


Generally it is much easier to justify changing from A to B rather than 
just dropping A and then adding B.





Also pm_runtime_xxx() should be executed at top
layer.


Why?



I guess he meant to centralize this around dp_display.c. Will elaborate
while posting the next rev.



Signed-off-by: Kuogee Hsieh 
---
   drivers/gpu/drm/msm/dp/dp_power.c | 9 -
   1 file changed, 9 deletions(-)

diff --git a/drivers/gpu/drm/msm/dp/dp_power.c
b/drivers/gpu/drm/msm/dp/dp_power.c
index 5cb84ca..ed2f62a 100644
--- a/drivers/gpu/drm/msm/dp/dp_power.c
+++ b/drivers/gpu/drm/msm/dp/dp_power.c
@@ -152,8 +152,6 @@ int dp_power_client_init(struct dp_power 
*dp_power)
   power = container_of(dp_power, struct dp_power_private, 
dp_power);

-    pm_runtime_enable(power->dev);
-
   return dp_power_clk_init(power);
   }
@@ -162,8 +160,6 @@ void dp_power_client_deinit(struct dp_power
*dp_power)
   struct dp_power_private *power;
   power = container_of(dp_power, struct dp_power_private, 
dp_power);

-
-    pm_runtime_disable(power->dev);
   }
   int dp_power_init(struct dp_power *dp_power)
@@ -173,11 +169,7 @@ int dp_power_init(struct dp_power *dp_power)
   power = container_of(dp_power, struct dp_power_private, 
dp_power);

-    pm_runtime_get_sync(power->dev);
-
   rc = dp_power_clk_enable(dp_power, DP_CORE_PM, true);
-    if (rc)
-    pm_runtime_put_sync(power->dev);
   return rc;
   }
@@ -189,7 +181,6 @@ int dp_power_deinit(struct dp_power *dp_power)
   power = container_of(dp_power, struct dp_power_private, 
dp_power);

   dp_power_clk_enable(dp_power, DP_CORE_PM, false);
-    pm_runtime_put_sync(power->dev);
   return 0;
   }








--
With best wishes
Dmitry



Re: [Freedreno] [PATCH v1 1/5] drm/msm/dp: remove pm_runtime_xxx() from dp_power.c

2023-07-10 Thread Kuogee Hsieh



On 7/9/2023 1:32 PM, Abhinav Kumar wrote:



On 7/9/2023 11:00 AM, Dmitry Baryshkov wrote:
On Sun, 9 Jul 2023 at 20:22, Abhinav Kumar 
 wrote:




On 7/7/2023 5:06 PM, Dmitry Baryshkov wrote:

On 08/07/2023 02:52, Kuogee Hsieh wrote:

Since both pm_runtime_resume() and pm_runtime_suspend() are not
populated at dp_pm_ops. Those pm_runtime_get/put() functions within
dp_power.c will not have any effects in addition to increase/decrease
power counter.


Lie.



Even if the commit text is incorrect, review comments like this are not
helping the patch nor the author and will just get ignored anyway.


The review comment might be overreacting, excuse me. I was really
impressed by the commit message, which contradicts the basic source
code. pm_runtime_get() does a lot more than just increasing the power
counter.



It says within dp_power.c. Nonetheless, please let us know what is 
missing in the context of this patch like Bjorn did to make it an 
effective review and we can correct it. In its current form, the 
review comment is adding no value.



I am new in pm.

Any recommendation to revise this commit test?


Also pm_runtime_xxx() should be executed at top
layer.


Why?



I guess he meant to centralize this around dp_display.c. Will elaborate
while posting the next rev.



Signed-off-by: Kuogee Hsieh 
---
   drivers/gpu/drm/msm/dp/dp_power.c | 9 -
   1 file changed, 9 deletions(-)

diff --git a/drivers/gpu/drm/msm/dp/dp_power.c
b/drivers/gpu/drm/msm/dp/dp_power.c
index 5cb84ca..ed2f62a 100644
--- a/drivers/gpu/drm/msm/dp/dp_power.c
+++ b/drivers/gpu/drm/msm/dp/dp_power.c
@@ -152,8 +152,6 @@ int dp_power_client_init(struct dp_power 
*dp_power)
   power = container_of(dp_power, struct dp_power_private, 
dp_power);

-    pm_runtime_enable(power->dev);
-
   return dp_power_clk_init(power);
   }
@@ -162,8 +160,6 @@ void dp_power_client_deinit(struct dp_power
*dp_power)
   struct dp_power_private *power;
   power = container_of(dp_power, struct dp_power_private, 
dp_power);

-
-    pm_runtime_disable(power->dev);
   }
   int dp_power_init(struct dp_power *dp_power)
@@ -173,11 +169,7 @@ int dp_power_init(struct dp_power *dp_power)
   power = container_of(dp_power, struct dp_power_private, 
dp_power);

-    pm_runtime_get_sync(power->dev);
-
   rc = dp_power_clk_enable(dp_power, DP_CORE_PM, true);
-    if (rc)
-    pm_runtime_put_sync(power->dev);
   return rc;
   }
@@ -189,7 +181,6 @@ int dp_power_deinit(struct dp_power *dp_power)
   power = container_of(dp_power, struct dp_power_private, 
dp_power);

   dp_power_clk_enable(dp_power, DP_CORE_PM, false);
-    pm_runtime_put_sync(power->dev);
   return 0;
   }








Re: [Freedreno] [PATCH v1 1/5] drm/msm/dp: remove pm_runtime_xxx() from dp_power.c

2023-07-09 Thread Abhinav Kumar




On 7/9/2023 11:00 AM, Dmitry Baryshkov wrote:

On Sun, 9 Jul 2023 at 20:22, Abhinav Kumar  wrote:




On 7/7/2023 5:06 PM, Dmitry Baryshkov wrote:

On 08/07/2023 02:52, Kuogee Hsieh wrote:

Since both pm_runtime_resume() and pm_runtime_suspend() are not
populated at dp_pm_ops. Those pm_runtime_get/put() functions within
dp_power.c will not have any effects in addition to increase/decrease
power counter.


Lie.



Even if the commit text is incorrect, review comments like this are not
helping the patch nor the author and will just get ignored anyway.


The review comment might be overreacting, excuse me. I was really
impressed by the commit message, which contradicts the basic source
code. pm_runtime_get() does a lot more than just increasing the power
counter.



It says within dp_power.c. Nonetheless, please let us know what is 
missing in the context of this patch like Bjorn did to make it an 
effective review and we can correct it. In its current form, the review 
comment is adding no value.



Also pm_runtime_xxx() should be executed at top
layer.


Why?



I guess he meant to centralize this around dp_display.c. Will elaborate
while posting the next rev.



Signed-off-by: Kuogee Hsieh 
---
   drivers/gpu/drm/msm/dp/dp_power.c | 9 -
   1 file changed, 9 deletions(-)

diff --git a/drivers/gpu/drm/msm/dp/dp_power.c
b/drivers/gpu/drm/msm/dp/dp_power.c
index 5cb84ca..ed2f62a 100644
--- a/drivers/gpu/drm/msm/dp/dp_power.c
+++ b/drivers/gpu/drm/msm/dp/dp_power.c
@@ -152,8 +152,6 @@ int dp_power_client_init(struct dp_power *dp_power)
   power = container_of(dp_power, struct dp_power_private, dp_power);
-pm_runtime_enable(power->dev);
-
   return dp_power_clk_init(power);
   }
@@ -162,8 +160,6 @@ void dp_power_client_deinit(struct dp_power
*dp_power)
   struct dp_power_private *power;
   power = container_of(dp_power, struct dp_power_private, dp_power);
-
-pm_runtime_disable(power->dev);
   }
   int dp_power_init(struct dp_power *dp_power)
@@ -173,11 +169,7 @@ int dp_power_init(struct dp_power *dp_power)
   power = container_of(dp_power, struct dp_power_private, dp_power);
-pm_runtime_get_sync(power->dev);
-
   rc = dp_power_clk_enable(dp_power, DP_CORE_PM, true);
-if (rc)
-pm_runtime_put_sync(power->dev);
   return rc;
   }
@@ -189,7 +181,6 @@ int dp_power_deinit(struct dp_power *dp_power)
   power = container_of(dp_power, struct dp_power_private, dp_power);
   dp_power_clk_enable(dp_power, DP_CORE_PM, false);
-pm_runtime_put_sync(power->dev);
   return 0;
   }








Re: [Freedreno] [PATCH v1 1/5] drm/msm/dp: remove pm_runtime_xxx() from dp_power.c

2023-07-09 Thread Dmitry Baryshkov
On Sun, 9 Jul 2023 at 20:22, Abhinav Kumar  wrote:
>
>
>
> On 7/7/2023 5:06 PM, Dmitry Baryshkov wrote:
> > On 08/07/2023 02:52, Kuogee Hsieh wrote:
> >> Since both pm_runtime_resume() and pm_runtime_suspend() are not
> >> populated at dp_pm_ops. Those pm_runtime_get/put() functions within
> >> dp_power.c will not have any effects in addition to increase/decrease
> >> power counter.
> >
> > Lie.
> >
>
> Even if the commit text is incorrect, review comments like this are not
> helping the patch nor the author and will just get ignored anyway.

The review comment might be overreacting, excuse me. I was really
impressed by the commit message, which contradicts the basic source
code. pm_runtime_get() does a lot more than just increasing the power
counter.

> >> Also pm_runtime_xxx() should be executed at top
> >> layer.
> >
> > Why?
> >
>
> I guess he meant to centralize this around dp_display.c. Will elaborate
> while posting the next rev.
>
> >>
> >> Signed-off-by: Kuogee Hsieh 
> >> ---
> >>   drivers/gpu/drm/msm/dp/dp_power.c | 9 -
> >>   1 file changed, 9 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/msm/dp/dp_power.c
> >> b/drivers/gpu/drm/msm/dp/dp_power.c
> >> index 5cb84ca..ed2f62a 100644
> >> --- a/drivers/gpu/drm/msm/dp/dp_power.c
> >> +++ b/drivers/gpu/drm/msm/dp/dp_power.c
> >> @@ -152,8 +152,6 @@ int dp_power_client_init(struct dp_power *dp_power)
> >>   power = container_of(dp_power, struct dp_power_private, dp_power);
> >> -pm_runtime_enable(power->dev);
> >> -
> >>   return dp_power_clk_init(power);
> >>   }
> >> @@ -162,8 +160,6 @@ void dp_power_client_deinit(struct dp_power
> >> *dp_power)
> >>   struct dp_power_private *power;
> >>   power = container_of(dp_power, struct dp_power_private, dp_power);
> >> -
> >> -pm_runtime_disable(power->dev);
> >>   }
> >>   int dp_power_init(struct dp_power *dp_power)
> >> @@ -173,11 +169,7 @@ int dp_power_init(struct dp_power *dp_power)
> >>   power = container_of(dp_power, struct dp_power_private, dp_power);
> >> -pm_runtime_get_sync(power->dev);
> >> -
> >>   rc = dp_power_clk_enable(dp_power, DP_CORE_PM, true);
> >> -if (rc)
> >> -pm_runtime_put_sync(power->dev);
> >>   return rc;
> >>   }
> >> @@ -189,7 +181,6 @@ int dp_power_deinit(struct dp_power *dp_power)
> >>   power = container_of(dp_power, struct dp_power_private, dp_power);
> >>   dp_power_clk_enable(dp_power, DP_CORE_PM, false);
> >> -pm_runtime_put_sync(power->dev);
> >>   return 0;
> >>   }
> >



-- 
With best wishes
Dmitry


Re: [PATCH v1 1/5] drm/msm/dp: remove pm_runtime_xxx() from dp_power.c

2023-07-09 Thread Abhinav Kumar




On 7/8/2023 7:34 PM, Bjorn Andersson wrote:

On Fri, Jul 07, 2023 at 04:52:19PM -0700, Kuogee Hsieh wrote:

Since both pm_runtime_resume() and pm_runtime_suspend() are not
populated at dp_pm_ops. Those pm_runtime_get/put() functions within
dp_power.c will not have any effects in addition to increase/decrease
power counter. Also pm_runtime_xxx() should be executed at top
layer.



Getting/putting the runtime PM state affects the vote for the GDSC. So I
would suggest that you move this after patch 2, to not create a gap in
the git history of lacking GDSC votes.

Regards,
Bjorn



the mdss_dp node has rpmhpd SC7180_CX in its power domains. the parent 
device has the GDSC.


So just so that I understand this right,  the DP's vote on this will 
still count because the parent's power domain wont get collapsed till 
the child PM votes are removed too?


If so, I see your point and yes it will make sense to move this later to 
avoid the gap.



Signed-off-by: Kuogee Hsieh 
---
  drivers/gpu/drm/msm/dp/dp_power.c | 9 -
  1 file changed, 9 deletions(-)

diff --git a/drivers/gpu/drm/msm/dp/dp_power.c 
b/drivers/gpu/drm/msm/dp/dp_power.c
index 5cb84ca..ed2f62a 100644
--- a/drivers/gpu/drm/msm/dp/dp_power.c
+++ b/drivers/gpu/drm/msm/dp/dp_power.c
@@ -152,8 +152,6 @@ int dp_power_client_init(struct dp_power *dp_power)
  
  	power = container_of(dp_power, struct dp_power_private, dp_power);
  
-	pm_runtime_enable(power->dev);

-
return dp_power_clk_init(power);
  }
  
@@ -162,8 +160,6 @@ void dp_power_client_deinit(struct dp_power *dp_power)

struct dp_power_private *power;
  
  	power = container_of(dp_power, struct dp_power_private, dp_power);

-
-   pm_runtime_disable(power->dev);
  }
  
  int dp_power_init(struct dp_power *dp_power)

@@ -173,11 +169,7 @@ int dp_power_init(struct dp_power *dp_power)
  
  	power = container_of(dp_power, struct dp_power_private, dp_power);
  
-	pm_runtime_get_sync(power->dev);

-
rc = dp_power_clk_enable(dp_power, DP_CORE_PM, true);
-   if (rc)
-   pm_runtime_put_sync(power->dev);
  
  	return rc;

  }
@@ -189,7 +181,6 @@ int dp_power_deinit(struct dp_power *dp_power)
power = container_of(dp_power, struct dp_power_private, dp_power);
  
  	dp_power_clk_enable(dp_power, DP_CORE_PM, false);

-   pm_runtime_put_sync(power->dev);
return 0;
  }
  
--

2.7.4



Re: [Freedreno] [PATCH v1 1/5] drm/msm/dp: remove pm_runtime_xxx() from dp_power.c

2023-07-09 Thread Abhinav Kumar




On 7/7/2023 5:06 PM, Dmitry Baryshkov wrote:

On 08/07/2023 02:52, Kuogee Hsieh wrote:

Since both pm_runtime_resume() and pm_runtime_suspend() are not
populated at dp_pm_ops. Those pm_runtime_get/put() functions within
dp_power.c will not have any effects in addition to increase/decrease
power counter.


Lie.



Even if the commit text is incorrect, review comments like this are not 
helping the patch nor the author and will just get ignored anyway.



Also pm_runtime_xxx() should be executed at top
layer.


Why?



I guess he meant to centralize this around dp_display.c. Will elaborate 
while posting the next rev.




Signed-off-by: Kuogee Hsieh 
---
  drivers/gpu/drm/msm/dp/dp_power.c | 9 -
  1 file changed, 9 deletions(-)

diff --git a/drivers/gpu/drm/msm/dp/dp_power.c 
b/drivers/gpu/drm/msm/dp/dp_power.c

index 5cb84ca..ed2f62a 100644
--- a/drivers/gpu/drm/msm/dp/dp_power.c
+++ b/drivers/gpu/drm/msm/dp/dp_power.c
@@ -152,8 +152,6 @@ int dp_power_client_init(struct dp_power *dp_power)
  power = container_of(dp_power, struct dp_power_private, dp_power);
-    pm_runtime_enable(power->dev);
-
  return dp_power_clk_init(power);
  }
@@ -162,8 +160,6 @@ void dp_power_client_deinit(struct dp_power 
*dp_power)

  struct dp_power_private *power;
  power = container_of(dp_power, struct dp_power_private, dp_power);
-
-    pm_runtime_disable(power->dev);
  }
  int dp_power_init(struct dp_power *dp_power)
@@ -173,11 +169,7 @@ int dp_power_init(struct dp_power *dp_power)
  power = container_of(dp_power, struct dp_power_private, dp_power);
-    pm_runtime_get_sync(power->dev);
-
  rc = dp_power_clk_enable(dp_power, DP_CORE_PM, true);
-    if (rc)
-    pm_runtime_put_sync(power->dev);
  return rc;
  }
@@ -189,7 +181,6 @@ int dp_power_deinit(struct dp_power *dp_power)
  power = container_of(dp_power, struct dp_power_private, dp_power);
  dp_power_clk_enable(dp_power, DP_CORE_PM, false);
-    pm_runtime_put_sync(power->dev);
  return 0;
  }




Re: [PATCH v1 1/5] drm/msm/dp: remove pm_runtime_xxx() from dp_power.c

2023-07-08 Thread Bjorn Andersson
On Fri, Jul 07, 2023 at 04:52:19PM -0700, Kuogee Hsieh wrote:
> Since both pm_runtime_resume() and pm_runtime_suspend() are not
> populated at dp_pm_ops. Those pm_runtime_get/put() functions within
> dp_power.c will not have any effects in addition to increase/decrease
> power counter. Also pm_runtime_xxx() should be executed at top
> layer.
> 

Getting/putting the runtime PM state affects the vote for the GDSC. So I
would suggest that you move this after patch 2, to not create a gap in
the git history of lacking GDSC votes.

Regards,
Bjorn

> Signed-off-by: Kuogee Hsieh 
> ---
>  drivers/gpu/drm/msm/dp/dp_power.c | 9 -
>  1 file changed, 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/msm/dp/dp_power.c 
> b/drivers/gpu/drm/msm/dp/dp_power.c
> index 5cb84ca..ed2f62a 100644
> --- a/drivers/gpu/drm/msm/dp/dp_power.c
> +++ b/drivers/gpu/drm/msm/dp/dp_power.c
> @@ -152,8 +152,6 @@ int dp_power_client_init(struct dp_power *dp_power)
>  
>   power = container_of(dp_power, struct dp_power_private, dp_power);
>  
> - pm_runtime_enable(power->dev);
> -
>   return dp_power_clk_init(power);
>  }
>  
> @@ -162,8 +160,6 @@ void dp_power_client_deinit(struct dp_power *dp_power)
>   struct dp_power_private *power;
>  
>   power = container_of(dp_power, struct dp_power_private, dp_power);
> -
> - pm_runtime_disable(power->dev);
>  }
>  
>  int dp_power_init(struct dp_power *dp_power)
> @@ -173,11 +169,7 @@ int dp_power_init(struct dp_power *dp_power)
>  
>   power = container_of(dp_power, struct dp_power_private, dp_power);
>  
> - pm_runtime_get_sync(power->dev);
> -
>   rc = dp_power_clk_enable(dp_power, DP_CORE_PM, true);
> - if (rc)
> - pm_runtime_put_sync(power->dev);
>  
>   return rc;
>  }
> @@ -189,7 +181,6 @@ int dp_power_deinit(struct dp_power *dp_power)
>   power = container_of(dp_power, struct dp_power_private, dp_power);
>  
>   dp_power_clk_enable(dp_power, DP_CORE_PM, false);
> - pm_runtime_put_sync(power->dev);
>   return 0;
>  }
>  
> -- 
> 2.7.4
> 


Re: [PATCH v1 1/5] drm/msm/dp: remove pm_runtime_xxx() from dp_power.c

2023-07-07 Thread Dmitry Baryshkov

On 08/07/2023 02:52, Kuogee Hsieh wrote:

Since both pm_runtime_resume() and pm_runtime_suspend() are not
populated at dp_pm_ops. Those pm_runtime_get/put() functions within
dp_power.c will not have any effects in addition to increase/decrease
power counter.


Lie.


Also pm_runtime_xxx() should be executed at top
layer.


Why?



Signed-off-by: Kuogee Hsieh 
---
  drivers/gpu/drm/msm/dp/dp_power.c | 9 -
  1 file changed, 9 deletions(-)

diff --git a/drivers/gpu/drm/msm/dp/dp_power.c 
b/drivers/gpu/drm/msm/dp/dp_power.c
index 5cb84ca..ed2f62a 100644
--- a/drivers/gpu/drm/msm/dp/dp_power.c
+++ b/drivers/gpu/drm/msm/dp/dp_power.c
@@ -152,8 +152,6 @@ int dp_power_client_init(struct dp_power *dp_power)
  
  	power = container_of(dp_power, struct dp_power_private, dp_power);
  
-	pm_runtime_enable(power->dev);

-
return dp_power_clk_init(power);
  }
  
@@ -162,8 +160,6 @@ void dp_power_client_deinit(struct dp_power *dp_power)

struct dp_power_private *power;
  
  	power = container_of(dp_power, struct dp_power_private, dp_power);

-
-   pm_runtime_disable(power->dev);
  }
  
  int dp_power_init(struct dp_power *dp_power)

@@ -173,11 +169,7 @@ int dp_power_init(struct dp_power *dp_power)
  
  	power = container_of(dp_power, struct dp_power_private, dp_power);
  
-	pm_runtime_get_sync(power->dev);

-
rc = dp_power_clk_enable(dp_power, DP_CORE_PM, true);
-   if (rc)
-   pm_runtime_put_sync(power->dev);
  
  	return rc;

  }
@@ -189,7 +181,6 @@ int dp_power_deinit(struct dp_power *dp_power)
power = container_of(dp_power, struct dp_power_private, dp_power);
  
  	dp_power_clk_enable(dp_power, DP_CORE_PM, false);

-   pm_runtime_put_sync(power->dev);
return 0;
  }
  


--
With best wishes
Dmitry



[PATCH v1 1/5] drm/msm/dp: remove pm_runtime_xxx() from dp_power.c

2023-07-07 Thread Kuogee Hsieh
Since both pm_runtime_resume() and pm_runtime_suspend() are not
populated at dp_pm_ops. Those pm_runtime_get/put() functions within
dp_power.c will not have any effects in addition to increase/decrease
power counter. Also pm_runtime_xxx() should be executed at top
layer.

Signed-off-by: Kuogee Hsieh 
---
 drivers/gpu/drm/msm/dp/dp_power.c | 9 -
 1 file changed, 9 deletions(-)

diff --git a/drivers/gpu/drm/msm/dp/dp_power.c 
b/drivers/gpu/drm/msm/dp/dp_power.c
index 5cb84ca..ed2f62a 100644
--- a/drivers/gpu/drm/msm/dp/dp_power.c
+++ b/drivers/gpu/drm/msm/dp/dp_power.c
@@ -152,8 +152,6 @@ int dp_power_client_init(struct dp_power *dp_power)
 
power = container_of(dp_power, struct dp_power_private, dp_power);
 
-   pm_runtime_enable(power->dev);
-
return dp_power_clk_init(power);
 }
 
@@ -162,8 +160,6 @@ void dp_power_client_deinit(struct dp_power *dp_power)
struct dp_power_private *power;
 
power = container_of(dp_power, struct dp_power_private, dp_power);
-
-   pm_runtime_disable(power->dev);
 }
 
 int dp_power_init(struct dp_power *dp_power)
@@ -173,11 +169,7 @@ int dp_power_init(struct dp_power *dp_power)
 
power = container_of(dp_power, struct dp_power_private, dp_power);
 
-   pm_runtime_get_sync(power->dev);
-
rc = dp_power_clk_enable(dp_power, DP_CORE_PM, true);
-   if (rc)
-   pm_runtime_put_sync(power->dev);
 
return rc;
 }
@@ -189,7 +181,6 @@ int dp_power_deinit(struct dp_power *dp_power)
power = container_of(dp_power, struct dp_power_private, dp_power);
 
dp_power_clk_enable(dp_power, DP_CORE_PM, false);
-   pm_runtime_put_sync(power->dev);
return 0;
 }
 
-- 
2.7.4