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-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html