lkml.org 
[lkml]   [2014]   [Sep]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectFwd: [PATCH] HID: wacom: make the WL connection friendly for the desktop
From
On Thu, Sep 11, 2014 at 10:14 AM, Benjamin Tissoires
<benjamin.tissoires@redhat.com> wrote:
>
> Currently, tablets connected to the WL receiver all share the same
> VID/PID. There is no way for the user space to know which one is which
> besides parsing the name. We can force the PID to be set to the
> actual hardware. This way, the input device will have the correct PID
> which can be match in libwacom.


Nice job, Benjamin! Thank you, on behalf of wireless tablet users ;-).

>
> With only this trick, the pad input does not inherit the ID_INPUT_TABLET
> udev property from its parent. We can force udev to accept it by declaring
> a BTN_STYLUS which is never used.


BTN_STYLUS can be confusing to userland clients that retrieve it to
decide tool types. But, without it, the client is already confused
with joystick. So, unless we introduce a new tool type, which I
proposed a few years ago and was rejected, we may have to keep clients
confused. With that said, the patch is

>
> This way, tablets connected through WL can be used from the user point of
> view in the same way they are used while connected through wire.
>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>


Reviewed-by: Ping Cheng <pingc@wacom.com>

Cheers,

Ping

> ---
>
> Hi guys,
>
> to continue on Ping's work regarding the Wireless reciever, here is a patch
> which allows to have the same user experience regardless the transport layer.
> Unfortunately, a libwacom patch is also required, but once both are applied,
> there is no differences between the wired and wireless connections. Yeah!
>
> Cheers,
> Benjamin
>
> drivers/hid/wacom_sys.c | 2 +-
> drivers/hid/wacom_wac.c | 3 +++
> 2 files changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
> index 9e4e188..a8b7f16 100644
> --- a/drivers/hid/wacom_sys.c
> +++ b/drivers/hid/wacom_sys.c
> @@ -1035,7 +1035,7 @@ static struct input_dev *wacom_allocate_input(struct wacom *wacom)
> input_dev->uniq = hdev->uniq;
> input_dev->id.bustype = hdev->bus;
> input_dev->id.vendor = hdev->vendor;
> - input_dev->id.product = hdev->product;
> + input_dev->id.product = wacom_wac->pid ? wacom_wac->pid : hdev->product;
> input_dev->id.version = hdev->version;
> input_set_drvdata(input_dev, wacom);
>
> diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
> index c3cbbfb..b8180e4 100644
> --- a/drivers/hid/wacom_wac.c
> +++ b/drivers/hid/wacom_wac.c
> @@ -1990,6 +1990,9 @@ int wacom_setup_pad_input_capabilities(struct input_dev *input_dev,
> input_set_abs_params(input_dev, ABS_X, 0, 1, 0, 0);
> input_set_abs_params(input_dev, ABS_Y, 0, 1, 0, 0);
>
> + /* kept for making udev and libwacom accepting the pad */
> + __set_bit(BTN_STYLUS, input_dev->keybit);
> +
> switch (features->type) {
> case GRAPHIRE_BT:
> __set_bit(BTN_0, input_dev->keybit);
> --
> 2.1.0
>


\
 
 \ /
  Last update: 2014-09-11 20:41    [W:3.194 / U:0.004 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site