[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