On Tue, Mar 22, 2011 at 05:34:01PM +0100, Benjamin Tissoires wrote: > This patch merges the hid-3m-pct driver into hid-multitouch. > To keep devices working the same way they used to with hid-3m-pct, > we need to add two signal/noise ratios for width and height. > We also need to work on width/height to send proper > ABS_MT_ORIENTATION flag. > > Importing 3M into hid-multitouch also solved the bug in which > devices handling width and height in their report descriptors > did not show ABS_MT_TOUCH_MAJOR and ABS_MT_TOUCH_MINOR. > > Signed-off-by: Benjamin Tissoires <benjamin.tissoires@xxxxxxx> > Reviewed-by: Stéphane Chatty <chatty@xxxxxxx> > --- [...] > Henrik, do I still have your Reviewed-and-tested-by ? Yep, looks good. One more thing, though: > @@ -332,11 +351,18 @@ static void mt_emit_event(struct mt_device *td, struct input_dev *input) > input_mt_report_slot_state(input, MT_TOOL_FINGER, > s->touch_state); > if (s->touch_state) { > + /* this finger is on the screen */ > + int wide = (s->w > s->h); > + /* divided by two to match visual scale of touch */ > + int major = max(s->w, s->h) >> 1; > + int minor = min(s->w, s->h) >> 1; This scaling is most likely not correct for all devices. I went through a set of devices some time ago, running mtview on all of them, visually inspecting the touch size. Some were low by a factor of two, some were high by a factor of two. A confirmation that the other devices supported by this driver seem right would be good. If not, a quirk should probably be added here. > + > input_event(input, EV_ABS, ABS_MT_POSITION_X, s->x); > input_event(input, EV_ABS, ABS_MT_POSITION_Y, s->y); > + input_event(input, EV_ABS, ABS_MT_ORIENTATION, wide); > input_event(input, EV_ABS, ABS_MT_PRESSURE, s->p); > - input_event(input, EV_ABS, ABS_MT_TOUCH_MAJOR, s->w); > - input_event(input, EV_ABS, ABS_MT_TOUCH_MINOR, s->h); > + input_event(input, EV_ABS, ABS_MT_TOUCH_MAJOR, major); > + input_event(input, EV_ABS, ABS_MT_TOUCH_MINOR, minor); > } > s->seen_in_this_frame = false; Thanks, Henrik -- 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