On Tue, Nov 18, 2014 at 04:42:22PM -0800, Ping Cheng wrote:
> 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;
>       }

Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net>
for this bit


> @@ -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))

Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net>, if it's split to a
separate patch.

fwiw, in the future we should use __func__ instead of harcoding function
names.

Cheers,
   Peter



------------------------------------------------------------------------------
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