X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fmfd%2Fucb1x00-ts.c;h=fdbaa776f249f0eaec80a9c0fa21d11892057361;hb=444ad82bc3eaa554be40d22dc248e58aeefd54d9;hp=b023eae3c3ec30518e278ac24173ed077874e13a;hpb=1124d5ca7b7296035c1cc5fc00fdbfa44603b2ac;p=linux-2.6 diff --git a/drivers/mfd/ucb1x00-ts.c b/drivers/mfd/ucb1x00-ts.c index b023eae3c3..fdbaa776f2 100644 --- a/drivers/mfd/ucb1x00-ts.c +++ b/drivers/mfd/ucb1x00-ts.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include @@ -210,6 +209,7 @@ static int ucb1x00_thread(void *_ts) DECLARE_WAITQUEUE(wait, tsk); int valid = 0; + set_freezable(); add_wait_queue(&ts->irq_wait, &wait); while (!kthread_should_stop()) { unsigned int x, y, p; @@ -292,7 +292,7 @@ static void ucb1x00_ts_irq(int idx, void *id) static int ucb1x00_ts_open(struct input_dev *idev) { - struct ucb1x00_ts *ts = idev->private; + struct ucb1x00_ts *ts = input_get_drvdata(idev); int ret = 0; BUG_ON(ts->rtask); @@ -329,7 +329,7 @@ static int ucb1x00_ts_open(struct input_dev *idev) */ static void ucb1x00_ts_close(struct input_dev *idev) { - struct ucb1x00_ts *ts = idev->private; + struct ucb1x00_ts *ts = input_get_drvdata(idev); if (ts->rtask) kthread_stop(ts->rtask); @@ -381,7 +381,6 @@ static int ucb1x00_ts_add(struct ucb1x00_dev *dev) ts->idev = idev; ts->adcsync = adcsync ? UCB_SYNC : UCB_NOSYNC; - idev->private = ts; idev->name = "Touchscreen panel"; idev->id.product = ts->ucb->id; idev->open = ucb1x00_ts_open; @@ -392,6 +391,8 @@ static int ucb1x00_ts_add(struct ucb1x00_dev *dev) __set_bit(ABS_Y, idev->absbit); __set_bit(ABS_PRESSURE, idev->absbit); + input_set_drvdata(idev, ts); + err = input_register_device(idev); if (err) goto fail;