From 710669455d9e6978336dcbcb220024fb64ec2d38 Mon Sep 17 00:00:00 2001 From: Jorge Sanjuan Date: Mon, 14 May 2018 12:03:42 +0100 Subject: [PATCH] ALSA: usb-audio: UAC3: Parse Input Terminal number of channels. Obtain the number of channels for the Input Terminal from the Logical Cluster Descriptor. This achieves a useful minimal parsing of this unit so it can be used in other units in the topology. Signed-off-by: Jorge Sanjuan Reviewed-by: Ruslan Bilovol Tested-by: Ruslan Bilovol Signed-off-by: Takashi Iwai --- sound/usb/mixer.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index fb77847..bf74e7e 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -902,8 +902,12 @@ static int check_input_term(struct mixer_build *state, int id, term->id = id; term->type = le16_to_cpu(d->wTerminalType); - /* REVISIT: UAC3 IT doesn't have channels/cfg */ - term->channels = 0; + err = get_cluster_channels_v3(state, le16_to_cpu(d->wClusterDescrID)); + if (err < 0) + return err; + term->channels = err; + + /* REVISIT: UAC3 IT doesn't have channels cfg */ term->chconfig = 0; term->name = le16_to_cpu(d->wTerminalDescrStr); -- 2.7.4