[PATCH 0/5] ALSA: control - add generic LED trigger code

Jaroslav Kysela perex at perex.cz
Sun Feb 14 19:55:21 CET 2021


Dne 12. 02. 21 v 13:28 Takashi Iwai napsal(a):
> On Fri, 12 Feb 2021 11:32:38 +0100,
> Jaroslav Kysela wrote:
>>
>> Dne 12. 02. 21 v 10:23 Takashi Iwai napsal(a):
>>> On Thu, 11 Feb 2021 18:53:20 +0100,
>>> Jaroslav Kysela wrote:
>>>>
>>>> Dne 11. 02. 21 v 18:15 Takashi Iwai napsal(a):
>>>>
>>>>>> Jaroslav Kysela (5):
>>>>>>   ALSA: control - introduce snd_ctl_notify_one() helper
>>>>>>   ALSA: control - add layer registration routines
>>>>>>   ALSA: control - add generic LED trigger module as the new control
>>>>>>     layer
>>>>>>   ALSA: HDA - remove the custom implementation for the audio LED trigger
>>>>>>   ALSA: control - add sysfs support to the LED trigger module
>>>>
>>>>> One thing I still miss from the picture is how to deal with the case
>>>>> like AMD ACP.  It has no mixer control to bundle with the LED trigger.
>>>>> Your idea is to make a (dummy) user element and tie the LED trigger
>>>>> with it?
>>>>
>>>> Yes, the user-space code which guarantee the silence stream should create an
>>>> user space control with the appropriate LED group access bits. The alsa-lib's
>>>> softvol PCM plugin can do this silencing for example.
>>>
>>> What control would it create?  In the case of softvol, it's a volume
>>> control that really changes the volume.  For the mute LED, it's a
>>> control turn on/off the mute?  If so, I wonder what makes better than
>>> creating it from the kernel driver.  (Of course, we can list up like
>>> "flexibility", etc, but it has a flip side of "complexity" and
>>> "fragility"...)
>>
>> The current code handles both switch / volume for the marked control (assuming
>> that the minimal value - usually zero - is full mute). And actually, there are
>> snd_pcm_areas_silence() calls in the softvol plugin, so we know that the PCM
>> stream is not passed to the application at this point.
>>
>> Condition:
>>
>>       if (info.type == SNDRV_CTL_ELEM_TYPE_BOOLEAN ||
>>           info.type == SNDRV_CTL_ELEM_TYPE_INTEGER)
>>           ... value.value.integer.value[i] != info.value.integer.min
>>
>> The softvol plugin may be extended to add the mute switch control, of course.
> 
> Well, my question was what kind of mixer control will be added at all,
> although the chip does neither volume nor mute function.  Would we add
> a fake volume/switch like softvol, or would we add rather a control
> that is directly tied with the LED state?

I don't understand your question. If the user space marks the own vol/sw
control with the LED group, then it's tied with the LED state. I believe that
the control should be created in the code which make sure that the PCM stream
is silenced (like alsa-lib's softvol plugin).

						Jaroslav

-- 
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.


More information about the Alsa-devel mailing list