Re: [PATCH 2/3] Input: synaptics - add multi-finger and semi-mt support

From: Chris Bagwell
Date: Tue Dec 21 2010 - 13:06:15 EST


On Tue, Dec 21, 2010 at 10:59 AM, Henrik Rydberg <rydberg@xxxxxxxxxxx> wrote:
>> > Reported-by: Tobyn Bertram
>> > Not-yet-signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
>> > Not-yet-signed-off-by: Chase Douglas <chase.douglas@xxxxxxxxxxxxx>
>> > Not-yet-signed-off-by: Chris Bagwell <chris@xxxxxxxxxxxxxx>
>> > Signed-off-by: Henrik Rydberg <rydberg@xxxxxxxxxxx>
>>
>> You can keep my SOB.
>
> Great, thanks.
>
>> > +static void set_slot(struct input_dev *dev, int slot, bool active, int x, int y)
>> > +{
>> > +   input_mt_slot(dev, slot);
>> > +   input_mt_report_slot_state(dev, MT_TOOL_FINGER, active);
>> > +   if (active) {
>> > +           input_report_abs(dev, ABS_MT_POSITION_X, x);
>> > +           input_report_abs(dev, ABS_MT_POSITION_Y,
>> > +                            YMAX_NOMINAL + YMIN_NOMINAL - y);
>> > +   }
>> > +}
>>
>> I take it that you feel MT_TOOL_FINGER should always be set, even if
>> it's always the same as BTN_TOOL_*? I just want to be sure this is
>> intended so we document it appropriately.
>
> Yes - the MT_TOOLs are only emitted when explicitly set in absbit, but
> the internal interface always handles it. This is actually documented
> in the code (and DocBook).

That note is good guidance for developer side. Its also worth noting
on app side that MT_TOOL_FINGER is a little special since its value is
0. In most common case, I think it will get filtered out where as
BTN_TOOL_FINGER will always be sent.

Since we can't yet query per slot ABS_MT_TOOL_TYPE, I guess apps have
to just assume its a finger unless told otherwise?

Chris
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/