From: Przemo Firszt <przemo@firszt.eu>
To: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>,
Jiri Kosina <jkosina@suse.cz>, Ping Cheng <pinglinux@gmail.com>,
Jason Gerecke <killertofu@gmail.com>,
linux-kernel@vger.kernel.org, linux-input@vger.kernel.org
Subject: Re: [PATCH v3 4/7] Input - wacom: Check for bluetooth protocol while setting OLEDs
Date: Tue, 29 Jul 2014 23:53:32 +0100 [thread overview]
Message-ID: <1406674412.24026.1.camel@fedora-lan> (raw)
In-Reply-To: <1406659385-3256-5-git-send-email-benjamin.tissoires@redhat.com>
Dnia 2014-07-29, wto o godzinie 14:43 -0400, Benjamin Tissoires pisze:
> Bluetooth Intuos 4 use 1-bit definition while the USB ones use a 4-bits
> definition. This changes the size of the raw image we receive, and thus
> the kernel will only accept 1-bit images for Bluetooth and 4-bits for
> USB.
>
> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
> ---
> drivers/hid/wacom_sys.c | 29 +++++++++++++++++++++--------
> 1 file changed, 21 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c
> index f5c9c56..a12cd9c 100644
> --- a/drivers/hid/wacom_sys.c
> +++ b/drivers/hid/wacom_sys.c
> @@ -20,6 +20,7 @@
> #define WAC_CMD_LED_CONTROL 0x20
> #define WAC_CMD_ICON_START 0x21
> #define WAC_CMD_ICON_XFER 0x23
> +#define WAC_CMD_ICON_BT_XFER 0x26
> #define WAC_CMD_RETRIES 10
>
> static int wacom_get_report(struct hid_device *hdev, u8 type, u8 id,
> @@ -526,12 +527,14 @@ static int wacom_led_control(struct wacom *wacom)
> return retval;
> }
>
> -static int wacom_led_putimage(struct wacom *wacom, int button_id, const void *img)
> +static int wacom_led_putimage(struct wacom *wacom, int button_id, u8 xfer_id,
> + const unsigned len, const void *img)
> {
> unsigned char *buf;
> int i, retval;
> + const unsigned chunk_len = len / 4; /* 4 chunks are needed to be sent */
>
> - buf = kzalloc(259, GFP_KERNEL);
> + buf = kzalloc(chunk_len + 3 , GFP_KERNEL);
> if (!buf)
> return -ENOMEM;
>
> @@ -543,15 +546,15 @@ static int wacom_led_putimage(struct wacom *wacom, int button_id, const void *im
> if (retval < 0)
> goto out;
>
> - buf[0] = WAC_CMD_ICON_XFER;
> + buf[0] = xfer_id;
> buf[1] = button_id & 0x07;
> for (i = 0; i < 4; i++) {
> buf[2] = i;
> - memcpy(buf + 3, img + i * 256, 256);
> + memcpy(buf + 3, img + i * chunk_len, chunk_len);
>
> retval = wacom_set_report(wacom->hdev, HID_FEATURE_REPORT,
> - WAC_CMD_ICON_XFER,
> - buf, 259, WAC_CMD_RETRIES);
> + xfer_id, buf, chunk_len + 3,
> + WAC_CMD_RETRIES);
> if (retval < 0)
> break;
> }
> @@ -652,13 +655,23 @@ static ssize_t wacom_button_image_store(struct device *dev, int button_id,
> struct hid_device *hdev = container_of(dev, struct hid_device, dev);
> struct wacom *wacom = hid_get_drvdata(hdev);
> int err;
> + unsigned len;
> + u8 xfer_id;
>
> - if (count != 1024)
> + if (hdev->bus == BUS_BLUETOOTH) {
> + len = 256;
> + xfer_id = WAC_CMD_ICON_BT_XFER;
> + } else {
> + len = 1024;
> + xfer_id = WAC_CMD_ICON_XFER;
> + }
> +
> + if (count != len)
> return -EINVAL;
>
> mutex_lock(&wacom->lock);
>
> - err = wacom_led_putimage(wacom, button_id, buf);
> + err = wacom_led_putimage(wacom, button_id, xfer_id, len, buf);
>
> mutex_unlock(&wacom->lock);
Signed-off-by: Przemo Firszt <przemo@firszt.eu>
I'll test the whole series tomorrow.
--
Kind regards,
Przemo Firszt
next prev parent reply other threads:[~2014-07-29 22:53 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-29 18:42 [PATCH v3 0/7] Bluetooth Wacom merge into the USB driver Benjamin Tissoires
2014-07-29 18:42 ` [PATCH v3 1/7] Input - wacom: prepare the driver to include BT devices Benjamin Tissoires
2014-07-29 18:43 ` [PATCH v3 2/7] Input - wacom: handle Graphire BT tablets in wacom.ko Benjamin Tissoires
2014-07-29 18:43 ` [PATCH v3 3/7] Input - wacom: handle Intuos 4 BT " Benjamin Tissoires
2014-07-29 18:43 ` [PATCH v3 4/7] Input - wacom: Check for bluetooth protocol while setting OLEDs Benjamin Tissoires
2014-07-29 22:53 ` Przemo Firszt [this message]
2014-07-31 15:56 ` Ping Cheng
2014-07-31 21:14 ` Przemo Firszt
2014-07-29 18:43 ` [PATCH v3 5/7] Input - wacom: Remove passing id for wacom_set_report Benjamin Tissoires
2014-07-29 18:43 ` [PATCH v3 6/7] Input - wacom: add copyright note and bump version to 2.0 Benjamin Tissoires
2014-08-05 15:05 ` [PATCH v4] " Benjamin Tissoires
2014-07-29 18:43 ` [PATCH v3 7/7] HID: remove hid-wacom Bluetooth driver Benjamin Tissoires
2014-07-29 18:43 ` Benjamin Tissoires
2014-07-31 19:18 ` Przemo Firszt
2014-07-31 19:18 ` Przemo Firszt
2014-07-31 19:32 ` Benjamin Tissoires
2014-07-31 19:32 ` Benjamin Tissoires
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1406674412.24026.1.camel@fedora-lan \
--to=przemo@firszt.eu \
--cc=benjamin.tissoires@redhat.com \
--cc=dmitry.torokhov@gmail.com \
--cc=jkosina@suse.cz \
--cc=killertofu@gmail.com \
--cc=linux-input@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pinglinux@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.