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 _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel