Re: [PATCH 2/4] HID: wiiu-drc: Implement touch reports

From: Jonathan Neuschäfer
Date: Wed May 05 2021 - 18:44:01 EST


Hi,

some more comments below. Enjoy :)

On Mon, May 03, 2021 at 01:28:33AM +0200, Emmanuel Gil Peyrot wrote:
> There is a 100×200 inaccessible border on each side, and the Y axis is
> inverted, these are the two main quirks of this touch panel.

Does that mean 100 px borders left and right, and 200 px borders top and
bottom?

100×200 evokes the image of a rectangle of that size, which I found
confusing for a moment.

>
> I’ve been testing with weston-simple-touch mostly, but it also with the
> rest of Weston.
>
> Signed-off-by: Ash Logan <ash@xxxxxxxxxxxx>
> Signed-off-by: Emmanuel Gil Peyrot <linkmauve@xxxxxxxxxxxx>
> ---
> drivers/hid/hid-wiiu-drc.c | 83 +++++++++++++++++++++++++++++++++++---
> 1 file changed, 78 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/hid/hid-wiiu-drc.c b/drivers/hid/hid-wiiu-drc.c
> index 018cbdb53a2c..77e70827c37d 100644
> --- a/drivers/hid/hid-wiiu-drc.c
> +++ b/drivers/hid/hid-wiiu-drc.c
> @@ -49,13 +49,27 @@
>
> #define BUTTON_POWER BIT(25)
>
> +/* Touch constants */
> +/* Resolution in pixels */
> +#define RES_X 854
> +#define RES_Y 480
> +/* Display/touch size in mm */
> +#define WIDTH 138
> +#define HEIGHT 79
> +#define NUM_TOUCH_POINTS 10
> +#define MAX_TOUCH_RES (1 << 12)
> +#define TOUCH_BORDER_X 100
> +#define TOUCH_BORDER_Y 200

[...]
> + /* touch */
> + /* Average touch points for improved accuracy. */
> + x = y = 0;
> + for (i = 0; i < NUM_TOUCH_POINTS; i++) {
> + base = 36 + 4 * i;
> +
> + x += ((data[base + 1] & 0xF) << 8) | data[base];
> + y += ((data[base + 3] & 0xF) << 8) | data[base + 2];
> + }
> + x /= NUM_TOUCH_POINTS;
> + y /= NUM_TOUCH_POINTS;

Given that there are 10 possible touch points: Does the gamepad actually
support multitouch (usefully)?

If so, I think it would be better to report all touch points
individually to userspace, to allow for multitouch gestures;
userspace can still implement averaging if desired.



Thanks,
Jonathan

Attachment: signature.asc
Description: PGP signature