Re: [PATCH v2] iio: ti_am335x_adc: Take touchscreen steps into accountfor conversion timeout

From: Jonathan Cameron
Date: Sat Sep 21 2013 - 07:25:45 EST


On 09/16/13 22:17, Matthias Kaehlcke wrote:
> The calculation of the old conversion timeout value was based on the number of
> steps used by this driver. This doesn't take into account that other steps
> can be used by the touchscreen driver. Select the timeout value based on the
> steps used by both drivers
>
> Signed-off-by: Matthias Kaehlcke <matthias@xxxxxxxxxxxx>
Looks fine to me but I'd like an Ack from someone more familiar with the device
if possible.

Also, I'm assuming this is a fix we want to push out asap but that isn't
clear in your patch title. Perhaps something like:

iio: ti_am335x_adc: Fix conversion timeout to allow for touch screen steps.
?

> ---
> drivers/iio/adc/ti_am335x_adc.c | 4 ++--
> drivers/mfd/ti_am335x_tscadc.c | 1 +
> include/linux/mfd/ti_am335x_tscadc.h | 1 +
> 3 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/adc/ti_am335x_adc.c b/drivers/iio/adc/ti_am335x_adc.c
> index 3ceac3e..75be579 100644
> --- a/drivers/iio/adc/ti_am335x_adc.c
> +++ b/drivers/iio/adc/ti_am335x_adc.c
> @@ -145,8 +145,8 @@ static int tiadc_read_raw(struct iio_dev *indio_dev,
> u32 step = UINT_MAX;
> bool found = false;
> u32 step_en;
> - unsigned long timeout = jiffies + usecs_to_jiffies
> - (IDLE_TIMEOUT * adc_dev->channels);
> + unsigned long timeout = jiffies + usecs_to_jiffies(IDLE_TIMEOUT *
> + (adc_dev->channels + adc_dev->mfd_tscadc->tsc_steps));
> step_en = get_adc_step_mask(adc_dev);
> am335x_tsc_se_set(adc_dev->mfd_tscadc, step_en);
>
> diff --git a/drivers/mfd/ti_am335x_tscadc.c b/drivers/mfd/ti_am335x_tscadc.c
> index b003a16..b2e1a1c 100644
> --- a/drivers/mfd/ti_am335x_tscadc.c
> +++ b/drivers/mfd/ti_am335x_tscadc.c
> @@ -228,6 +228,7 @@ static int ti_tscadc_probe(struct platform_device *pdev)
> /* TSC Cell */
> if (tsc_wires > 0) {
> tscadc->tsc_cell = tscadc->used_cells;
> + tscadc->tsc_steps = readouts * 2 + 2;
> cell = &tscadc->cells[tscadc->used_cells++];
> cell->name = "TI-am335x-tsc";
> cell->of_compatible = "ti,am3359-tsc";
> diff --git a/include/linux/mfd/ti_am335x_tscadc.h b/include/linux/mfd/ti_am335x_tscadc.h
> index db1791b..7e8d702 100644
> --- a/include/linux/mfd/ti_am335x_tscadc.h
> +++ b/include/linux/mfd/ti_am335x_tscadc.h
> @@ -147,6 +147,7 @@ struct ti_tscadc_dev {
> struct mfd_cell cells[TSCADC_CELLS];
> u32 reg_se_cache;
> spinlock_t reg_lock;
> + int tsc_steps;
>
> /* tsc device */
> struct titsc *tsc;
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/