Re: [PATCH] input: egalax_ts: optmize driver for more fluency touch feelling

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

 



Hi Dimitry,

2011/12/12 Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
>
> Hi Zhang,
>
> On Wed, Dec 07, 2011 at 05:10:02PM +0800, Zhang Jiejing wrote:
> > egalax_ts use threaded_irq to report touch event, it will wake up the
> > irq thread and stop the thread irq after process one touch event, so
> > even user touch the screen very fast, the fastest event report speed
> > is depends on the scheduler, so the event reported is a uniform speed.
>
> I am not sure what you mean by "the event reported is a uniform speed"
> but since I2C operations generally sleep you are at the mercy of
> scheduler anyways. But since IRQ thread is a real-time one it should get
> scheduled immediately.

I'm using 2.6.38 kernel and Android 4.0 and with a Freescale ARM
A9(1.0GHz) Soc doing this test, but in my test, if I sweep on the
touch screen with very fast speed, my UI can't move as fast as my
finger,
I first suspect our GPU not powerful to drive UI, but after test with
USB mouse doing same sweep operation, the UI was moving quite fast.

So I made this change, after made this change, I can't feed any lay
between finger and the UI animation.
I think the threaded_irq not quite real time.

I checked kernel/irq/handle.c file,
I found in handle_IRQ_event() functin, it will use
wake_up_processs(action->thread);  and the thread was created by
kthread_create() in __setup_irq() function.

I think in this implementation, it will be not so realtime, it depends
on schedule time.
>
>
> >
> > This patch will let thread irq check the gpio's status, if the gpio
> > is down, means still have more events, it will not exit the irq handler
> > and continue process another new event, it can improve user experience.
>
> Does it really or it is your opinion that it would?
>
As I mentioned in above, I got this result with a real machine and
environment  test.
>
> Also, your change means that the driver can not be stopped/unloaded as
> long as user had finger on the touchpad. This would need to be corrected
> (but first you need to prove that the change is actually needed).
>


I need test in the driver unload case and suspend case.

Thanks for you advance.

BR,
Jiejing

>
> Thanks.
>
> --
> Dmitry
> --
> 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
--
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