Re: The way of touch finger and pen stylus report

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

 



On Mon, May 8, 2017 at 4:42 AM, 劉嘉駿 <scott.liu@xxxxxxxxxx> wrote:
> Hi Benjamin,
>         I appreciate your quick response.
>         I referred to Wacom_i2c.c which is an example about how does pen stylus report.
>         My firmware are listed following hid usage as MS' specification :
>                         Barrel, Invert, Erase
>         And I think the those hid usage is mapping to below event code:
>
>         HID usage       :       linux-input EV_* code
>         Eraser          :       BTN_TOOL_RUBBER (button1 with pen contact on touch surface)
>         Invert          :       ??                                      (button1 with pen hover)
>         Barrel          :       BTN_STYLUS                      (button2)

IIRC, you should have:

Invert: BTN_TOOL_RUBBER (button 1 pressed, hover or touching)
Eraser: BTN_TOUCH (button1 with pen contact on touch surface)
Barrel: BTN_STYLUS                      (button2)

Note that as long as button 1 is pressed, your firmware should send
invert to 1 (independently of the tip touching the surface).

That's how the wacom driver works, and how hid-input should be working
(I haven't seen the eraser part in hid-input, so there might be a bug
here). hid-input handles the pressure as tip switch too, so it should
eb working fine if you report pressure.

>
>         Can you tell me what event code is mapped to hid usage "Invert"?
>
>         My device is hid-i2c and what else I need to do after I built hid-i2c module into kernel?
>         Like, do I need add my device information to whitelist.

You should only build i2c-hid and hid-multitouch. Nothing else, no whitelist.

Cheers,
Benjamin

>
>         Thanks!!
>
> BR,
> Scott
> -----Original Message-----
> From: Benjamin Tissoires [mailto:benjamin.tissoires@xxxxxxxxx]
> Sent: Friday, May 05, 2017 3:33 PM
> To: 劉嘉駿
> Cc: linux-input; Dmitry Torokhov
> Subject: Re: The way of touch finger and pen stylus report
>
> Hi Scott,
>
> On Fri, May 5, 2017 at 9:10 AM, 劉嘉駿 <scott.liu@xxxxxxxxxx> wrote:
>> I would like to write a touch driver for finger touch and pen stylus.
>>
>> They have different definition on maximum range of X, Y, Pressure,
>>
>> additionally, pen have two buttons functionality that need to be reported.
>>
>>
>>
>> So can driver register two input device to corresponding finger touch
>> and pen stylus?
>
> Yes, and that's the only way you can achieve that. Each (touch and
> pen) should have their own input node.
>
>>
>> Otherwise how single input device can map two different X, Y, Pressure
>> range.
>
> That's not possible. There use to be something roughly like that in the wacom.ko driver in the past, but this wasn't compatible with wayland. So now every driver reports 2 input nodes in such cases.
>
>>
>>
>>
>> Another thing is that pen stylus has two buttons which enumerate to
>> Eraser/Invert and Barrel as MS spec said.
>>
>> Please refer to
>> https://msdn.microsoft.com/en-us/windows/hardware/commercialize/design
>> /component-guidelines/required-hid-top-level-collections
>>
>> My question is that how do buttons represents to key bit event? Any example?
>
> HID should handle it properly. You should map it to BTN_TOOL_RUBBER in case you are not using a HID device.
> There is not much to do with this bit: if button is depressed, set the tool to BTN_TOOL_RUBBER, and when released, switch back to BTN_TOOL_PEN.
>
> Cheers,
> Benjamin
>
>>
>>
>>
>> Thanks.
>>
>>
>>
>> BR,
>>
>> Scott
>>
>>
>
--
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