There's a bug in sgtl5000.c concerning PCM Playback Volume. The TLV entry is missign.
This patch addes the TLV entry.
After that the output of amixer works as expected.
amixer cget name="PCM Playback Volume"
numid=1,iface=MIXER,name='PCM Playback Volume'
; type=INTEGER,access=rw---R--,values=2,min=0,max=192,step=0
: values=180,180
| dBscale-min=-90.00dB,step=0.50dB,mute=0
Index: sound/soc/codecs/sgtl5000.c
===================================================================
--- sound/soc/codecs/sgtl5000.c (revision 99)
+++ sound/soc/codecs/sgtl5000.c (working copy)
@@ -707,6 +707,8 @@
return 0;
}
+static const DECLARE_TLV_DB_SCALE(pcm_playback_volume, -9000,50, 0);
+
static const DECLARE_TLV_DB_SCALE(capture_6db_attenuate, -600, 600, 0);
/* tlv for mic gain, 0db 20db 30db 40db */
@@ -734,6 +736,7 @@
.name = "PCM Playback Volume",
.access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
SNDRV_CTL_ELEM_ACCESS_READWRITE,
+ .tlv.p = pcm_playback_volume,
.info = dac_info_volsw,
.get = dac_get_volsw,
.put = dac_put_volsw,