[Cc'ing Kwangwoo Lee] * Richard Röjfors wrote: > On 09-06-16 08.20, Thierry Reding wrote: > >>>> > >>> Meaning? I think I2C transaction can sleep. > >> Yes that's what it means, and that's bad in a HR timer callback. > > > > Note that my patch to the tsc2007 to support the tsc2003 exactly fixes this > > problem. It moves the actual I2C transfers into a workqueue, so no sleeping > > functions are called from the hrtimer callback. > > Ah good! The IRQ is disabled no sync too. > We actually don't have the possibility to implement a pen down state callback, > so I need to modify the code slightly to work even without one. (but not be > as accurate when the callback is not available) > > Your patch where it schedules work rather than calling the I2C function directly > isn't in mainline. > I saw a patch where you added the work scheduling, and a later patch where you > fixed some spinlock stuff, have you resent the patch for the work scheduling? I think there were still some issues with that patch. Kwangwoo Lee was the last to comment. This is from the previous thread: > On Tue, May 12, 2009 at 12:41 AM, Dmitry Torokhov > <dmitry.torokhov@xxxxxxxxx> wrote: > > On Mon, May 11, 2009 at 08:38:09AM -0700, Dmitry Torokhov wrote: > >> Hi, > >> On Mon, May 11, 2009 at 08:44:00PM +0900, Kwangwoo Lee wrote: > >> > From d5de0d22109de7564f9bf1df688acbe6b18f41db Mon Sep 17 00:00:00 2001 > >> > From: Kwangwoo Lee <kwangwoo.lee@xxxxxxxxx> > >> > Date: Mon, 11 May 2009 20:05:50 +0900 > >> > Subject: [PATCH 2/2] Input: tsc2007: do I2C transfers in non-interrupt > >> > context. > >> > > >> > This patch enhances pointer movements much smoother. > >> > The original patch is written by Thierry. > >> > > >> > --- a/drivers/input/touchscreen/tsc2007.c > >> > +++ b/drivers/input/touchscreen/tsc2007.c > >> > @@ -70,6 +70,7 @@ struct ts_event { > >> > struct tsc2007 { > >> > struct input_dev *input; > >> > char phys[32]; > >> > + struct work_struct work; > >> > >> Every time I see a work_struct in a driver and don't see > >> cancel_work_sync() anywhere I know there are issues... > >> > > Thanks for your comment. I also missed that thing, sorry. > > > Also, why do we need to chain irq->timer->work now? Surely we can bypass > > the timer if we have to read in process context. > > It's good point. I'll check again. > Thanks. So perhaps some more work is required to get this mainlined. Thierry -- 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