[PATCH -next] drm: xlnx: zynqmp_dpsub: Use devm_clk_get_enabled() helper function

Tomi Valkeinen tomi.valkeinen at ideasonboard.com
Tue Sep 19 07:37:40 PDT 2023


On 29/08/2023 10:55, Laurent Pinchart wrote:
> Hi Jinjie,
> 
> (CC'ing Tomi)
> 
> Thank you for the patch.
> 
> On Fri, Aug 25, 2023 at 03:23:24PM +0800, Jinjie Ruan wrote:
>> The devm_clk_get_enabled() helper:
>>      - calls devm_clk_get()
>>      - calls clk_prepare_enable() and registers what is needed in order to
>>        call clk_disable_unprepare() when needed, as a managed resource.
>>
>> This simplifies the code.
> 
> While this indeed simplifies the code, I think we should instead control
> the clock dynamically at runtime.
> 
> I don't have access to the hardware at the moment. Tomi, would you be
> able to give this a go ? I can also write a patch and let you test it if
> desired.

I have a small patch that adds runtime resume & suspend callbacks, and 
enables & disables the clock there. But the driver doesn't seem to do a 
proper job of power management:

- It accesses registers without pm_runtime_get
- It initializes registers at probe time, apparently presuming that the 
IP is never turned off, which might cause registers getting reset.
- It uses pm_runtime_get in a couple of places where it's starting the 
video stream, but it seems to forget that there's also the DP AUX and HPD.

Then again, as the HPD is, I think, supposed to be always enabled, the 
device is also always enabled, making the PM management a bit pointless.

I'll look at this a bit more to see if I can sort this out.

  Tomi




More information about the linux-arm-kernel mailing list