diff options
-rw-r--r-- | sound/usb/endpoint.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c index 57b0d9968ec2..a2cdf3370afe 100644 --- a/sound/usb/endpoint.c +++ b/sound/usb/endpoint.c | |||
@@ -638,7 +638,21 @@ static int data_ep_set_params(struct snd_usb_endpoint *ep, | |||
638 | 638 | ||
639 | ep->datainterval = fmt->datainterval; | 639 | ep->datainterval = fmt->datainterval; |
640 | ep->stride = frame_bits >> 3; | 640 | ep->stride = frame_bits >> 3; |
641 | ep->silence_value = pcm_format == SNDRV_PCM_FORMAT_U8 ? 0x80 : 0; | 641 | |
642 | switch (pcm_format) { | ||
643 | case SNDRV_PCM_FORMAT_U8: | ||
644 | ep->silence_value = 0x80; | ||
645 | break; | ||
646 | case SNDRV_PCM_FORMAT_DSD_U8: | ||
647 | case SNDRV_PCM_FORMAT_DSD_U16_LE: | ||
648 | case SNDRV_PCM_FORMAT_DSD_U32_LE: | ||
649 | case SNDRV_PCM_FORMAT_DSD_U16_BE: | ||
650 | case SNDRV_PCM_FORMAT_DSD_U32_BE: | ||
651 | ep->silence_value = 0x69; | ||
652 | break; | ||
653 | default: | ||
654 | ep->silence_value = 0; | ||
655 | } | ||
642 | 656 | ||
643 | /* assume max. frequency is 50% higher than nominal */ | 657 | /* assume max. frequency is 50% higher than nominal */ |
644 | ep->freqmax = ep->freqn + (ep->freqn >> 1); | 658 | ep->freqmax = ep->freqn + (ep->freqn >> 1); |