[alsa-devel] Update on TLV320AIC3204 Driver

Peter Ujfalusi peter.ujfalusi at nokia.com
Tue Jun 15 15:42:32 CEST 2010


On Tuesday 15 June 2010 08:11:10 ext Stuart Longland wrote:
> Okay, I've had a close inspection of how the SOC_DOUBLE_R_SX_TLV widgets
> are implemented.  I couldn't find where in the git trees the control had
> been added, I wound up applying this patch myself in my tree... it
> apparently got applied in the official trees, but I cannot find it.

I'm not really sure what the SOC_DOUBLE_R_SX_TLV is for... 
But would a simple SOC_DOUBLE_R_TLV enough for the aic3204 codec?
I have not looked at the datasheet (if it is available), but I'll try to find 
Well looking at the _2r_sx functions in soc-core.c does not really clears the 
intention, but at least I can see several things in the snd_soc_put_volsw_2r_sx 
function, which can cause problems:
- in error case it returns 0,
- instead of updating the bits, it rewrites the register, which I think will 
erase bits, which it should not touch.
- it has the ret variable, but it is not really used, and when it got assigned, 
than it gets 1 in the success case. But luckily the return at the end of the 
function is not using the ret, but 0.
- I'm not really sure if the 0xff masking is needed at all in the _sx functions, 
since the values are masked with the mask anyways.

So I do not really follow what these suppose to do... Can someone give an 
example of HW register, and the SX combination with the tlv struct? 

More information about the Alsa-devel mailing list