aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/ucb1x00-ts.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mfd/ucb1x00-ts.c')
-rw-r--r--drivers/mfd/ucb1x00-ts.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/drivers/mfd/ucb1x00-ts.c b/drivers/mfd/ucb1x00-ts.c
index cb8c264eaff0..38e815a2e871 100644
--- a/drivers/mfd/ucb1x00-ts.c
+++ b/drivers/mfd/ucb1x00-ts.c
@@ -207,16 +207,7 @@ static int ucb1x00_thread(void *_ts)
207 struct ucb1x00_ts *ts = _ts; 207 struct ucb1x00_ts *ts = _ts;
208 struct task_struct *tsk = current; 208 struct task_struct *tsk = current;
209 DECLARE_WAITQUEUE(wait, tsk); 209 DECLARE_WAITQUEUE(wait, tsk);
210 int valid; 210 int valid = 0;
211
212 /*
213 * We could run as a real-time thread. However, thus far
214 * this doesn't seem to be necessary.
215 */
216// tsk->policy = SCHED_FIFO;
217// tsk->rt_priority = 1;
218
219 valid = 0;
220 211
221 add_wait_queue(&ts->irq_wait, &wait); 212 add_wait_queue(&ts->irq_wait, &wait);
222 while (!kthread_should_stop()) { 213 while (!kthread_should_stop()) {
@@ -300,7 +291,7 @@ static void ucb1x00_ts_irq(int idx, void *id)
300 291
301static int ucb1x00_ts_open(struct input_dev *idev) 292static int ucb1x00_ts_open(struct input_dev *idev)
302{ 293{
303 struct ucb1x00_ts *ts = idev->private; 294 struct ucb1x00_ts *ts = input_get_drvdata(idev);
304 int ret = 0; 295 int ret = 0;
305 296
306 BUG_ON(ts->rtask); 297 BUG_ON(ts->rtask);
@@ -337,7 +328,7 @@ static int ucb1x00_ts_open(struct input_dev *idev)
337 */ 328 */
338static void ucb1x00_ts_close(struct input_dev *idev) 329static void ucb1x00_ts_close(struct input_dev *idev)
339{ 330{
340 struct ucb1x00_ts *ts = idev->private; 331 struct ucb1x00_ts *ts = input_get_drvdata(idev);
341 332
342 if (ts->rtask) 333 if (ts->rtask)
343 kthread_stop(ts->rtask); 334 kthread_stop(ts->rtask);
@@ -389,7 +380,6 @@ static int ucb1x00_ts_add(struct ucb1x00_dev *dev)
389 ts->idev = idev; 380 ts->idev = idev;
390 ts->adcsync = adcsync ? UCB_SYNC : UCB_NOSYNC; 381 ts->adcsync = adcsync ? UCB_SYNC : UCB_NOSYNC;
391 382
392 idev->private = ts;
393 idev->name = "Touchscreen panel"; 383 idev->name = "Touchscreen panel";
394 idev->id.product = ts->ucb->id; 384 idev->id.product = ts->ucb->id;
395 idev->open = ucb1x00_ts_open; 385 idev->open = ucb1x00_ts_open;
@@ -400,6 +390,8 @@ static int ucb1x00_ts_add(struct ucb1x00_dev *dev)
400 __set_bit(ABS_Y, idev->absbit); 390 __set_bit(ABS_Y, idev->absbit);
401 __set_bit(ABS_PRESSURE, idev->absbit); 391 __set_bit(ABS_PRESSURE, idev->absbit);
402 392
393 input_set_drvdata(idev, ts);
394
403 err = input_register_device(idev); 395 err = input_register_device(idev);
404 if (err) 396 if (err)
405 goto fail; 397 goto fail;