Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757242Ab0BDIaj (ORCPT ); Thu, 4 Feb 2010 03:30:39 -0500 Received: from cantor.suse.de ([195.135.220.2]:35538 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755207Ab0BDIah (ORCPT ); Thu, 4 Feb 2010 03:30:37 -0500 Date: Thu, 04 Feb 2010 09:30:36 +0100 Message-ID: From: Takashi Iwai To: Sebastien Alaiwan Cc: LKML Subject: Re: [PATCH] ice1712: fix: lock samplerate when samplerate locking is enabled. In-Reply-To: <4B69E06E.90308@gmail.com> References: <4B69E06E.90308@gmail.com> User-Agent: Wanderlust/2.15.6 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.7 Emacs/23.1 (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: 2329 Lines: 59 At Wed, 03 Feb 2010 21:45:34 +0100, Sebastien Alaiwan wrote: > > Hello, > > I found that the sampling rate locking setting of the ice1712 sound driver was > only half-respected : when the driver was locked to, let's say, 44100Hz, and a > usermode app was requesting 48000Hz playback, the request was succesful although > the soundcard would continue to run at 44100Hz. > > Here's a patch that will make those requests to fail. Thanks, the patch looks OK. But changing runtime->hw.rate_min and rate_max would be cheaper. It won't involve with kmalloc(). In theory, snd_pcm_hw_constraint*() can fail. Could you fix in that way and give your sign-off to merge to the upstream? (And don't forget to add me to Cc.) thanks, Takashi > diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c > index c7cff6f..4775626 100644 > --- a/sound/pci/ice1712/ice1712.c > +++ b/sound/pci/ice1712/ice1712.c > @@ -1181,6 +1181,8 @@ static int snd_ice1712_playback_pro_open(struct snd_pcm_substream *substream) > snd_pcm_hw_constraint_msbits(runtime, 0, 32, 24); > snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates); > > + if (is_pro_rate_locked(ice)) > + snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_RATE, PRO_RATE_DEFAULT, PRO_RATE_DEFAULT); > if (ice->spdif.ops.open) > ice->spdif.ops.open(ice, substream); > > @@ -1197,6 +1199,9 @@ static int snd_ice1712_capture_pro_open(struct snd_pcm_substream *substream) > snd_pcm_set_sync(substream); > snd_pcm_hw_constraint_msbits(runtime, 0, 32, 24); > snd_pcm_hw_constraint_list(runtime, 0, SNDRV_PCM_HW_PARAM_RATE, &hw_constraints_rates); > + if (is_pro_rate_locked(ice)) > + snd_pcm_hw_constraint_minmax(runtime, SNDRV_PCM_HW_PARAM_RATE, PRO_RATE_DEFAULT, PRO_RATE_DEFAULT); > + > return 0; > } > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/