On Tue, Jan 29, 2019 at 3:02 AM Benjamin Tissoires <benjamin.tissoires@xxxxxxxxxx> wrote: > > On Thu, Jan 24, 2019 at 8:10 PM Jason Gerecke <killertofu@xxxxxxxxx> wrote: > > > > The 'wacom_hid_usage_quirk' function is the intended home for fixing > > up descriptors that are buggy or that don't quite fit the mold. Commit > > 578325120e was supposed to move all of these quirks but it missed the > > code to handle fixup the serial number usages for AES pens. Lets move > > this code out of 'wacom_wac_pen_usage_mapping' where it was previously > > lurking and put it into the same place as the others. > > > > Signed-off-by: Jason Gerecke <jason.gerecke@xxxxxxxxx> > > --- > > Thanks, applied to for-5.1/wacom. > > I realized one thing today: your "From" address (gmail) doesn't match > your SoB address (wacom). > I still applied the patch because we used to not care about that for > your patches, but this raises a useless checkpatch.pl warning (and I > am scrutinizing any incoming patches with checkpatch.pl starting from > now). > > Can you fix your pipeline? > > Cheers, > Benjamin > Thanks, and I'll see what I can do :) Jason --- Now instead of four in the eights place / you’ve got three, ‘Cause you added one / (That is to say, eight) to the two, / But you can’t take seven from three, / So you look at the sixty-fours.... > > drivers/hid/wacom_sys.c | 32 ++++++++++++++++++++++++++++++++ > > drivers/hid/wacom_wac.c | 21 --------------------- > > 2 files changed, 32 insertions(+), 21 deletions(-) > > > > diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c > > index 0bdd85d486fe..a8633b1437b2 100644 > > --- a/drivers/hid/wacom_sys.c > > +++ b/drivers/hid/wacom_sys.c > > @@ -252,6 +252,38 @@ static void wacom_hid_usage_quirk(struct hid_device *hdev, > > } > > } > > > > + /* > > + * Wacom's AES devices use different vendor-defined usages to > > + * report serial number information compared to their branded > > + * hardware. The usages are also sometimes ill-defined and do > > + * not have the correct logical min/max values set. Lets patch > > + * the descriptor to use the branded usage convention and fix > > + * the errors. > > + */ > > + if (usage->hid == WACOM_HID_WT_SERIALNUMBER && > > + field->report_size == 16 && > > + field->index + 2 < field->report->maxfield) { > > + struct hid_field *a = field->report->field[field->index + 1]; > > + struct hid_field *b = field->report->field[field->index + 2]; > > + > > + if (a->maxusage > 0 && > > + a->usage[0].hid == HID_DG_TOOLSERIALNUMBER && > > + a->report_size == 32 && > > + b->maxusage > 0 && > > + b->usage[0].hid == 0xFF000000 && > > + b->report_size == 8) { > > + features->quirks |= WACOM_QUIRK_AESPEN; > > + usage->hid = WACOM_HID_WD_TOOLTYPE; > > + field->logical_minimum = S16_MIN; > > + field->logical_maximum = S16_MAX; > > + a->logical_minimum = S32_MIN; > > + a->logical_maximum = S32_MAX; > > + b->usage[0].hid = WACOM_HID_WD_SERIALHI; > > + b->logical_minimum = 0; > > + b->logical_maximum = U8_MAX; > > + } > > + } > > + > > /* 2nd-generation Intuos Pro Large has incorrect Y maximum */ > > if (hdev->vendor == USB_VENDOR_ID_WACOM && > > hdev->product == 0x0358 && > > diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c > > index 5dd3a8245f0f..72477e872324 100644 > > --- a/drivers/hid/wacom_wac.c > > +++ b/drivers/hid/wacom_wac.c > > @@ -2159,27 +2159,6 @@ static void wacom_wac_pen_usage_mapping(struct hid_device *hdev, > > case HID_DG_TOOLSERIALNUMBER: > > features->quirks |= WACOM_QUIRK_TOOLSERIAL; > > wacom_map_usage(input, usage, field, EV_MSC, MSC_SERIAL, 0); > > - > > - /* Adjust AES usages to match modern convention */ > > - if (usage->hid == WACOM_HID_WT_SERIALNUMBER && field->report_size == 16) { > > - if (field->index + 2 < field->report->maxfield) { > > - struct hid_field *a = field->report->field[field->index + 1]; > > - struct hid_field *b = field->report->field[field->index + 2]; > > - > > - if (a->maxusage > 0 && a->usage[0].hid == HID_DG_TOOLSERIALNUMBER && a->report_size == 32 && > > - b->maxusage > 0 && b->usage[0].hid == 0xFF000000 && b->report_size == 8) { > > - features->quirks |= WACOM_QUIRK_AESPEN; > > - usage->hid = WACOM_HID_WD_TOOLTYPE; > > - field->logical_minimum = S16_MIN; > > - field->logical_maximum = S16_MAX; > > - a->logical_minimum = S32_MIN; > > - a->logical_maximum = S32_MAX; > > - b->usage[0].hid = WACOM_HID_WD_SERIALHI; > > - b->logical_minimum = 0; > > - b->logical_maximum = U8_MAX; > > - } > > - } > > - } > > break; > > case WACOM_HID_WD_SENSE: > > features->quirks |= WACOM_QUIRK_SENSE; > > -- > > 2.20.1 > >