On 08/08/16 12:05, Vignesh R wrote: > Now that open delay and sample delay for each channel is configurable > via DT, the default IDLE_TIMEOUT value is not enough as this is > calculated based on hardcoded macros. This results in driver returning > EBUSY sometimes. Fix this by increasing the timeout > value based on maximum value possible to open delay and sample delays > for each channel. > > Signed-off-by: Vignesh R <vigneshr@xxxxxx> As with patch 1 could you provide a fixes tag as well highlighting the patch that introduced the issue. I'm thinking you are referring to: iio: adc: ti_am335x_adc: make sample delay, open delay, averaging DT parameters 5dc11e810676ec4a5acb4423ccd33314bf74f4e54 > --- > drivers/iio/adc/ti_am335x_adc.c | 2 +- > include/linux/mfd/ti_am335x_tscadc.h | 8 ++++---- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/iio/adc/ti_am335x_adc.c b/drivers/iio/adc/ti_am335x_adc.c > index bed9977a1863..c3cfacca2541 100644 > --- a/drivers/iio/adc/ti_am335x_adc.c > +++ b/drivers/iio/adc/ti_am335x_adc.c > @@ -381,7 +381,7 @@ static int tiadc_read_raw(struct iio_dev *indio_dev, > > am335x_tsc_se_set_once(adc_dev->mfd_tscadc, step_en); > > - timeout = jiffies + usecs_to_jiffies > + timeout = jiffies + msecs_to_jiffies > (IDLE_TIMEOUT * adc_dev->channels); > /* Wait for Fifo threshold interrupt */ > while (1) { > diff --git a/include/linux/mfd/ti_am335x_tscadc.h b/include/linux/mfd/ti_am335x_tscadc.h > index 2567a87872b0..7f55b8b41032 100644 > --- a/include/linux/mfd/ti_am335x_tscadc.h > +++ b/include/linux/mfd/ti_am335x_tscadc.h > @@ -138,16 +138,16 @@ > /* > * time in us for processing a single channel, calculated as follows: > * > - * num cycles = open delay + (sample delay + conv time) * averaging > + * max num cycles = open delay + (sample delay + conv time) * averaging > * > - * num cycles: 152 + (1 + 13) * 16 = 376 > + * max num cycles: 262143 + (255 + 13) * 16 = 266431 > * > * clock frequency: 26MHz / 8 = 3.25MHz > * clock period: 1 / 3.25MHz = 308ns > * > - * processing time: 376 * 308ns = 116us > + * max processing time: 266431 * 308ns = 83ms(approx) > */ > -#define IDLE_TIMEOUT 116 /* microsec */ > +#define IDLE_TIMEOUT 83 /* milliseconds */ > > #define TSCADC_CELLS 2 > > -- 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