lkml.org 
[lkml]   [2013]   [Sep]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2] iio: ti_am335x_adc: Take touchscreen steps into account for conversion timeout
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@kaehlcke.net>
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;
>


\
 
 \ /
  Last update: 2013-09-21 13:41    [W:0.093 / U:0.332 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site