Re: [PATCH] input : wacom - report resolution for ABS_MT events

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 28, 2011 at 10:46 AM, Dmitry Torokhov
<dmitry.torokhov@xxxxxxxxx> wrote:
> On Fri, Jan 28, 2011 at 10:23:59AM -0800, Ping Cheng wrote:
>> On Fri, Jan 28, 2011 at 9:30 AM, Henrik Rydberg <rydberg@xxxxxxxxxxx> wrote:
>> > Hi Ping,
>> >
>> >> This is mainly required by the serial pen and touch devices since
>> >> both pen and touch are on the same port. Updated the USB ones to
>> >> keep MT event definition consistent among serial and USB devices.
>> >
>> > Why is this change performed? What does the patch do? Please elaborate
>> > a little bit.
>>
>> Let's see if I can explain it clearer or not.
>>
>> We need to report resolution to userland for wacom_w8001.c. Since pen
>> and touch data are reported through the same logical port for serial
>> devices, using input_abs_set_res  for ABS_X/Y,  we can only pass the
>> resolution for pen or touch. So, I let ABS_X/Y report pen resolution
>> since most legacy ST clients process pen data over touch. However, for
>> multi-touch clients, especially for those that support gestures, touch
>> resolution is needed to calculate the physical distance between two
>> touch points. Using  ABS_MT_POSITION_X/Y does not cause confusion and
>> it is quite intuitive.
>
> We just went through the round of why we should scale events from
> different tools when they use the same event devices and I do not see
> why MT data is any different.

At the time when we worked on that, we did not consider resolution. We
only scaled the logical values.

> Devices have only one set of physical axes (MT or not)

You are right if the device only supports one type of tools. Yes, ST
or pen can go with ABS_X/Y. MT goes with MT. However, we are dealing
with a dual tool case: pen and touch on the same port. Using only one
set of axes would not be able to cover both tool events and pass the
resolution to the userland.

> so I believe
> min, max and resultion should be reported on ABS_X, Y, X, etc, or, if
> you want to have this data in ABS_MT_POSITION, it should be trhe same.

max/min is different from resolution. We can scale max/min since they
are logical data. But we can not change the device's physical size.
That's the root cause of the "stubborn" nature of resolution.

> ABS_MT_POSITION is just a vehicle of delivering multipe contacts, not a
> new device axis.

That is true If we have other means to pass the resolution on. I am
open to other solutions.

Thanks,

Ping
--
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


[Index of Archives]     [Linux Media Devel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Linux Wireless Networking]     [Linux Omap]

  Powered by Linux