On Wed, Aug 10, 2022 at 04:01:33PM +0200, Neil Armstrong wrote:
On 10/08/2022 14:37, Mark Brown wrote:
Sure, but that doesn't really address the concern - is this something
that the clk driver programmed or is this the driver forgetting to
restore a register that it programmed itself? The commit message sounds
like the former which is a much bigger problem.
It's what is programmed by the Clock Framework yes, it was designed as-is
so the Clock Framework takes the most accurate clock path but the reset case
wasn't taken in account.
This seems like a bad idea, we shouldn't have two different drivers
managing the same register without explicit and visible coordination
with each other, this is at best asking for trouble as you've found
here. I've not looked in detail but I think if you want to use the
clock framework here then this driver should register a clock provider
for the clock hardware in the IP block.
How does this work with runtime PM, what happens if the clock driver
decides to change something while the device is powered down?