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

Xarteras xarteras at nostalgicnetworxx.org
Mon Oct 20 14:21:47 CEST 2008

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 

--- 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 */

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.

More information about the Alsa-devel mailing list