Wacom kernel driver has been merged to HID subsystem. As a bonus,
we also allow PAD to report its data on its own interface. To declare
the exact event types, we should not set EV_ABS or EV_X/Y for PADs
on most tablets.

However, xf86-input-wacom is not designed to handle this case. This
patch makes future PAD-only, or even expresskey-only, tablets work
properly.

Signed-off-by: Ping Cheng <pi...@wacom.com>
---
 src/wcmUSB.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/wcmUSB.c b/src/wcmUSB.c
index 638ffb8..bac3c66 100644
--- a/src/wcmUSB.c
+++ b/src/wcmUSB.c
@@ -546,6 +546,11 @@ int usbWcmGetRanges(InputInfoPtr pInfo)
 
        if (!ISBITSET(ev,EV_ABS))
        {
+               /* may be an expresskey only interface */
+               if (ISBITSET(common->wcmKeys, BTN_FORWARD) ||
+                   ISBITSET(common->wcmKeys, BTN_0))
+                       return Success;
+
                xf86Msg(X_ERROR, "%s: no abs bits.\n", pInfo->name);
                return !Success;
        }
@@ -560,6 +565,11 @@ int usbWcmGetRanges(InputInfoPtr pInfo)
        /* max x */
        if (ioctl(pInfo->fd, EVIOCGABS(ABS_X), &absinfo) < 0)
        {
+               /* may be a PAD only interface */
+               if (ISBITSET(common->wcmKeys, BTN_FORWARD) ||
+                   ISBITSET(common->wcmKeys, BTN_0))
+                       return Success;
+
                xf86Msg(X_ERROR, "%s: unable to ioctl xmax value.\n", 
pInfo->name);
                return !Success;
        }
@@ -755,8 +765,7 @@ int usbWcmGetRanges(InputInfoPtr pInfo)
 
        if (ioctl(pInfo->fd, EVIOCGBIT(EV_SW, sizeof(sw)), sw) < 0)
        {
-               xf86Msg(X_ERROR, "%s: usbProbeKeys unable to ioctl "
-                       "sw bits.\n", pInfo->name);
+               xf86Msg(X_ERROR, "%s: unable to ioctl sw bits.\n", pInfo->name);
                return 0;
        }
        else if (ISBITSET(sw, SW_MUTE_DEVICE))
-- 
1.9.1


------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Linuxwacom-devel mailing list
Linuxwacom-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxwacom-devel

Reply via email to