On Thu, Oct 25, 2012 at 03:28:51PM +0100, Alan Cox wrote:
> From: Alan Cox <[email protected]>
> 
> tsc->polling is write only and the poll local is meaningless
> 

Alan,

I could apply the patch, but a touchscreen driver without interrupt
support is not too useful...

Todd,

Is there a more mature version of this driver?

Thanks.

> Signed-off-by: Alan Cox <[email protected]>
> ---
> 
>  drivers/input/touchscreen/tps6507x-ts.c |   25 +++++--------------------
>  1 file changed, 5 insertions(+), 20 deletions(-)
> 
> diff --git a/drivers/input/touchscreen/tps6507x-ts.c 
> b/drivers/input/touchscreen/tps6507x-ts.c
> index f7eda3d..27f95ad 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;
>        }
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-input" in
> the body of a message to [email protected]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to