amixer: skip showing asoc tlv byte controls

ASoC TLV Byte controls are very large size controls so we should add new
options for these. So skip dumping contents for these.

$amixer -c0 cget numid=16
numid=16,iface=MIXER,name='mdl params'
  ; type=BYTES,access=-----RW-,values=30336
  ; ASoC TLV Byte control, skipping bytes dump

Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Vinod Koul 2016-01-28 14:02:18 +05:30 committed by Takashi Iwai
parent d633469c9d
commit 18d5f52a61

View file

@ -682,6 +682,14 @@ static int show_control(const char *space, snd_hctl_elem_t *elem,
__skip_read: __skip_read:
if (!snd_ctl_elem_info_is_tlv_readable(info)) if (!snd_ctl_elem_info_is_tlv_readable(info))
goto __skip_tlv; goto __skip_tlv;
/* skip ASoC ext bytes controls that may have huge binary TLV data */
if (type == SND_CTL_ELEM_TYPE_BYTES &&
!snd_ctl_elem_info_is_readable(info) &&
!snd_ctl_elem_info_is_writable(info)) {
printf("%s; ASoC TLV Byte control, skipping bytes dump\n", space);
goto __skip_tlv;
}
tlv = malloc(4096); tlv = malloc(4096);
if ((err = snd_hctl_elem_tlv_read(elem, tlv, 4096)) < 0) { if ((err = snd_hctl_elem_tlv_read(elem, tlv, 4096)) < 0) {
error("Control %s element TLV read error: %s\n", card, snd_strerror(err)); error("Control %s element TLV read error: %s\n", card, snd_strerror(err));