Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755248AbZCJM7b (ORCPT ); Tue, 10 Mar 2009 08:59:31 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752793AbZCJM7W (ORCPT ); Tue, 10 Mar 2009 08:59:22 -0400 Received: from mail.suse.de ([195.135.220.2]:42275 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752651AbZCJM7V (ORCPT ); Tue, 10 Mar 2009 08:59:21 -0400 Date: Tue, 10 Mar 2009 13:59:18 +0100 Message-ID: From: Takashi Iwai To: Viral Mehta Cc: perex@perex.cz, Linux audio dev , Clemens Ladisch , alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: Re: [alsa-devel] [PATCH] [SOUND] recording gain control In-Reply-To: <49B65B96.5080108@einfochips.com> References: <49B5F8F5.8040100@einfochips.com> <49B62C1D.4080509@ladisch.de> <49B65B96.5080108@einfochips.com> User-Agent: Wanderlust/2.12.0 (Your Wildest Dreams) SEMI/1.14.6 (Maruoka) FLIM/1.14.7 (=?ISO-8859-4?Q?Sanj=F2?=) APEL/10.6 Emacs/22.3 (x86_64-suse-linux-gnu) MULE/5.0 (SAKAKI) 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: 2524 Lines: 67 At Tue, 10 Mar 2009 17:52:46 +0530, Viral Mehta wrote: > > Takashi Iwai wrote: > > At Tue, 10 Mar 2009 10:00:13 +0100, > > Clemens Ladisch wrote: > > > >> (CC alsa-devel) > >> > >> Viral Mehta wrote: > >> > >>> Hi, > >>> > >>> I am trying to do gain control while RECORDING for my Audio Mic device. > >>> > >>> My application opens /dev/mixer device and calls ioctl(fdmixer, > >>> MIXER_WRITE(SOUND_MIXER_MIC), ...) > >>> > >>> But, the call fails. It traces to sound/core/oss/mixer_oss.c file and > >>> snd_mixer_oss_put_volume1() function. > >>> It never falls in "if (slot->present & SNDRV_MIXER_OSS_PRESENT_CVOLUME)" > >>> as condition "if (slot->present & SNDRV_MIXER_OSS_PRESENT_PVOLUME) " > >>> comes as false. > >>> > >>> I think there is a bug in kernel and I think it should be like as below, > >>> > >>> --- sound/core/oss/mixer_oss.c 2008-12-03 13:24:02.000000000 +0530 > >>> +++ sound/core/oss/mixer_oss.c 2009-03-09 16:22:06.548766896 +0530 > >>> @@ -688,7 +688,7 @@ static int snd_mixer_oss_put_volume1(str > >>> > >>> if (slot->present & SNDRV_MIXER_OSS_PRESENT_PVOLUME) { > >>> snd_mixer_oss_put_volume1_vol(fmixer, pslot, > >>> slot->numid[SNDRV_MIXER_OSS_ITEM_PVOLUME], left, right); > >>> - if (slot->present & SNDRV_MIXER_OSS_PRESENT_CVOLUME) > >>> + } else if (slot->present & SNDRV_MIXER_OSS_PRESENT_CVOLUME) { > >>> snd_mixer_oss_put_volume1_vol(fmixer, pslot, > >>> slot->numid[SNDRV_MIXER_OSS_ITEM_CVOLUME], left, right); > >>> } else if (slot->present & SNDRV_MIXER_OSS_PRESENT_GVOLUME) { > >>> snd_mixer_oss_put_volume1_vol(fmixer, pslot, > >>> slot->numid[SNDRV_MIXER_OSS_ITEM_GVOLUME], left, right); > >>> > >> Your mailer mangled the patch; see linux/Documentation/email-clients.txt. > >> > > > > Also, the current code behaves intentionally so (as it's designed for > > mic-loopback volume). > > > > A more feasible fix would be to add another if check for *_CVOLUME > > instead of moving it. > > > > > > > Oh okie. It makes sense. > I just sent out a patch on LAD. Should I resubmit with what you proposed ? LAD is no good place for sending a patch of sound driver. Please post to alsa-devel ML (and add Cc to me). thanks, Takashi -- 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/