From: Lars-Peter Clausen <lars@metafoo.de>
To: Peter Ujfalusi <peter.ujfalusi@ti.com>
Cc: alsa-devel@alsa-project.org, Mark Brown <broonie@kernel.org>,
Liam Girdwood <lgirdwood@gmail.com>
Subject: Re: [PATCH 2/2] ASoC: tlv320aic3x: Fix Left/Rigth PGA mixer widgets/kcontrols
Date: Tue, 27 May 2014 14:24:34 +0200 [thread overview]
Message-ID: <53848402.9020801@metafoo.de> (raw)
In-Reply-To: <538482C2.1090607@ti.com>
[...]
>>>> This driver uses a custom put handler and the generic get handler.
>>>> dapm_kcontrol_get_value() is used in the generic get handler, but only if reg
>>>> equal to SND_SOC_NOPM. Which is not the case for this driver.
>>>
>>> The relevant code is this:
>>> if (dapm_kcontrol_is_powered(kcontrol) && reg != SND_SOC_NOPM)
>>> val = (snd_soc_read(codec, reg) >> shift) & mask;
>>> else
>>> val = dapm_kcontrol_get_value(kcontrol);
>>>
>>> and when the widget is not powered the code will try to get the value from the
>>> dapm_kcontrol_data, which is not even touched by the custom code in the driver.
>>
>> dapm_kcontrol_is_powered() always returns true if the control is not a
>> auto-muted control. And there are no auto-muted controls in the tlv320aix3c
>> driver.
>
> dapm_kcontrol_is_powered() returns the data->widget->power, which is not the
> automute state. Widgets do turn off when they are not in use, like in my system:
>
> # cat tlv320aic3x-codec.0-001b/dapm/Left\ PGA\ Mixer
> Left PGA Mixer: Off in 0 out 0
> out "static" "Left ADC"
>
> So the widget's power is off.
The widget that data->widget points to is not the mixer widget. It is the
widget that is created for auto-mute handling if the control is auto-muted.
It will be NULL in your case, which means dapm_kcontrol_is_powered() return
true.
- Lars
next prev parent reply other threads:[~2014-05-27 12:24 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-27 10:53 [PATCH 0/2] ASoC: tlv320aic3x: Fix snd_soc_dapm_put_volsw_aic3x callback Peter Ujfalusi
2014-05-27 10:53 ` [PATCH 1/2] ASoC: dapm: Export dapm_kcontrol_set_value() so it can be used by drivers Peter Ujfalusi
2014-05-27 10:53 ` [PATCH 2/2] ASoC: tlv320aic3x: Fix Left/Rigth PGA mixer widgets/kcontrols Peter Ujfalusi
2014-05-27 11:18 ` Lars-Peter Clausen
2014-05-27 11:41 ` Peter Ujfalusi
2014-05-27 11:54 ` Lars-Peter Clausen
2014-05-27 12:09 ` Lars-Peter Clausen
2014-05-27 12:19 ` Peter Ujfalusi
2014-05-27 12:24 ` Lars-Peter Clausen [this message]
2014-05-27 11:02 ` [PATCH 0/2] ASoC: tlv320aic3x: Fix snd_soc_dapm_put_volsw_aic3x callback Mark Brown
2014-05-27 13:04 ` Peter Ujfalusi
2014-05-28 7:27 ` Lars-Peter Clausen
2014-05-28 13:12 ` Peter Ujfalusi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53848402.9020801@metafoo.de \
--to=lars@metafoo.de \
--cc=alsa-devel@alsa-project.org \
--cc=broonie@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=peter.ujfalusi@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.