Hi Thierry, On Mon, May 4, 2009 at 11:57 PM, Thierry Reding <thierry.reding@xxxxxxxxxxxxxxxxx> wrote: > * Trilok Soni wrote: >> Hi Thierry, >> >> On Mon, May 4, 2009 at 5:07 PM, Thierry Reding >> <thierry.reding@xxxxxxxxxxxxxxxxx> wrote: >> > * Kwangwoo Lee wrote: >> >> Hi Thierry and Trilok, >> >> >> >> On Wed, Apr 29, 2009 at 10:23 PM, Trilok Soni <soni.trilok@xxxxxxxxx> wrote: >> >> > Hi Thierry, >> >> > >> >> > I have added linux-omap community. How different is this chip from >> >> > tsc2007. It looks to me that this chip is not much different from >> >> > tsc2007 (this is just quick look at the driver). If they >> >> > are similar please consider using i2c_device_id feature in tsc2007 to >> >> > accommodate this chip. >> >> >> >> I agree with the Trilok's opinion. >> > [snip] >> > >> > I only noticed the tsc2007 driver some time ago, when the tsc2003 was already >> > finished (it's actually pretty old, I just never got around to submitting >> > it). However I never got the tsc2007 to work on my platform because it uses >> > sleeping functions inside the timer handler, which results in an oops right >> > after the first touchscreen interrupt. >> > >> > I guess I could try and fix the tsc2007 properly instead of having a second, >> > pretty similar driver in the tree. >> > >> >> This could be because of improper locking? If you share a crash we can >> have look at it. > > Attached is a patch that fixes things for me. The problem was that the I2C > transfers were done in interrupt context which fails for the controller I use > (PXA270). The attached patch uses a struct work_struct to schedule the I2C > transfers so they are executed in non-interrupt context. Thanks for the patch. It looks good. :) The code in the patch is already merged in the main kernel tree. @@ -235,7 +245,7 @@ static irqreturn_t tsc2007_irq(int irq, void *handle) spin_lock_irqsave(&ts->lock, flags); if (likely(ts->get_pendown_state())) { - disable_irq(ts->irq); + disable_irq_nosync(ts->irq); hrtimer_start(&ts->timer, ktime_set(0, TS_POLL_DELAY), HRTIMER_MODE_REL); } Thanks. > I've tested the patch on a minimal system with tslib and it work fine with > ts_calibrate and friends. > > Thierry -- Kwangwoo Lee <kwangwoo.lee@xxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html