On Sun, Feb 10, 2019 at 12:36:44PM +0100, Bastien Nocera wrote: > Hey, > > On Sun, 2019-02-10 at 13:30 +0300, Yauhen Kharuzhy wrote: > > Some variants of Goodix touchscreen firmwares use 9-bytes finger > > report format instead of common 8-bytes format. > <snip> > > +static const struct dmi_system_id nine_bytes_report[] = { > > +#if defined(CONFIG_DMI) && defined(CONFIG_X86) > > + { > > + .ident = "Lenovo YogaBook", > > + /* YB1-X91L/F and YB1-X90L/F */ > > + .matches = { > > + DMI_MATCH(DMI_PRODUCT_NAME, "Lenovo YB1-X9") > > + } > > + }, > > +#endif > > + {} > > +}; > > Is this really the only way to know whether the report is 8 or 9 bytes? > Which Goodix model is it? Can you find additional information about the > protocol in the specifications[1] > I didn't find any way. Driver from Lenovo has 9-byte format hardcoded[1,2] and I cannot find any mention of such format in the datasheet. Maybe (VendorID + Firmware version) combination will be suitable as key for detection of this case but I think that it is almost the same as using of DMI product ID. YogaBook seems to have GT9110 chip. I can dump the config and FW vendor & version and publish them for checking soon. 1. https://github.com/jekhor/yogabook-linux-android-kernel/blob/b7aa015ab794b516da7b6cb76e5e2d427e3b8b0c/drivers/input/touchscreen/gt9xx/gt9xx.c#L912 2. https://github.com/jekhor/yogabook-linux-android-kernel/blob/b7aa015ab794b516da7b6cb76e5e2d427e3b8b0c/drivers/input/touchscreen/gt9xx/gt9xx.h#L52 -- Yauhen Kharuzhy