lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Thu, 11 Sep 2014 11:08:04 -0700
From:	Ping Cheng <pinglinux@...il.com>
To:	linux-input <linux-input@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Fwd: [PATCH] HID: wacom: make the WL connection friendly for the desktop

On Thu, Sep 11, 2014 at 10:14 AM, Benjamin Tissoires
<benjamin.tissoires@...hat.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@...hat.com>


Reviewed-by: Ping Cheng <pingc@...om.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
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ