[alsa-devel] Headset button mapping in the kernel

Jaroslav Kysela perex at perex.cz
Tue Dec 3 22:14:59 CET 2019


Dne 03. 12. 19 v 21:43 Curtis Malainey napsal(a):
> On Thu, Nov 28, 2019 at 1:13 AM Mads Lønsethagen <mads at ab3.no> wrote:
> 
>> On 25.11.2019 20:25, Curtis Malainey wrote:
>>> Hello ALSA Devs,
>>>
>>> I am looking to get some feedback/ideas on a possible change to
>>> headset button mapping. Locally we are carrying patches that implement
>>> the mappings in the machine driver (which we understand you do not
>>> want upstream.) We are looking to see if we can add a new API
>>> (something like a sysfs path potentially) to have userspace pass in
>>> the mapping, if it chooses to, so the mapping can still be done in the
>>> kernel. That way we can carry just the config locally and remove some
>>> of the kernel patches we are carrying locally. Thanks.
>>>
>>> Curtis
>>>
>>
>> Hi Mads,
> 
> Apologies, apparently my spam filter grabbed your email from me (back to
> adjusting the rules.)
> 
>> Sorry for the top posting in my last mail.
>>
>> I just wondered, do this have anything to do with headphones that has
>> physical buttons on the headphone wire itself? E.g the Bose QC25 is a
>> pair of headphones that has four buttons on the wire, and as far as I
>> can see there's no way of getting those buttons to work in vanilla Linux
>> for now, but it works in Android and Windows 10.
>>
> 
> No this is related to ChromeOS device headset button mapping, but hopefully
> android will pick this up as well.
> Yes, these buttons are the ones I am discussing. Currently in ChromeOS (and
> likely in Android as well) we carry patches such as
> https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1033465/
> It appears some have started landing
> upstream ae09a4783b9caf9307f303ef039f8297ce0371fe ("ASoC: Intel: Headset
> button support in kabylake machine driver") but it would be great if we had
> a way for userspace to configure these buttons similar to how we handle
> UCMs.

The question why you need to change this settings in the user space. I think 
that the device tree was designed exactly to describe this hw platform 
specific settings. Another possibility is to use the kernel module option to 
configure the settings from the user space. But it's just an idea. You are 
probably looking for an interface which can be used when the driver is running.

					Jaroslav

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


More information about the Alsa-devel mailing list