[alsa-devel] ASoC: Defining "signed integer" mixer controls?

Clemens Ladisch clemens at ladisch.de
Thu Jun 3 10:25:16 CEST 2010

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",
> 			 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.


More information about the Alsa-devel mailing list