diff options
Diffstat (limited to 'drivers/input')
-rw-r--r-- | drivers/input/touchscreen/tps6507x-ts.c | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/drivers/input/touchscreen/tps6507x-ts.c b/drivers/input/touchscreen/tps6507x-ts.c index 820a066c3b8a..1fb397c42aa3 100644 --- a/drivers/input/touchscreen/tps6507x-ts.c +++ b/drivers/input/touchscreen/tps6507x-ts.c @@ -42,7 +42,6 @@ struct tps6507x_ts { struct device *dev; char phys[32]; struct delayed_work work; - unsigned polling; /* polling is active */ struct ts_event tc; struct tps6507x_dev *mfd; u16 model; @@ -168,7 +167,6 @@ static void tps6507x_ts_handler(struct work_struct *work) struct input_dev *input_dev = tsc->input_dev; int pendown; int schd; - int poll = 0; s32 ret; ret = tps6507x_adc_conversion(tsc, TPS6507X_TSCMODE_PRESSURE, @@ -209,24 +207,14 @@ static void tps6507x_ts_handler(struct work_struct *work) input_report_abs(input_dev, ABS_PRESSURE, tsc->tc.pressure); input_sync(input_dev); tsc->pendown = 1; - poll = 1; } done: /* always poll if not using interrupts */ - poll = 1; - - if (poll) { - schd = schedule_delayed_work(&tsc->work, - msecs_to_jiffies(tsc->poll_period)); - if (schd) - tsc->polling = 1; - else { - tsc->polling = 0; - dev_err(tsc->dev, "re-schedule failed"); - } - } else - tsc->polling = 0; + schd = schedule_delayed_work(&tsc->work, + msecs_to_jiffies(tsc->poll_period)); + if (!schd) + dev_err(tsc->dev, "re-schedule failed"); ret = tps6507x_adc_standby(tsc); } @@ -324,10 +312,7 @@ static int tps6507x_ts_probe(struct platform_device *pdev) schd = schedule_delayed_work(&tsc->work, msecs_to_jiffies(tsc->poll_period)); - if (schd) - tsc->polling = 1; - else { - tsc->polling = 0; + if (!schd) { dev_err(tsc->dev, "schedule failed"); goto err2; } |