Re: [PATCH 1/7] HID: wacom: Move handling of Intuos status packets to seperate function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Mar 6, 2015 at 11:47 AM, Jason Gerecke <killertofu@xxxxxxxxx> wrote:
> In addition to the touchswitch state for "Intuos", these packets are
> also sent by the Intuos Pro, Intuos5, and last-generation Bamboo
> tablets when using a wired connection. They contain, among other
> things, information about the optional wireless module and battery
> charge state (to be supported in subsuquent patches).
>
> Signed-off-by: Jason Gerecke <killertofu@xxxxxxxxx>
> ---
>  drivers/hid/wacom_wac.c | 36 +++++++++++++++++++++++-------------
>  drivers/hid/wacom_wac.h |  1 +
>  2 files changed, 24 insertions(+), 13 deletions(-)
>
> diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
> index bbf72f9..cb308c5 100644
> --- a/drivers/hid/wacom_wac.c
> +++ b/drivers/hid/wacom_wac.c
> @@ -1740,20 +1740,9 @@ static int wacom_bpt_pen(struct wacom_wac *wacom)
>         unsigned char *data = wacom->data;
>         int prox = 0, x = 0, y = 0, p = 0, d = 0, pen = 0, btn1 = 0, btn2 = 0;
>
> -       if (data[0] != WACOM_REPORT_PENABLED && data[0] != WACOM_REPORT_USB)
> +       if (data[0] != WACOM_REPORT_PENABLED)
>             return 0;
>
> -       if (data[0] == WACOM_REPORT_USB) {
> -               if (features->type == INTUOSHT &&
> -                   wacom->shared->touch_input &&
> -                   features->touch_max) {
> -                       input_report_switch(wacom->shared->touch_input,
> -                                           SW_MUTE_DEVICE, data[8] & 0x40);
> -                       input_sync(wacom->shared->touch_input);
> -               }
> -               return 0;
> -       }
> -
>         prox = (data[1] & 0x20) == 0x20;
>
>         /*
> @@ -1960,6 +1949,24 @@ static int wacom_wireless_irq(struct wacom_wac *wacom, size_t len)
>         return 0;
>  }
>
> +static int wacom_status_irq(struct wacom_wac *wacom_wac, size_t len)
> +{
> +       struct wacom_features *features = &wacom_wac->features;
> +       unsigned char *data = wacom_wac->data;
> +
> +       if (data[0] != WACOM_REPORT_USB)
> +               return 0;
> +
> +       if (features->type == INTUOSHT &&
> +           wacom_wac->shared->touch_input &&
> +           features->touch_max) {
> +               input_report_switch(wacom_wac->shared->touch_input,
> +                                   SW_MUTE_DEVICE, data[8] & 0x40);
> +               input_sync(wacom_wac->shared->touch_input);
> +       }
> +       return 0;
> +}
> +
>  void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
>  {
>         bool sync;
> @@ -2044,7 +2051,10 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
>
>         case BAMBOO_PT:
>         case INTUOSHT:
> -               sync = wacom_bpt_irq(wacom_wac, len);
> +               if (wacom_wac->data[0] == WACOM_REPORT_USB)
> +                       sync = wacom_status_irq(wacom_wac, len);
> +               else
> +                       sync = wacom_bpt_irq(wacom_wac, len);
>                 break;
>
>         case BAMBOO_PAD:
> diff --git a/drivers/hid/wacom_wac.h b/drivers/hid/wacom_wac.h
> index a3d0828..ee6a545 100644
> --- a/drivers/hid/wacom_wac.h
> +++ b/drivers/hid/wacom_wac.h
> @@ -71,6 +71,7 @@
>  #define WACOM_REPORT_USB               192
>  #define WACOM_REPORT_BPAD_PEN          3
>  #define WACOM_REPORT_BPAD_TOUCH                16
> +#define WACOM_PKGLEN_STATUS            10

I don't see anywhere else WACOM_PKGLEN_STATUS is used. Do I miss something?

Except that, the patchset looks good.

Acked-by: Ping Cheng <pinbgc@xxxxxxxxx>

Ping

>  /* device quirks */
>  #define WACOM_QUIRK_MULTI_INPUT                0x0001
> --
> 2.3.0
>
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux