[RFC] Touchscreen Filters in Kernel Space

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

 



Hello.

We have been working on a solution for a problem we have: lots of noise in the
touchscreen of the Openmoko Neo1973/FreeRunner.

Thanks to teamwork now we have a working solution that depends on the named
filters.

We are using a small touchscreen filtering framework in kernel
space for the S3C2410/S3C2442 touchscreen controllers. The filters can be used
by other drivers as well (we've noticed a few drivers include
averaging and some other
custom filters).

We do not want to port tslib to kernel space. The big difference is
that in tslib
you cannot give feedback to an interrupt handler. tslib does what it can, but
we have the power in kernel space to do better.

With the current implementation we try to get as many points as we need to in
order to provide a clean input event that does not need further
user-space mangling.
If we fail to get a valid point after some time we just ignore the
event. In our tests
this approach has been performing very well. Some of us think it would be nice
if a program can gather clean touchscreen data from /dev/inputX.

Here is a document that explains the filters with links to source code
that lives in our
GIT repository and some videos (the videos are not polished but they
illustrate what
we'd like to show).

https://wiki.openmoko.org/wiki/Touchscreen_Filters

We hope this work is suitable for mainline inclusion. if it is not, we
also hope to get some
feedback from the Linux input developers.

We will be waiting for your comments.

Thanks,
Nelson, on behalf of all who contributed to what is proposed in this email.
--
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