[alsa-devel] [PATCH] snd-sbxfi: implement Master volume control

Takashi Iwai tiwai at suse.de
Mon Oct 20 14:32:19 CEST 2008


At Mon, 20 Oct 2008 14:25:34 +0200,
I wrote:
> 
> At Mon, 20 Oct 2008 12:21:47 +0000,
> Xarteras wrote:
> > 
> > Takashi Iwai wrote:
> > > At Mon, 20 Oct 2008 07:59:32 +0200,
> > > I wrote:
> > >> At Sun, 19 Oct 2008 18:08:15 -0500,
> > >> William Pitcock wrote:
> > >>> Unfortunately, the X-Fi does not have a hardware master volume control, so we have
> > >>> to create a virtual master and bind all playback controls to it.
> > >>>
> > >>> This patch depends on the patch that renames Master to PCM.
> > >>>
> > >>> Signed-off-by: William Pitcock <nenolod at sacredspiral.co.uk>
> > >> I don't like this patch because the virtual master implementation is
> > >> already found in sbxfi.c  No reason to use yet another vmaster
> > >> framework in addition.
> > >>
> > >> So, no I don't apply both patches.  A simpler fix is just to add PCM
> > >> volume like Master volume.  Both can use the same callbacks, so the
> > >> addition would be pretty small.
> > > 
> > > I added PCM volume now using the same mechanism as Master volume.
> > > Please give it a try, and let me know if it's broken.
> > > 
> > 
> > The last version from git is again, not working for me.
> > 
> > To make it work the following fixes are needed:
> > The correct option for the ratec is SRCCTL_STATE_INIT, not 
> > SRCCTL_STATE_TAIL.
> > 
> > --- sbxfi.c.ori 2008-10-20 14:13:53.000000000 +0200
> > +++ sbxfi.c     2008-10-20 14:18:06.000000000 +0200
> > @@ -542,7 +542,7 @@
> >          }
> >          ratec |= SRCCTL_FMT_S16;
> >          ratec |= SRCCTL_BUS_MASTER;
> > -       ratec |= SRCCTL_STATE_TAIL;
> > +       ratec |= SRCCTL_STATE_INIT;
> > 
> >          ctrl = ratec;
> >          ctrl |= SRCCTL_PITCH_MASTER; /* master */
> 
> Oops, thanks for checking it.
> Will fix it now.

Fixed and pushed out.

> > Also for some strange and for me unknown reason the patch "ALSA: 
> > snd-sbxfi: use SBXXXX model numbers instead of user-unfriendly names 
> > like UAA and ORIG." broke sound output, too.
> > Reverting it and applying the patch above fixes the driver for me.
> 
> Hm, it's weird.  Checking now...

Maybe the id string was changed by the patch unexpectedly?
Check /proc/asound/cards output before and after the patch.
If so, it's because the mixer setting was lost and not restored via
alsactl due to the renaming of the id string.  Re-adjust the mixer
setting again.


Takashi


More information about the Alsa-devel mailing list