diff options
| -rw-r--r-- | drivers/iio/adc/stm32-dfsdm-adc.c | 4 | ||||
| -rw-r--r-- | drivers/iio/adc/stm32-dfsdm.h | 2 | 
2 files changed, 6 insertions, 0 deletions
| diff --git a/drivers/iio/adc/stm32-dfsdm-adc.c b/drivers/iio/adc/stm32-dfsdm-adc.c index 5e10fb4f3704..b7e9ef1a6eec 100644 --- a/drivers/iio/adc/stm32-dfsdm-adc.c +++ b/drivers/iio/adc/stm32-dfsdm-adc.c @@ -293,6 +293,7 @@ static int stm32_dfsdm_compute_osrs(struct stm32_dfsdm_filter *fl,  					max >>= flo->rshift;  				}  				flo->max = (s32)max; +				flo->bits = bits;  				pr_debug("%s: fast %d, fosr %d, iosr %d, res 0x%llx/%d bits, rshift %d, lshift %d\n",  					 __func__, fast, flo->fosr, flo->iosr, @@ -476,6 +477,9 @@ static int stm32_dfsdm_channels_configure(struct iio_dev *indio_dev,  	if (!flo->res)  		return -EINVAL; +	dev_dbg(&indio_dev->dev, "Samples actual resolution: %d bits", +		min(flo->bits, (u32)DFSDM_DATA_RES - 1)); +  	for_each_set_bit(bit, &adc->smask,  			 sizeof(adc->smask) * BITS_PER_BYTE) {  		chan = indio_dev->channels + bit; diff --git a/drivers/iio/adc/stm32-dfsdm.h b/drivers/iio/adc/stm32-dfsdm.h index 5dbdae4ed881..4afc1f528b78 100644 --- a/drivers/iio/adc/stm32-dfsdm.h +++ b/drivers/iio/adc/stm32-dfsdm.h @@ -249,6 +249,7 @@ enum stm32_dfsdm_sinc_order {   * @rshift: output sample right shift (hardware shift)   * @lshift: output sample left shift (software shift)   * @res: output sample resolution + * @bits: output sample resolution in bits   * @max: output sample maximum positive value   */  struct stm32_dfsdm_filter_osr { @@ -257,6 +258,7 @@ struct stm32_dfsdm_filter_osr {  	unsigned int rshift;  	unsigned int lshift;  	u64 res; +	u32 bits;  	s32 max;  }; | 
