HID: wacom: Report full pressure range for Intuos, Cintiq 13HD Touch
authorJason Gerecke <killertofu@gmail.com>
Thu, 15 Oct 2015 17:17:06 +0000 (10:17 -0700)
committerJiri Kosina <jkosina@suse.cz>
Wed, 21 Oct 2015 09:18:41 +0000 (11:18 +0200)
The new Intuos tablets added in eda01da and the Cintiq 13HD Touch added
in b4bf212 are capable of reporting 2048 levels of pressure. Although the
kernel reports the correct range to userspace, an oversight has resulted
in the driver ingoring the 11th pressure bit and only sending pressures
of 0 through 1023.

We could fix this issue by expanding the type check to include these
devices, but it makes much more sense to just have the driver look at
the device's maximum pressure when determining if it should read the
11th bit.

Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
Reviewed-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/wacom_wac.c

index 01ff648d60985eed4b5733e0f2a68cb6256648ad..7b3784826cce920f3d3e1697f9302f12bb028b38 100644 (file)
@@ -765,7 +765,7 @@ static void wacom_intuos_general(struct wacom_wac *wacom)
        /* general pen packet */
        if ((data[1] & 0xb8) == 0xa0) {
                t = (data[6] << 2) | ((data[7] >> 6) & 3);
-               if (features->type >= INTUOS4S && features->type <= CINTIQ_COMPANION_2) {
+               if (features->pressure_max == 2047) {
                        t = (t << 1) | (data[1] & 1);
                }
                input_report_abs(input, ABS_PRESSURE, t);