Setting the bit for SW_MUTE_DEVICE on kernels which do not have
SW_MUTE_DEVICE declared in input.h (prior to 3.13), causes these
devices' touch interfaces not to work.

Fixes: 7d13c26dd972 ("Backport support for the touch on/off switch").
Signed-off-by: Aaron Armstrong Skomra<sko...@gmail.com>
---
1. Does INTUOSHT have a touch switch? Maybe the check for BTN_TOOL_DOUBLETAP 
excludes INTUOSHT right after we catch its case.

2. Does TABLETPC somehow need this commit to disable touch? I don't think it 
could be using this non-existant constant, but I don't know which devices 
TABLETPC applies to etc. On the Intuos Pro 2 and Intuos (CTH-680) this switch 
is purely the reporting of the switch (the hardware disables the touch) so 
removing our attempt at reporting the switch is of minor consequence.

3. Why was SW_MUTE_DEVICE orignally backported? My guess was that it was to 
remove differences between each of our kernel directories. But it could be for 
some other reason that I don't know of, in that case I will be missing 
something here. 

4. My guess is that SW_MUTE_DEVICE is supported in RHEL 7 (this bug was found 
on RHEL 6) and that this code was tested against it, which is why we didn't 
catch this. ie RHEL probably added SW_MUTE_DEVICE to their kernel. It could 
also be that later input subsystems fail more gracefully when they recieve a 
"__set_bit" that they are unfamiliar with, I'm not sure if we want to find 
supported vanilla versions of these older kernels to test against.  Also, I 
have no idea how to check RHEL 7 source or if that's possible. If necessary we 
can either revise this commit to check for RHEL 7 or come back and do that at a 
later date for this event which again is of minor importance. 

 2.6.32/wacom_wac.c | 3 ---
 2.6.38/wacom_wac.c | 3 ---
 3.7/wacom_wac.c    | 3 ---
 3 files changed, 9 deletions(-)

diff --git a/2.6.32/wacom_wac.c b/2.6.32/wacom_wac.c
index 9f9899917a41..98589bea8f17 100644
--- a/2.6.32/wacom_wac.c
+++ b/2.6.32/wacom_wac.c
@@ -2276,7 +2276,6 @@ void wacom_setup_input_capabilities(struct input_dev 
*input_dev,
                        __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
 
                        input_dev->evbit[0] |= BIT_MASK(EV_SW);
-                       __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
                        wacom_wac->shared->has_mute_touch_switch = true;
                } else {
                        __set_bit(BTN_STYLUS3, input_dev->keybit);
@@ -2351,7 +2350,6 @@ void wacom_setup_input_capabilities(struct input_dev 
*input_dev,
 
                        if ((input_dev->id.product >= 0x353 && 
input_dev->id.product <= 0x356)) {
                                input_dev->evbit[0] |= BIT_MASK(EV_SW);
-                               __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
                                wacom_wac->shared->has_mute_touch_switch = true;
                                wacom_wac->shared->is_touch_on = true;
                        }
@@ -2394,7 +2392,6 @@ void wacom_setup_input_capabilities(struct input_dev 
*input_dev,
                if (features->touch_max &&
                    features->device_type == BTN_TOOL_DOUBLETAP) {
                        input_dev->evbit[0] |= BIT_MASK(EV_SW);
-                       __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
                        wacom_wac->shared->has_mute_touch_switch = true;
                }
                /* fall through */
diff --git a/2.6.38/wacom_wac.c b/2.6.38/wacom_wac.c
index e0b5af1fc850..858602daf993 100644
--- a/2.6.38/wacom_wac.c
+++ b/2.6.38/wacom_wac.c
@@ -2539,7 +2539,6 @@ int wacom_setup_input_capabilities(struct input_dev 
*input_dev,
                }
                else {
                        input_dev->evbit[0] |= BIT_MASK(EV_SW);
-                       __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
                        wacom_wac->shared->has_mute_touch_switch = true;
                }
                err = wacom_create_slots(wacom_wac);
@@ -2647,7 +2646,6 @@ int wacom_setup_input_capabilities(struct input_dev 
*input_dev,
                if ((features->device_type == BTN_TOOL_FINGER) &&
                    (input_dev->id.product >= 0x353 && input_dev->id.product <= 
0x356)) {
                        input_dev->evbit[0] |= BIT_MASK(EV_SW);
-                       __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
                        wacom_wac->shared->has_mute_touch_switch = true;
                        wacom_wac->shared->is_touch_on = true;
                }
@@ -2693,7 +2691,6 @@ int wacom_setup_input_capabilities(struct input_dev 
*input_dev,
                if (features->touch_max &&
                    features->device_type == BTN_TOOL_FINGER) {
                        input_dev->evbit[0] |= BIT_MASK(EV_SW);
-                       __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
                        wacom_wac->shared->has_mute_touch_switch = true;
                }
                /* fall through */
diff --git a/3.7/wacom_wac.c b/3.7/wacom_wac.c
index c91093e13de3..42b2050eb1e4 100644
--- a/3.7/wacom_wac.c
+++ b/3.7/wacom_wac.c
@@ -2511,7 +2511,6 @@ int wacom_setup_input_capabilities(struct input_dev 
*input_dev,
                }
                else {
                        input_dev->evbit[0] |= BIT_MASK(EV_SW);
-                       __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
                        wacom_wac->shared->has_mute_touch_switch = true;
                }
                /* fall through */
@@ -2592,7 +2591,6 @@ int wacom_setup_input_capabilities(struct input_dev 
*input_dev,
                if ((features->device_type == BTN_TOOL_FINGER) &&
                    (input_dev->id.product >= 0x353 && input_dev->id.product <= 
0x356)) {
                        input_dev->evbit[0] |= BIT_MASK(EV_SW);
-                       __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
                        wacom_wac->shared->has_mute_touch_switch = true;
                        wacom_wac->shared->is_touch_on = true;
                }
@@ -2638,7 +2636,6 @@ int wacom_setup_input_capabilities(struct input_dev 
*input_dev,
                if (features->touch_max &&
                    features->device_type == BTN_TOOL_FINGER) {
                        input_dev->evbit[0] |= BIT_MASK(EV_SW);
-                       __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
                        wacom_wac->shared->has_mute_touch_switch = true;
                }
                /* fall through */
-- 
2.7.4


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to