[alsa-devel] [PATCH v4 2/5] ASoC: Move standard kcontrol helpers to the component level

Lars-Peter Clausen lars at metafoo.de
Sat May 10 11:28:59 CEST 2014

On 05/10/2014 11:12 AM, Shawn Guo wrote:
> On Sat, May 10, 2014 at 10:37:28AM +0200, Lars-Peter Clausen wrote:
>> On 05/10/2014 10:31 AM, Shawn Guo wrote:
>>> On Sat, May 10, 2014 at 09:11:04AM +0200, Lars-Peter Clausen wrote:
>>>> On 05/10/2014 09:04 AM, Lars-Peter Clausen wrote:
>>>> [..]
>>>>>> The error message only shows up with Debian wheezy and does not with
>>>>>> yocto rootfs.  And even when the error message shows, the audio still
>>>>>> functions well on Debian wheezy.  So it's just a noisy error message
>>>>>> for me which is only seen after your kernel patch.
>>>>> The keyword here is "seen". The error quite likely predated the commit, but
>>>>> it was silently discarded.
>>>>> regmap_read() returns -EBUSY when there is no cached register value and
>>>>> cache_only is set to true. But I'm not sure why that would happen, try to
>>>>> add some printks to _regmap_read() to see if this is the source and if it is
>>>>> why it is.
>>>> Both SGTL5000_CHIP_ANA_ADC_CTRL and SGTL5000_CHIP_MIC_CTRL don't
>>>> have an entry in sgtl5000_reg_defaults. So if cache_only is true,
>>>> controls which use these registers will return -EBUSY when you try
>>>> to read or write them.
>>> Hmm, it's a wm8962 than sgtl5000 on board imx6q-sabresd.
>> Ok, misread the boardname. But the issue will be the same.
>> cache_only = true and trying to read/update a register that is not
>> in the cache.
> Yea, you're right.  When the error message shows up, _regmap_read()
> returns -EBUSY for reg WM8962_CLASS_D_CONTROL_1.  But how do I find out
> why the reg is not in the cache?

The register is marked as volatile in the driver and volatile registers are 
never cached. I don't know what the right fix is in this case though.

- Lars

More information about the Alsa-devel mailing list