On Thu, Jun 03, 2010 at 10:25:16AM +0200, Clemens Ladisch wrote: > Stuart Longland wrote: > > /* ADC PGA gain volumes. From 0 to 59.5 dB in 0.5 dB steps */ > > static DECLARE_TLV_DB_MINMAX(adc_tlv, 0, 0); > > The comment is wrong, this control goes from 0 to 0 dB. > > > SOC_DOUBLE_R_TLV("PCM Playback Volume", > > AIC3204_LDACVOL, AIC3204_RDACVOL, > > 0, 127, 0, dac_tlv), > > > > However; it treats the bitfield as unsigned, which is wrong in this > > case. The bitfield is a signed integer in two's complement format. How > > do I convince ALSA that these integers have a sign bit? > > ALSA's controls use signed values, it's the SOC_ macros that assume > bitfields. You should be able to define a control with your own > callbacks like in a non-ASoC driver. Ahh okay... makes sense... I'll have a closer look; perhaps some additional macros could be written to allow use of signed integer bitfields as well. I'm sure the TLV320AIC3204 is not the only CODEC that uses such beasts. -- Stuart Longland (aka Redhatter, VK4MSL) .'''. Gentoo Linux/MIPS Cobalt and Docs Developer '.'` : . . . . . . . . . . . . . . . . . . . . . . .'.' http://dev.gentoo.org/~redhatter :.' I haven't lost my mind... ...it's backed up on a tape somewhere. _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel