Re: tlv320aic3x: Failed to init class D

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Nov 28, 2023 at 04:47:27PM +0100, Marc Kleine-Budde wrote:

> In probe() it wants to write to the regcache only, and then calls
> regmap_register_patch(). During probe the chip is unpowered and in
> reset:

> | aic3x_probe()
> |         regcache_cache_only(true);
> |         regmap_register_patch();

That's not going to work well, patches always bypass the cache since
they are often ordering dependent and if we understood what they were
doing we should be writing them in normal code rather than just spamming
in numbers.  There was some edge case usage I can't remember right now
(IIRC with partial cache sync) which meant that we didn't want to just
assume that there'd be a full cache sync as the first action after
leaving cache only mode.

> If I only power on the codec in probe() for the regmap_register_patch(),
> I'll shut it down after the regmap_register_patch() anyways. So the
> register values are lost in any case.

Cache sync will reapply the patch, that's the _register() bit of the
function name.

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux