diff options
Diffstat (limited to 'sound/usb/stream.c')
-rw-r--r-- | sound/usb/stream.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sound/usb/stream.c b/sound/usb/stream.c index b43b6eec3227..badd1d6d175d 100644 --- a/sound/usb/stream.c +++ b/sound/usb/stream.c | |||
@@ -587,6 +587,7 @@ int snd_usb_parse_audio_interface(struct snd_usb_audio *chip, int iface_no) | |||
587 | 587 | ||
588 | num_channels = as->bNrChannels; | 588 | num_channels = as->bNrChannels; |
589 | format = le32_to_cpu(as->bmFormats); | 589 | format = le32_to_cpu(as->bmFormats); |
590 | chconfig = le32_to_cpu(as->bmChannelConfig); | ||
590 | 591 | ||
591 | /* lookup the terminal associated to this interface | 592 | /* lookup the terminal associated to this interface |
592 | * to extract the clock */ | 593 | * to extract the clock */ |
@@ -594,7 +595,8 @@ int snd_usb_parse_audio_interface(struct snd_usb_audio *chip, int iface_no) | |||
594 | as->bTerminalLink); | 595 | as->bTerminalLink); |
595 | if (input_term) { | 596 | if (input_term) { |
596 | clock = input_term->bCSourceID; | 597 | clock = input_term->bCSourceID; |
597 | chconfig = le32_to_cpu(input_term->bmChannelConfig); | 598 | if (!chconfig && (num_channels == input_term->bNrChannels)) |
599 | chconfig = le32_to_cpu(input_term->bmChannelConfig); | ||
598 | break; | 600 | break; |
599 | } | 601 | } |
600 | 602 | ||