[alsa-devel] [PATCH] ASoC: snd_soc_tas5086: Reinit register values on probe
Pascal Huerst
pascal.huerst at gmail.com
Wed Mar 25 18:29:15 CET 2015
On 25.03.2015 17:20, Mark Brown wrote:
> On Wed, Mar 25, 2015 at 04:29:39PM +0100, Pascal Huerst wrote:
>
>> If the machine driver has been un/reloaded, the register values of
>> the codec driver have to be reinitialized in order to run properly.
>
> Hrm. This isn't something that I'd expect to be required - I'd expect
> that as part of the machine driver teardown to put the hardware into a
> reasonable default state so that things come back as normal. Can you be
> a bit more specific about the problem that you are seeing? We probably
> shouldn't need the existing reset that's in the ASoC level probe either.
The symptom is, that if I rmmod the machine driver and then modprobe it
again. The codec does not play audio at all. I can call aplay without
any problems, but there is no output. My guess was that I have to
rewrite the default values after a reset. May be regmap_reinit_cache()
is the better choice to reinit the register values? Not sure about that.
> I do think a version of this is useful regardless of the above...
>
>> tas5086_reset(priv);
>> + regcache_mark_dirty(priv->regmap);
>
> Since the device has hardware reset support we really ought to be able
> to do the register cache resync only if the reset GPIO is missing. How
> about putting your code into the reset function and doing it in the
> case where the reset GPIO is missing? That way anything that thinks
> it's resetting the device will get the benefit of your code.
I thing this would not fix the issue. I do have a hardware reset. In
that case my code would not be called at all and I would face the same
issue (no audio output) again.
More information about the Alsa-devel
mailing list