Re: [RFCv2 0/8] USI stylus support series

From: Tero Kristo
Date: Tue Nov 30 2021 - 09:42:00 EST


Hi Hyungwoo,

On 30/11/2021 08:36, Hyungwoo Yang wrote:
Hi Tero,


I have a question. As you know, USI provides a room for vendors to differentiate their stylus. If a vendor wants to add reach features to differentiate their stylus. Do you think the vendor needs to come up with like HID-USI-<vendor>.c to configure the corresponding usages(vendor-defined data) ? or we should use other approach ? like register callbacks via HID-core ?

I think this depends quite a bit on what kind of features we are talking about. Looking at this series, we have:

- hid-core changes to add new event codes / add support for these

- bfp modifications to support caching and write feature for the new event codes (technically they can be written already via /dev/hidraw directly, but the interface is bit clumsy, so we improve it with BFP)

So, depending on the feature you want to add, you can take either way, but probably hacking with BPF is going to be easiest. Vendor could even write their own BPF tool. Also, please note that the location of samples/bpf/hid_usi* is not going to remain, there will most likely be an external repository where the new HID related BPF tools are going to maintained, Benjamin had some thoughts about that already.

-Tero



-Hyungwoo

On 11/26/21 5:01 AM, Tero Kristo wrote:
Hi,

This series is an update based on comments from Benjamin. What is done
is this series is to ditch the separate hid-driver for USI, and add the
generic support to core layers. This part basically brings the support
for providing USI events, without programmability (patches 1-6).

Additionally, a HID-BPF based sample is provided which can be used to
program / query pen parameters in comparison to the old driver level
implementation (patches 7-8, patch #8 is an incremental change on top of
patch #7 which just converts the fifo to socket so that the client can
also get results back from the server.)

The whole series is based on top of Benjamin's hid-bpf support work, and
I've pushed a branch at [1] with a series that works and brings in
the dependency. There are also a few separate patches in this series to
fix the problems I found from Benjamin's initial work for hid-bpf; I
wasn't able to get things working without those. The branch is also
based on top of 5.16-rc2 which required some extra changes to the
patches from Benjamin.

-Tero

[1] https://github.com/t-kristo/linux/tree/usi-5.16-rfc-v2-bpf