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

Xarteras xarteras at nostalgicnetworxx.org
Mon Oct 20 14:41:40 CEST 2008


Takashi Iwai wrote:
> 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.
> 

Whoops, don't know how I could miss that.
It works now with the new IDs, thanks :)

Jan Wolf


More information about the Alsa-devel mailing list