On Tue, Jun 28, 2011 at 09:21:31AM -0700, Patrick Lai wrote:
Yes, CODEC in question takes byte-long signed gain value and would like to reuse snd_soc_xxx_volsw_xx mixer callback functions in soc-core.c. The only functions I see handle signed value are snd_soc_info_volsw_s8, snd_soc_get_volsw_s8, snd_soc_get_volsw_s8 Unless I am mistaken, these functions deal with two signed byte-long values which get concatenated into 16-bit value. Perhaps, original
No, they shouldn't do that - they should handle stereo pairs in a single register. Looks like they just need a little massaging to cope with mono controls.
So, my question is whether I should reuse volsw_s8 mixer control functions and have mixer application ignore integer.value[1] to suit my purpose or redefine new set of mixer control functions i.e snd_soc_set_volsw_single_s8. Otherwise, is there existing alternative to handle set/put byte-long signed value?
Make the current controls handle mono.