Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756877AbcK3IyX (ORCPT ); Wed, 30 Nov 2016 03:54:23 -0500 Received: from mx2.suse.de ([195.135.220.15]:56094 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753217AbcK3IyP (ORCPT ); Wed, 30 Nov 2016 03:54:15 -0500 Date: Wed, 30 Nov 2016 09:54:13 +0100 Message-ID: From: Takashi Iwai To: "Jiada Wang" Cc: , , , , Subject: Re: [PATCH 1/3 v1] ALSA: usb-audio: more tolerant packetsize In-Reply-To: <20161130075923.15205-2-jiada_wang@mentor.com> References: <20161130075923.15205-1-jiada_wang@mentor.com> <20161130075923.15205-2-jiada_wang@mentor.com> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/24.5 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1917 Lines: 52 On Wed, 30 Nov 2016 08:59:21 +0100, Jiada Wang wrote: > > From: Andreas Pape > > since commit 57e6dae1087bbaa6b33d3dd8a8e90b63888939a3 the expected packetsize is always limited to Please use a form with 12 chars SHA ID plus the commit subject, e.g. 1234567890ab ("blah blah...") > nominal + 25%. It was discovered, that some devices have a much higher jitter > in used packetsizes than 25% which would result in BABBLE condition and dropping of packets. > A better solution is so assume the jitter to be the nominal packetsize: > -one nearly empty packet followed by a almost double sized one. The increase of the max frequency is supposedly OK. A remaining question is whether this should be included in stable kernel. It fixes in one side, but it's quite untested in another side. Maybe we queue this for 4.10, and later on notify to stable maintainer once when it's confirmed to work and be harmless. thanks, Takashi > > Signed-off-by: Andreas Pape > Signed-off-by: Jiada Wang > --- > sound/usb/endpoint.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c > index c470251..2f592dd 100644 > --- a/sound/usb/endpoint.c > +++ b/sound/usb/endpoint.c > @@ -632,8 +632,8 @@ 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; > > - /* assume max. frequency is 25% higher than nominal */ > - ep->freqmax = ep->freqn + (ep->freqn >> 2); > + /* assume max. frequency is double than nominal */ > + ep->freqmax = ep->freqn * 2; > /* Round up freqmax to nearest integer in order to calculate maximum > * packet size, which must represent a whole number of frames. > * This is accomplished by adding 0x0.ffff before converting the > -- > 2.9.3 > >