[alsa-devel] [PATCH 02/11] ucm: docs: Add JackType value
Jaroslav Kysela
perex at perex.cz
Tue Dec 3 09:39:47 CET 2019
Dne 03. 12. 19 v 4:22 Curtis Malainey napsal(a):
> On Fri, Nov 29, 2019 at 8:01 AM Jaroslav Kysela <perex at perex.cz> wrote:
>>
>> Dne 11. 11. 19 v 14:39 Jaroslav Kysela napsal(a):
>>> Dne 07. 11. 19 v 2:57 Curtis Malainey napsal(a):
>>>> Identifies the type of jack and how it should be accessed
>>>>
>>>> Signed-off-by: Curtis Malainey <cujomalainey at chromium.org>
>>>> ---
>>>> include/use-case.h | 3 +++
>>>> 1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/include/use-case.h b/include/use-case.h
>>>> index 2051bd40..3208cc30 100644
>>>> --- a/include/use-case.h
>>>> +++ b/include/use-case.h
>>>> @@ -322,6 +322,9 @@ int snd_use_case_get_list(snd_use_case_mgr_t *uc_mgr,
>>>> * configuration that doesn't belong to UCM configuration files.
>>>> * - JackName
>>>> * - Input name is the input device name for the jack
>>>> + * - JackType
>>>> + * - Specifies whether the jack is accessed via hctl or gpio and therefore
>>>> + * only carries the possible values of "gpio" or "hctl"
>>>> */
>>>> int snd_use_case_get(snd_use_case_mgr_t *uc_mgr,
>>>> const char *identifier,
>>>>
>>>
>>> What is meant with the "gpio" type? The standard input device interface? I
>>> believe it should be "inputdev" and "ctl" (hctl is just interface on top of
>>> ctl and the application can access the jack through snd_ctl functions, too.
>>
>> I see (when I was cleaning this extra Chrome stuff in the ucm profiles) that
>> it's related to the gpio (general purpose i/o pin interface) in the linux
>> kernel. The JackSwitch is probably also related and defines the pin number
>> where the application should watch for the jack state. In this case, it would
>> be probably more nice to follow the JackControl and JackDev and define the pin
>> number through JackGPIO or something like that. We will cover all three
>> posibilities: ALSA control interface, Input interface, GPIO interface .
>>
>> Jaroslav
> Initially that was our thoughts too but then we realized that in the
> event of a new theoretical input subsystem "foo" that can be used for
> jack detect then we would need to create another field for that as
> well. This reduces the need for having a field for every theoretical
> subsystem in the future and only then requires a new value.
The JackDev and JackControl was defined in 2015. If we decide to switch to:
JackType "(gpio|ctl|inputdev)"
JackSwitch "(gpio pin|ctl jack control name|input device name)"
.. then we need to adapt pulseaudio, too.
Anyway, JackDev/JackControl allows to use both definitions simultaneously,
thus the application can choose the interface as preferred (and available).
The gpio looks like a hack for drivers which does not have this abstraction
(input device or ALSA's jack) implemented. The gpio pin value can be passed
using the device tree to the driver.
Jaroslav
--
Jaroslav Kysela <perex at perex.cz>
Linux Sound Maintainer; ALSA Project; Red Hat, Inc.
More information about the Alsa-devel
mailing list