diff options
author | Mark Brown <broonie@linaro.org> | 2013-08-27 15:40:03 +0100 |
---|---|---|
committer | Mark Brown <broonie@linaro.org> | 2013-08-27 15:40:03 +0100 |
commit | dc1632321ba1e93dde25870e96cebe21b7d52517 (patch) | |
tree | d52d934c79b23f91654c571d983e1a6ec41b71fd /sound/usb/endpoint.c | |
parent | 8c193b8dce4f2a2474dc2bc39ec972454df9d439 (diff) | |
parent | a85f9da707366e856c0aad9e329db0cc59475290 (diff) |
Merge remote-tracking branch 'asoc/topic/dmic' into asoc-core
Diffstat (limited to 'sound/usb/endpoint.c')
-rw-r--r-- | sound/usb/endpoint.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c index 7a444b5501d9..659950e5b94f 100644 --- a/sound/usb/endpoint.c +++ b/sound/usb/endpoint.c @@ -591,17 +591,16 @@ static int data_ep_set_params(struct snd_usb_endpoint *ep, ep->stride = frame_bits >> 3; ep->silence_value = pcm_format == SNDRV_PCM_FORMAT_U8 ? 0x80 : 0; - /* calculate max. frequency */ - if (ep->maxpacksize) { + /* assume max. frequency is 25% higher than nominal */ + ep->freqmax = ep->freqn + (ep->freqn >> 2); + maxsize = ((ep->freqmax + 0xffff) * (frame_bits >> 3)) + >> (16 - ep->datainterval); + /* but wMaxPacketSize might reduce this */ + if (ep->maxpacksize && ep->maxpacksize < maxsize) { /* whatever fits into a max. size packet */ maxsize = ep->maxpacksize; ep->freqmax = (maxsize / (frame_bits >> 3)) << (16 - ep->datainterval); - } else { - /* no max. packet size: just take 25% higher than nominal */ - ep->freqmax = ep->freqn + (ep->freqn >> 2); - maxsize = ((ep->freqmax + 0xffff) * (frame_bits >> 3)) - >> (16 - ep->datainterval); } if (ep->fill_max) |