On Tue, 22 Mar 2011, Henrik Rydberg wrote: > 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. Okay, thanks a lot for the review. This can be handled later during -rc phase if needed. So please proceed with confirming with the existing devices, and meanwhile I have applied the patch. > > + > > 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, -- Jiri Kosina SUSE Labs, Novell Inc. -- 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