Message ID | 20161006212231.31440-14-killertofu@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Oct 06 2016 or thereabouts, Jason Gerecke wrote: > In the following "Add support for sensor offsets" patch we'll need access > to the 'features' struct within 'wacom_map_usage', so update the function > signature and calls to include a reference to the HID device so this can > be done. > > Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com> > --- > drivers/hid/wacom_wac.c | 53 ++++++++++++++++++++++++++----------------------- > 1 file changed, 28 insertions(+), 25 deletions(-) > > diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c > index f2aadc4..8f493cc 100644 > --- a/drivers/hid/wacom_wac.c > +++ b/drivers/hid/wacom_wac.c > @@ -1465,9 +1465,12 @@ static int wacom_equivalent_usage(int usage) > return usage; > } > > -static void wacom_map_usage(struct input_dev *input, struct hid_usage *usage, > - struct hid_field *field, __u8 type, __u16 code, int fuzz) > +static void wacom_map_usage(struct input_dev *input, struct hid_device *hdev, > + struct hid_usage *usage, struct hid_field *field, __u8 type, > + __u16 code, int fuzz) > { > + struct wacom *wacom = hid_get_drvdata(hdev); This might not be entirely relevant, but given the inputs are created through wacom_allocate_input() and struct wacom * being stored in the driver data, a simple call to input_get_drvdata(input) would provide the struct wacom. Then from here, the hid_device can be retrieved from struct wacom directly. So I don't know if it's worth resending the series just for this and if this has caveats... (my rev-by still applies). Cheers, Benjamin > + struct wacom_wac *wacom_wac = &wacom->wacom_wac; > int fmin = field->logical_minimum; > int fmax = field->logical_maximum; > unsigned int equivalent_usage = wacom_equivalent_usage(usage->hid); > @@ -1508,53 +1511,53 @@ static void wacom_wac_pen_usage_mapping(struct hid_device *hdev, > > switch (equivalent_usage) { > case HID_GD_X: > - wacom_map_usage(input, usage, field, EV_ABS, ABS_X, 4); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_X, 4); > break; > case HID_GD_Y: > - wacom_map_usage(input, usage, field, EV_ABS, ABS_Y, 4); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_Y, 4); > break; > case WACOM_HID_WD_DISTANCE: > case HID_GD_Z: > - wacom_map_usage(input, usage, field, EV_ABS, ABS_DISTANCE, 0); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_DISTANCE, 0); > break; > case HID_DG_TIPPRESSURE: > - wacom_map_usage(input, usage, field, EV_ABS, ABS_PRESSURE, 0); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_PRESSURE, 0); > break; > case HID_DG_INRANGE: > - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOOL_PEN, 0); > + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOOL_PEN, 0); > break; > case HID_DG_INVERT: > - wacom_map_usage(input, usage, field, EV_KEY, > + wacom_map_usage(input, hdev, usage, field, EV_KEY, > BTN_TOOL_RUBBER, 0); > break; > case HID_DG_TILT_X: > - wacom_map_usage(input, usage, field, EV_ABS, ABS_TILT_X, 0); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_TILT_X, 0); > break; > case HID_DG_TILT_Y: > - wacom_map_usage(input, usage, field, EV_ABS, ABS_TILT_Y, 0); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_TILT_Y, 0); > break; > case HID_DG_TWIST: > - wacom_map_usage(input, usage, field, EV_ABS, ABS_Z, 0); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_Z, 0); > break; > case HID_DG_ERASER: > case HID_DG_TIPSWITCH: > - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOUCH, 0); > + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOUCH, 0); > break; > case HID_DG_BARRELSWITCH: > - wacom_map_usage(input, usage, field, EV_KEY, BTN_STYLUS, 0); > + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_STYLUS, 0); > break; > case HID_DG_BARRELSWITCH2: > - wacom_map_usage(input, usage, field, EV_KEY, BTN_STYLUS2, 0); > + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_STYLUS2, 0); > break; > case HID_DG_TOOLSERIALNUMBER: > - wacom_map_usage(input, usage, field, EV_MSC, MSC_SERIAL, 0); > + wacom_map_usage(input, hdev, usage, field, EV_MSC, MSC_SERIAL, 0); > break; > case WACOM_HID_WD_SENSE: > features->quirks |= WACOM_QUIRK_SENSE; > - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOOL_PEN, 0); > + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOOL_PEN, 0); > break; > case WACOM_HID_WD_SERIALHI: > - wacom_map_usage(input, usage, field, EV_ABS, ABS_MISC, 0); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_MISC, 0); > set_bit(EV_KEY, input->evbit); > input_set_capability(input, EV_KEY, BTN_TOOL_PEN); > input_set_capability(input, EV_KEY, BTN_TOOL_RUBBER); > @@ -1565,7 +1568,7 @@ static void wacom_wac_pen_usage_mapping(struct hid_device *hdev, > input_set_capability(input, EV_KEY, BTN_TOOL_LENS); > break; > case WACOM_HID_WD_FINGERWHEEL: > - wacom_map_usage(input, usage, field, EV_ABS, ABS_WHEEL, 0); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_WHEEL, 0); > break; > } > } > @@ -1722,24 +1725,24 @@ static void wacom_wac_finger_usage_mapping(struct hid_device *hdev, > case HID_GD_X: > features->last_slot_field = usage->hid; > if (touch_max == 1) > - wacom_map_usage(input, usage, field, EV_ABS, ABS_X, 4); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_X, 4); > else > - wacom_map_usage(input, usage, field, EV_ABS, > + wacom_map_usage(input, hdev, usage, field, EV_ABS, > ABS_MT_POSITION_X, 4); > break; > case HID_GD_Y: > features->last_slot_field = usage->hid; > if (touch_max == 1) > - wacom_map_usage(input, usage, field, EV_ABS, ABS_Y, 4); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_Y, 4); > else > - wacom_map_usage(input, usage, field, EV_ABS, > + wacom_map_usage(input, hdev, usage, field, EV_ABS, > ABS_MT_POSITION_Y, 4); > break; > case HID_DG_WIDTH: > case HID_DG_HEIGHT: > features->last_slot_field = usage->hid; > - wacom_map_usage(input, usage, field, EV_ABS, ABS_MT_TOUCH_MAJOR, 0); > - wacom_map_usage(input, usage, field, EV_ABS, ABS_MT_TOUCH_MINOR, 0); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_MT_TOUCH_MAJOR, 0); > + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_MT_TOUCH_MINOR, 0); > input_set_abs_params(input, ABS_MT_ORIENTATION, 0, 1, 0, 0); > break; > case HID_DG_CONTACTID: > @@ -1753,7 +1756,7 @@ static void wacom_wac_finger_usage_mapping(struct hid_device *hdev, > break; > case HID_DG_TIPSWITCH: > features->last_slot_field = usage->hid; > - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOUCH, 0); > + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOUCH, 0); > break; > case HID_DG_CONTACTCOUNT: > wacom_wac->hid_data.cc_report = field->report->id; > -- > 2.10.0 > -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 10/07/2016 08:46 AM, Benjamin Tissoires wrote: > On Oct 06 2016 or thereabouts, Jason Gerecke wrote: >> In the following "Add support for sensor offsets" patch we'll need access >> to the 'features' struct within 'wacom_map_usage', so update the function >> signature and calls to include a reference to the HID device so this can >> be done. >> >> Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com> >> --- >> drivers/hid/wacom_wac.c | 53 ++++++++++++++++++++++++++----------------------- >> 1 file changed, 28 insertions(+), 25 deletions(-) >> >> diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c >> index f2aadc4..8f493cc 100644 >> --- a/drivers/hid/wacom_wac.c >> +++ b/drivers/hid/wacom_wac.c >> @@ -1465,9 +1465,12 @@ static int wacom_equivalent_usage(int usage) >> return usage; >> } >> >> -static void wacom_map_usage(struct input_dev *input, struct hid_usage *usage, >> - struct hid_field *field, __u8 type, __u16 code, int fuzz) >> +static void wacom_map_usage(struct input_dev *input, struct hid_device *hdev, >> + struct hid_usage *usage, struct hid_field *field, __u8 type, >> + __u16 code, int fuzz) >> { >> + struct wacom *wacom = hid_get_drvdata(hdev); > > This might not be entirely relevant, but given the inputs are created > through wacom_allocate_input() and struct wacom * being stored in the > driver data, a simple call to input_get_drvdata(input) would provide the > struct wacom. Then from here, the hid_device can be retrieved from > struct wacom directly. > > So I don't know if it's worth resending the series just for this and if > this has caveats... (my rev-by still applies). > > Cheers, > Benjamin > I'd be happy with dropping this patch and using input_get_drvdata instead. I hadn't remotely considered that we could access the wacom structure from there as well. As noisy as it might be, I'll send a V2 with your rev-by and the change. 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.... >> + struct wacom_wac *wacom_wac = &wacom->wacom_wac; >> int fmin = field->logical_minimum; >> int fmax = field->logical_maximum; >> unsigned int equivalent_usage = wacom_equivalent_usage(usage->hid); >> @@ -1508,53 +1511,53 @@ static void wacom_wac_pen_usage_mapping(struct hid_device *hdev, >> >> switch (equivalent_usage) { >> case HID_GD_X: >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_X, 4); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_X, 4); >> break; >> case HID_GD_Y: >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_Y, 4); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_Y, 4); >> break; >> case WACOM_HID_WD_DISTANCE: >> case HID_GD_Z: >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_DISTANCE, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_DISTANCE, 0); >> break; >> case HID_DG_TIPPRESSURE: >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_PRESSURE, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_PRESSURE, 0); >> break; >> case HID_DG_INRANGE: >> - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOOL_PEN, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOOL_PEN, 0); >> break; >> case HID_DG_INVERT: >> - wacom_map_usage(input, usage, field, EV_KEY, >> + wacom_map_usage(input, hdev, usage, field, EV_KEY, >> BTN_TOOL_RUBBER, 0); >> break; >> case HID_DG_TILT_X: >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_TILT_X, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_TILT_X, 0); >> break; >> case HID_DG_TILT_Y: >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_TILT_Y, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_TILT_Y, 0); >> break; >> case HID_DG_TWIST: >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_Z, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_Z, 0); >> break; >> case HID_DG_ERASER: >> case HID_DG_TIPSWITCH: >> - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOUCH, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOUCH, 0); >> break; >> case HID_DG_BARRELSWITCH: >> - wacom_map_usage(input, usage, field, EV_KEY, BTN_STYLUS, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_STYLUS, 0); >> break; >> case HID_DG_BARRELSWITCH2: >> - wacom_map_usage(input, usage, field, EV_KEY, BTN_STYLUS2, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_STYLUS2, 0); >> break; >> case HID_DG_TOOLSERIALNUMBER: >> - wacom_map_usage(input, usage, field, EV_MSC, MSC_SERIAL, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_MSC, MSC_SERIAL, 0); >> break; >> case WACOM_HID_WD_SENSE: >> features->quirks |= WACOM_QUIRK_SENSE; >> - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOOL_PEN, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOOL_PEN, 0); >> break; >> case WACOM_HID_WD_SERIALHI: >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_MISC, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_MISC, 0); >> set_bit(EV_KEY, input->evbit); >> input_set_capability(input, EV_KEY, BTN_TOOL_PEN); >> input_set_capability(input, EV_KEY, BTN_TOOL_RUBBER); >> @@ -1565,7 +1568,7 @@ static void wacom_wac_pen_usage_mapping(struct hid_device *hdev, >> input_set_capability(input, EV_KEY, BTN_TOOL_LENS); >> break; >> case WACOM_HID_WD_FINGERWHEEL: >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_WHEEL, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_WHEEL, 0); >> break; >> } >> } >> @@ -1722,24 +1725,24 @@ static void wacom_wac_finger_usage_mapping(struct hid_device *hdev, >> case HID_GD_X: >> features->last_slot_field = usage->hid; >> if (touch_max == 1) >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_X, 4); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_X, 4); >> else >> - wacom_map_usage(input, usage, field, EV_ABS, >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, >> ABS_MT_POSITION_X, 4); >> break; >> case HID_GD_Y: >> features->last_slot_field = usage->hid; >> if (touch_max == 1) >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_Y, 4); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_Y, 4); >> else >> - wacom_map_usage(input, usage, field, EV_ABS, >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, >> ABS_MT_POSITION_Y, 4); >> break; >> case HID_DG_WIDTH: >> case HID_DG_HEIGHT: >> features->last_slot_field = usage->hid; >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_MT_TOUCH_MAJOR, 0); >> - wacom_map_usage(input, usage, field, EV_ABS, ABS_MT_TOUCH_MINOR, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_MT_TOUCH_MAJOR, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_MT_TOUCH_MINOR, 0); >> input_set_abs_params(input, ABS_MT_ORIENTATION, 0, 1, 0, 0); >> break; >> case HID_DG_CONTACTID: >> @@ -1753,7 +1756,7 @@ static void wacom_wac_finger_usage_mapping(struct hid_device *hdev, >> break; >> case HID_DG_TIPSWITCH: >> features->last_slot_field = usage->hid; >> - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOUCH, 0); >> + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOUCH, 0); >> break; >> case HID_DG_CONTACTCOUNT: >> wacom_wac->hid_data.cc_report = field->report->id; >> -- >> 2.10.0 >> -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c index f2aadc4..8f493cc 100644 --- a/drivers/hid/wacom_wac.c +++ b/drivers/hid/wacom_wac.c @@ -1465,9 +1465,12 @@ static int wacom_equivalent_usage(int usage) return usage; } -static void wacom_map_usage(struct input_dev *input, struct hid_usage *usage, - struct hid_field *field, __u8 type, __u16 code, int fuzz) +static void wacom_map_usage(struct input_dev *input, struct hid_device *hdev, + struct hid_usage *usage, struct hid_field *field, __u8 type, + __u16 code, int fuzz) { + struct wacom *wacom = hid_get_drvdata(hdev); + struct wacom_wac *wacom_wac = &wacom->wacom_wac; int fmin = field->logical_minimum; int fmax = field->logical_maximum; unsigned int equivalent_usage = wacom_equivalent_usage(usage->hid); @@ -1508,53 +1511,53 @@ static void wacom_wac_pen_usage_mapping(struct hid_device *hdev, switch (equivalent_usage) { case HID_GD_X: - wacom_map_usage(input, usage, field, EV_ABS, ABS_X, 4); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_X, 4); break; case HID_GD_Y: - wacom_map_usage(input, usage, field, EV_ABS, ABS_Y, 4); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_Y, 4); break; case WACOM_HID_WD_DISTANCE: case HID_GD_Z: - wacom_map_usage(input, usage, field, EV_ABS, ABS_DISTANCE, 0); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_DISTANCE, 0); break; case HID_DG_TIPPRESSURE: - wacom_map_usage(input, usage, field, EV_ABS, ABS_PRESSURE, 0); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_PRESSURE, 0); break; case HID_DG_INRANGE: - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOOL_PEN, 0); + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOOL_PEN, 0); break; case HID_DG_INVERT: - wacom_map_usage(input, usage, field, EV_KEY, + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOOL_RUBBER, 0); break; case HID_DG_TILT_X: - wacom_map_usage(input, usage, field, EV_ABS, ABS_TILT_X, 0); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_TILT_X, 0); break; case HID_DG_TILT_Y: - wacom_map_usage(input, usage, field, EV_ABS, ABS_TILT_Y, 0); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_TILT_Y, 0); break; case HID_DG_TWIST: - wacom_map_usage(input, usage, field, EV_ABS, ABS_Z, 0); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_Z, 0); break; case HID_DG_ERASER: case HID_DG_TIPSWITCH: - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOUCH, 0); + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOUCH, 0); break; case HID_DG_BARRELSWITCH: - wacom_map_usage(input, usage, field, EV_KEY, BTN_STYLUS, 0); + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_STYLUS, 0); break; case HID_DG_BARRELSWITCH2: - wacom_map_usage(input, usage, field, EV_KEY, BTN_STYLUS2, 0); + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_STYLUS2, 0); break; case HID_DG_TOOLSERIALNUMBER: - wacom_map_usage(input, usage, field, EV_MSC, MSC_SERIAL, 0); + wacom_map_usage(input, hdev, usage, field, EV_MSC, MSC_SERIAL, 0); break; case WACOM_HID_WD_SENSE: features->quirks |= WACOM_QUIRK_SENSE; - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOOL_PEN, 0); + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOOL_PEN, 0); break; case WACOM_HID_WD_SERIALHI: - wacom_map_usage(input, usage, field, EV_ABS, ABS_MISC, 0); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_MISC, 0); set_bit(EV_KEY, input->evbit); input_set_capability(input, EV_KEY, BTN_TOOL_PEN); input_set_capability(input, EV_KEY, BTN_TOOL_RUBBER); @@ -1565,7 +1568,7 @@ static void wacom_wac_pen_usage_mapping(struct hid_device *hdev, input_set_capability(input, EV_KEY, BTN_TOOL_LENS); break; case WACOM_HID_WD_FINGERWHEEL: - wacom_map_usage(input, usage, field, EV_ABS, ABS_WHEEL, 0); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_WHEEL, 0); break; } } @@ -1722,24 +1725,24 @@ static void wacom_wac_finger_usage_mapping(struct hid_device *hdev, case HID_GD_X: features->last_slot_field = usage->hid; if (touch_max == 1) - wacom_map_usage(input, usage, field, EV_ABS, ABS_X, 4); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_X, 4); else - wacom_map_usage(input, usage, field, EV_ABS, + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_MT_POSITION_X, 4); break; case HID_GD_Y: features->last_slot_field = usage->hid; if (touch_max == 1) - wacom_map_usage(input, usage, field, EV_ABS, ABS_Y, 4); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_Y, 4); else - wacom_map_usage(input, usage, field, EV_ABS, + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_MT_POSITION_Y, 4); break; case HID_DG_WIDTH: case HID_DG_HEIGHT: features->last_slot_field = usage->hid; - wacom_map_usage(input, usage, field, EV_ABS, ABS_MT_TOUCH_MAJOR, 0); - wacom_map_usage(input, usage, field, EV_ABS, ABS_MT_TOUCH_MINOR, 0); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_MT_TOUCH_MAJOR, 0); + wacom_map_usage(input, hdev, usage, field, EV_ABS, ABS_MT_TOUCH_MINOR, 0); input_set_abs_params(input, ABS_MT_ORIENTATION, 0, 1, 0, 0); break; case HID_DG_CONTACTID: @@ -1753,7 +1756,7 @@ static void wacom_wac_finger_usage_mapping(struct hid_device *hdev, break; case HID_DG_TIPSWITCH: features->last_slot_field = usage->hid; - wacom_map_usage(input, usage, field, EV_KEY, BTN_TOUCH, 0); + wacom_map_usage(input, hdev, usage, field, EV_KEY, BTN_TOUCH, 0); break; case HID_DG_CONTACTCOUNT: wacom_wac->hid_data.cc_report = field->report->id;
In the following "Add support for sensor offsets" patch we'll need access to the 'features' struct within 'wacom_map_usage', so update the function signature and calls to include a reference to the HID device so this can be done. Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com> --- drivers/hid/wacom_wac.c | 53 ++++++++++++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 25 deletions(-)