All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thierry Reding <thierry.reding@avionic-design.de>
To: "Richard Röjfors" <richard.rojfors.ext@mocean-labs.com>
Cc: Trilok Soni <soni.trilok@gmail.com>,
	linux-input@vger.kernel.org,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-omap@vger.kernel.org, Kwangwoo Lee <kwangwoo.lee@gmail.com>
Subject: Re: [RESEND][PATCH] input: Added TSC2003
Date: Tue, 16 Jun 2009 10:16:13 +0200	[thread overview]
Message-ID: <20090616081613.GA3679@avionic-design.de> (raw)
In-Reply-To: <4A374C50.1000508@mocean-labs.com>

[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@gmail.com> 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@gmail.com>
> >> > 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-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

WARNING: multiple messages have this Message-ID (diff)
From: Thierry Reding <thierry.reding@avionic-design.de>
To: "Richard Röjfors" <richard.rojfors.ext@mocean-labs.com>
Cc: Trilok Soni <soni.trilok@gmail.com>,
	linux-input@vger.kernel.org,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>,
	linux-omap@vger.kernel.org, Kwangwoo Lee <kwangwoo.lee@gmail.com>
Subject: Re: [RESEND][PATCH] input: Added TSC2003
Date: Tue, 16 Jun 2009 10:16:13 +0200	[thread overview]
Message-ID: <20090616081613.GA3679@avionic-design.de> (raw)
In-Reply-To: <4A374C50.1000508@mocean-labs.com>

[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@gmail.com> 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@gmail.com>
> >> > 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

  reply	other threads:[~2009-06-16  8:16 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-15 15:09 [RESEND][PATCH] input: Added TSC2003 Richard Röjfors
2009-06-15 18:10 ` Trilok Soni
2009-06-15 18:10   ` Trilok Soni
2009-06-15 19:32   ` Richard Röjfors
2009-06-15 19:32     ` Richard Röjfors
2009-06-16  6:20     ` Thierry Reding
2009-06-16  6:20       ` Thierry Reding
2009-06-16  7:40       ` Richard Röjfors
2009-06-16  8:16         ` Thierry Reding [this message]
2009-06-16  8:16           ` Thierry Reding
2009-06-19  0:50           ` Kwangwoo Lee
2009-06-19  0:50             ` Kwangwoo Lee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090616081613.GA3679@avionic-design.de \
    --to=thierry.reding@avionic-design.de \
    --cc=akpm@linux-foundation.org \
    --cc=kwangwoo.lee@gmail.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=richard.rojfors.ext@mocean-labs.com \
    --cc=soni.trilok@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.