]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r337287:
authorwulf <wulf@FreeBSD.org>
Fri, 9 Nov 2018 21:26:26 +0000 (21:26 +0000)
committerwulf <wulf@FreeBSD.org>
Fri, 9 Nov 2018 21:26:26 +0000 (21:26 +0000)
commit260328ef4daed793b253796d0d2c99f37e81f025
tree5610eeb6f9b2cbae40fe6364df3d2fa8fe136191
parent85af634482611eaa6097edbf76e142de0408ca6a
MFC r337287:

wmt(4): Read 'Contact count maximum' usage value from feature report

rather than from HID descriptor to match Microsoft documentation.
Fall back to HID descriptor provided value if 'Get Report' request failed.

MFC r337288:

wmt(4): Read Microsoft's "Touch Hardware Quality Assurance" certificate blob

if present to enable some devices like WaveShare touchscreens. Unlike
Windows we discard content of the blob. We try mimic Windows driver
behaviour from the USB device point of view.

Submitted by: glebius (initial version)

MFC r337289:

wmt(4): Use internal function to calculate input report size

Usbhid's hid_report_size() calculates integral size of all reports of given
kind found in the HID descriptor rather then exact size of report with given
ID as its userland counterpart does. As all input data processed by the
driver is located within the same report, calculate required driver's buffer
size with userland version, imported in one of the previous commits.
This allows us to skip zeroing of buffer on processing of each report.

While here do some minor refactoring.

MFC r338458:

wmt(4): Fix regression introduced in r337289

r337289 has a side effect of reducing usb frame 0 buffer size down to
touch report size. That broke some devices e.g. "Raydium Touch System"
which are capable of generating non-touch frames of bigger length.
Fix it with enlarging frame 0 buffer up to internal wmt(4) buffer size.

Reported by: Roberto Fernandez Cueto <roberfern@gmail.com>
Tested by: Roberto Fernandez Cueto <roberfern@gmail.com>
Differential Revision: https://reviews.freebsd.org/D16772
sys/dev/usb/input/wmt.c