On 4/15/2015 4:53 PM, Ping Cheng wrote: > It makes probe routine easy to follow. > > Signed-off-by: Ping Cheng <pingc@xxxxxxxxx> For patches 2-4, Reviewed-by: Jason Gerecke <jason.gerecke@xxxxxxxxx> 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.h | 2 +- > drivers/hid/wacom_sys.c | 39 +-------------------------------------- > drivers/hid/wacom_wac.c | 30 +++++++++++++++++++++++++++++- > 3 files changed, 31 insertions(+), 40 deletions(-) > > diff --git a/drivers/hid/wacom.h b/drivers/hid/wacom.h > index ad7318d..0f189c2 100644 > --- a/drivers/hid/wacom.h > +++ b/drivers/hid/wacom.h > @@ -132,7 +132,7 @@ static inline void wacom_schedule_work(struct wacom_wac *wacom_wac) > extern const struct hid_device_id wacom_ids[]; > > void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len); > -void wacom_setup_device_quirks(struct wacom_features *features); > +void wacom_setup_device_quirks(struct wacom *wacom); > int wacom_setup_pentouch_input_capabilities(struct input_dev *input_dev, > struct wacom_wac *wacom_wac); > int wacom_setup_pad_input_capabilities(struct input_dev *input_dev, > diff --git a/drivers/hid/wacom_sys.c b/drivers/hid/wacom_sys.c > index 4c5d924..ca30eab 100644 > --- a/drivers/hid/wacom_sys.c > +++ b/drivers/hid/wacom_sys.c > @@ -1504,44 +1504,7 @@ static int wacom_probe(struct hid_device *hdev, > /* Retrieve the physical and logical size for touch devices */ > wacom_retrieve_hid_descriptor(hdev, features); > > - /* > - * Intuos5 has no useful data about its touch interface in its > - * HID descriptor. If this is the touch interface (PacketSize > - * of WACOM_PKGLEN_BBTOUCH3), override the table values. > - */ > - if (features->type >= INTUOS5S && features->type <= INTUOSHT) { > - if (features->pktlen == WACOM_PKGLEN_BBTOUCH3) { > - features->device_type = BTN_TOOL_FINGER; > - > - features->x_max = 4096; > - features->y_max = 4096; > - } else { > - features->device_type = BTN_TOOL_PEN; > - } > - } > - > - /* > - * Same thing for Bamboo 3rd gen. > - */ > - if ((features->type == BAMBOO_PT) && > - (features->pktlen == WACOM_PKGLEN_BBTOUCH3) && > - (features->device_type == BTN_TOOL_PEN)) { > - features->device_type = BTN_TOOL_FINGER; > - > - features->x_max = 4096; > - features->y_max = 4096; > - } > - > - /* > - * Same thing for Bamboo PAD > - */ > - if (features->type == BAMBOO_PAD) > - features->device_type = BTN_TOOL_FINGER; > - > - if (hdev->bus == BUS_BLUETOOTH) > - features->quirks |= WACOM_QUIRK_BATTERY; > - > - wacom_setup_device_quirks(features); > + wacom_setup_device_quirks(wacom); > > /* set unit to "100th of a mm" for devices not reported by HID */ > if (!features->unit) { > diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c > index 69c7df7..952ed4c 100644 > --- a/drivers/hid/wacom_wac.c > +++ b/drivers/hid/wacom_wac.c > @@ -2164,8 +2164,9 @@ static void wacom_setup_intuos(struct wacom_wac *wacom_wac) > input_set_abs_params(input_dev, ABS_THROTTLE, -1023, 1023, 0, 0); > } > > -void wacom_setup_device_quirks(struct wacom_features *features) > +void wacom_setup_device_quirks(struct wacom *wacom) > { > + struct wacom_features *features = &wacom->wacom_wac.features; > > /* touch device found but size is not defined. use default */ > if (features->device_type == BTN_TOOL_FINGER && !features->x_max) { > @@ -2173,6 +2174,33 @@ void wacom_setup_device_quirks(struct wacom_features *features) > features->y_max = 1023; > } > > + /* > + * Intuos5/Pro and Bamboo 3rd gen have no useful data about its > + * touch interface in its HID descriptor. If this is the touch > + * interface (PacketSize of WACOM_PKGLEN_BBTOUCH3), override the > + * tablet values. > + */ > + if ((features->type >= INTUOS5S && features->type <= INTUOSHT) || > + (features->type == BAMBOO_PT)) { > + if (features->pktlen == WACOM_PKGLEN_BBTOUCH3) { > + features->device_type = BTN_TOOL_FINGER; > + > + features->x_max = 4096; > + features->y_max = 4096; > + } else { > + features->device_type = BTN_TOOL_PEN; > + } > + } > + > + /* > + * Same thing for Bamboo PAD > + */ > + if (features->type == BAMBOO_PAD) > + features->device_type = BTN_TOOL_FINGER; > + > + if (wacom->hdev->bus == BUS_BLUETOOTH) > + features->quirks |= WACOM_QUIRK_BATTERY; > + > /* quirk for bamboo touch with 2 low res touches */ > if (features->type == BAMBOO_PT && > features->pktlen == WACOM_PKGLEN_BBTOUCH) { > -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html