Re: [PATCH 1/2] Input: soc_button_array - Set input device name

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, Jan 22, 2017 at 12:49 AM, Hans de Goede <hdegoede@xxxxxxxxxx> wrote:
> Hi,
>
> On 21-01-17 20:13, Dmitry Torokhov wrote:
>>
>> On Mon, Jan 09, 2017 at 06:57:06PM +0100, Hans de Goede wrote:
>>>
>>> On some tablets using the soc_button_array driver the buttons do not
>>> follow the standard home, power, volume_up, volume_down, rotation_lock
>>> button order as published by Microsoft.
>>>
>>> We can use the existing udev hwdb mechanism to fix this up, but then
>>> the created devices must have a unique name, therefor this commit adds
>>> a unique name for the 2 created gpio-keys input devices.
>>
>>
>> Why does it have to have unique name? You should be able to match on
>> other input device properties, for example ATTR{capabilities/ev} or
>> ATTR{capabilities/keys} to identify the device you want to adjust.
>
>
> hwdb entries do not have access to full udev data, basically there
> are 2 match formats:
>
> # Supported hardware matches are:
> #  - Generic input devices match:
> #      evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV
> #    This matches on the kernel modalias of the input-device, mainly:
> #    ZZZZ is the bus-id (see /usr/include/linux/input.h BUS_*), YYYY, XXXX
> and
> #    WWW are the 4-digit hex uppercase vendor, product and version ID and
> VVVV
> #    is an arbitrary length input-modalias describing the device
> capabilities.
> #    The vendor, product and version ID for a device node "eventX" is listed
> #    in /sys/class/input/eventX/device/id.
> #
> #  - Input driver device name and DMI data match:
> #      evdev:name:<input device name>:dmi:bvn*:bvr*:bd*:svn<vendor>:pn*
> #    <input device name> is the name device specified by the
> #    driver, <vendor> is the firmware-provided string exported
> #    by the kernel DMI modalias, see /sys/class/dmi/id/modalias
>
>
> Since we want to match on DMI info we need to use the second, and
> the info you are referring to is not available here.

Well, you can either teach hwdb new tricks or mangle the name in udev
rule. As far as I can see the original invocation is:

# device matching the input device name and the machine's DMI data
KERNELS=="input*", IMPORT{builtin}="hwdb
'evdev:name:$attr{name}:$attr{[dmi/id]modalias}'", \
 RUN{builtin}+="keyboard", GOTO="evdev_end"

You can add a similar rule that also looks at ATTR{whatever}, but
instead of using "name:$attr{name}" you can use whatever string you
want.

There is no need to change kernel, it already exports all necessary data.

Thanks.

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux