All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] iio: chemical: scd4x: Add pressure compensation
@ 2023-07-05 12:20 kernel test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2023-07-05 12:20 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20230704084706.370637-1-roan@protonic.nl>
References: <20230704084706.370637-1-roan@protonic.nl>
TO: Roan van Dijk <roan@protonic.nl>
TO: jic23@kernel.org
CC: lars@metafoo.de
CC: linux-iio@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: roan@protonic.nl

Hi Roan,

kernel test robot noticed the following build warnings:

[auto build test WARNING on jic23-iio/togreg]
[also build test WARNING on linus/master v6.4 next-20230705]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Roan-van-Dijk/iio-chemical-scd4x-Add-pressure-compensation/20230704-170621
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
patch link:    https://lore.kernel.org/r/20230704084706.370637-1-roan%40protonic.nl
patch subject: [PATCH] iio: chemical: scd4x: Add pressure compensation
:::::: branch date: 27 hours ago
:::::: commit date: 27 hours ago
config: x86_64-randconfig-m001-20230705 (https://download.01.org/0day-ci/archive/20230705/202307052018.7DV5CAOH-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230705/202307052018.7DV5CAOH-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202307052018.7DV5CAOH-lkp@intel.com/

smatch warnings:
drivers/iio/chemical/scd4x.c:385 scd4x_read_raw() error: uninitialized symbol 'ret'.
drivers/iio/chemical/scd4x.c:388 scd4x_read_raw() error: uninitialized symbol 'tmp'.

vim +/ret +385 drivers/iio/chemical/scd4x.c

49d22b695cbb69 Roan van Dijk 2021-10-08  334  
49d22b695cbb69 Roan van Dijk 2021-10-08  335  static int scd4x_read_raw(struct iio_dev *indio_dev,
49d22b695cbb69 Roan van Dijk 2021-10-08  336  			struct iio_chan_spec const *chan, int *val,
49d22b695cbb69 Roan van Dijk 2021-10-08  337  			int *val2, long mask)
49d22b695cbb69 Roan van Dijk 2021-10-08  338  {
49d22b695cbb69 Roan van Dijk 2021-10-08  339  	struct scd4x_state *state = iio_priv(indio_dev);
49d22b695cbb69 Roan van Dijk 2021-10-08  340  	int ret;
49d22b695cbb69 Roan van Dijk 2021-10-08  341  	__be16 tmp;
49d22b695cbb69 Roan van Dijk 2021-10-08  342  
49d22b695cbb69 Roan van Dijk 2021-10-08  343  	switch (mask) {
49d22b695cbb69 Roan van Dijk 2021-10-08  344  	case IIO_CHAN_INFO_RAW:
49d22b695cbb69 Roan van Dijk 2021-10-08  345  		ret = iio_device_claim_direct_mode(indio_dev);
49d22b695cbb69 Roan van Dijk 2021-10-08  346  		if (ret)
49d22b695cbb69 Roan van Dijk 2021-10-08  347  			return ret;
49d22b695cbb69 Roan van Dijk 2021-10-08  348  
49d22b695cbb69 Roan van Dijk 2021-10-08  349  		mutex_lock(&state->lock);
49d22b695cbb69 Roan van Dijk 2021-10-08  350  		ret = scd4x_read_channel(state, chan->address);
49d22b695cbb69 Roan van Dijk 2021-10-08  351  		mutex_unlock(&state->lock);
49d22b695cbb69 Roan van Dijk 2021-10-08  352  
49d22b695cbb69 Roan van Dijk 2021-10-08  353  		iio_device_release_direct_mode(indio_dev);
49d22b695cbb69 Roan van Dijk 2021-10-08  354  		if (ret < 0)
49d22b695cbb69 Roan van Dijk 2021-10-08  355  			return ret;
49d22b695cbb69 Roan van Dijk 2021-10-08  356  
49d22b695cbb69 Roan van Dijk 2021-10-08  357  		*val = ret;
49d22b695cbb69 Roan van Dijk 2021-10-08  358  		return IIO_VAL_INT;
49d22b695cbb69 Roan van Dijk 2021-10-08  359  	case IIO_CHAN_INFO_SCALE:
e46e2512ac84bd Roan van Dijk 2021-10-21  360  		if (chan->type == IIO_CONCENTRATION) {
e46e2512ac84bd Roan van Dijk 2021-10-21  361  			*val = 0;
e46e2512ac84bd Roan van Dijk 2021-10-21  362  			*val2 = 100;
e46e2512ac84bd Roan van Dijk 2021-10-21  363  			return IIO_VAL_INT_PLUS_MICRO;
e46e2512ac84bd Roan van Dijk 2021-10-21  364  		} else if (chan->type == IIO_TEMP) {
49d22b695cbb69 Roan van Dijk 2021-10-08  365  			*val = 175000;
49d22b695cbb69 Roan van Dijk 2021-10-08  366  			*val2 = 65536;
49d22b695cbb69 Roan van Dijk 2021-10-08  367  			return IIO_VAL_FRACTIONAL;
49d22b695cbb69 Roan van Dijk 2021-10-08  368  		} else if (chan->type == IIO_HUMIDITYRELATIVE) {
49d22b695cbb69 Roan van Dijk 2021-10-08  369  			*val = 100000;
49d22b695cbb69 Roan van Dijk 2021-10-08  370  			*val2 = 65536;
49d22b695cbb69 Roan van Dijk 2021-10-08  371  			return IIO_VAL_FRACTIONAL;
49d22b695cbb69 Roan van Dijk 2021-10-08  372  		}
49d22b695cbb69 Roan van Dijk 2021-10-08  373  		return -EINVAL;
49d22b695cbb69 Roan van Dijk 2021-10-08  374  	case IIO_CHAN_INFO_OFFSET:
49d22b695cbb69 Roan van Dijk 2021-10-08  375  		*val = -16852;
49d22b695cbb69 Roan van Dijk 2021-10-08  376  		*val2 = 114286;
49d22b695cbb69 Roan van Dijk 2021-10-08  377  		return IIO_VAL_INT_PLUS_MICRO;
49d22b695cbb69 Roan van Dijk 2021-10-08  378  	case IIO_CHAN_INFO_CALIBBIAS:
49d22b695cbb69 Roan van Dijk 2021-10-08  379  		mutex_lock(&state->lock);
8e4a309948cffe Roan van Dijk 2023-07-04  380  		if (chan->type == IIO_TEMP)
49d22b695cbb69 Roan van Dijk 2021-10-08  381  			ret = scd4x_read(state, CMD_GET_TEMP_OFFSET, &tmp, sizeof(tmp));
8e4a309948cffe Roan van Dijk 2023-07-04  382  		else if (chan->type == IIO_PRESSURE)
8e4a309948cffe Roan van Dijk 2023-07-04  383  			ret = scd4x_read(state, CMD_GET_AMB_PRESSURE, &tmp, sizeof(tmp));
49d22b695cbb69 Roan van Dijk 2021-10-08  384  		mutex_unlock(&state->lock);
49d22b695cbb69 Roan van Dijk 2021-10-08 @385  		if (ret)
49d22b695cbb69 Roan van Dijk 2021-10-08  386  			return ret;
49d22b695cbb69 Roan van Dijk 2021-10-08  387  
49d22b695cbb69 Roan van Dijk 2021-10-08 @388  		*val = be16_to_cpu(tmp);
49d22b695cbb69 Roan van Dijk 2021-10-08  389  
49d22b695cbb69 Roan van Dijk 2021-10-08  390  		return IIO_VAL_INT;
49d22b695cbb69 Roan van Dijk 2021-10-08  391  	default:
49d22b695cbb69 Roan van Dijk 2021-10-08  392  		return -EINVAL;
49d22b695cbb69 Roan van Dijk 2021-10-08  393  	}
49d22b695cbb69 Roan van Dijk 2021-10-08  394  }
49d22b695cbb69 Roan van Dijk 2021-10-08  395  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iio: chemical: scd4x: Add pressure compensation
       [not found]   ` <e575a7b0-20a4-39c6-9fa5-87185108e683@protonic.nl>
@ 2023-07-08 14:33     ` Jonathan Cameron
  0 siblings, 0 replies; 6+ messages in thread
From: Jonathan Cameron @ 2023-07-08 14:33 UTC (permalink / raw)
  To: Roan van Dijk; +Cc: Jonathan Cameron, lars, linux-iio, linux-kernel

On Thu, 6 Jul 2023 14:27:26 +0200
Roan van Dijk <roan@protonic.nl> wrote:

> It seems I missed that one, didn't know it you can't have a channel with 
> only calibias.
> In the next version of this patch I will change it to an output channel 
> like the other cases.
> I saw the scd30 did this as well.
It's not so much that you can't have such a channel, more that we seem
to have sort of standardized on using a straight forward output for this.

Doesn't change the suggestion for this patch, but there 'might' be a usecase
for such a channel in the future..

Jonathan

> 
> Roan
> 
> On 06-07-2023 03:28, Jonathan Cameron wrote:
> > On Tue,  4 Jul 2023 10:47:06 +0200
> > Roan van Dijk<roan@protonic.nl>  wrote:
> >  
> >> This patch adds pressure compensation to the scd4x driver. The pressure can
> >> be written to the sensor in hPa. The pressure will be compensated
> >> internally by the sensor.
> >>
> >> Signed-off-by: Roan van Dijk<roan@protonic.nl>  
> > Why treat this as a channel with just calibbias?
> >  From what I can recall we've previous treated such cases as an
> > output channel with the advantage that the units are then fully
> > defined.  I may well be forgetting some argument or a case that
> > does it with calibbias though.
> >
> > Jonathan
> >
> >  
> >> ---
> >>   drivers/iio/chemical/scd4x.c | 41 +++++++++++++++++++++++++++++++++---
> >>   1 file changed, 38 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/drivers/iio/chemical/scd4x.c b/drivers/iio/chemical/scd4x.c
> >> index a4f22d926400..fe6b3f3f7186 100644
> >> --- a/drivers/iio/chemical/scd4x.c
> >> +++ b/drivers/iio/chemical/scd4x.c
> >> @@ -36,6 +36,8 @@
> >>   #define SCD4X_WRITE_BUF_SIZE 5
> >>   #define SCD4X_FRC_MIN_PPM 0
> >>   #define SCD4X_FRC_MAX_PPM 2000
> >> +#define SCD4X_AMB_PRESSURE_MIN 700
> >> +#define SCD4X_AMB_PRESSURE_MAX 1200
> >>   #define SCD4X_READY_MASK 0x01
> >>   
> >>   /*Commands SCD4X*/
> >> @@ -45,6 +47,8 @@ enum scd4x_cmd {
> >>   	CMD_STOP_MEAS           = 0x3f86,
> >>   	CMD_SET_TEMP_OFFSET     = 0x241d,
> >>   	CMD_GET_TEMP_OFFSET     = 0x2318,
> >> +	CMD_SET_AMB_PRESSURE	= 0xe000,
> >> +	CMD_GET_AMB_PRESSURE	= 0xe000,
> >>   	CMD_FRC                 = 0x362f,
> >>   	CMD_SET_ASC             = 0x2416,
> >>   	CMD_GET_ASC             = 0x2313,
> >> @@ -373,7 +377,10 @@ static int scd4x_read_raw(struct iio_dev *indio_dev,
> >>   		return IIO_VAL_INT_PLUS_MICRO;
> >>   	case IIO_CHAN_INFO_CALIBBIAS:
> >>   		mutex_lock(&state->lock);
> >> -		ret = scd4x_read(state, CMD_GET_TEMP_OFFSET, &tmp, sizeof(tmp));
> >> +		if (chan->type == IIO_TEMP)
> >> +			ret = scd4x_read(state, CMD_GET_TEMP_OFFSET, &tmp, sizeof(tmp));
> >> +		else if (chan->type == IIO_PRESSURE)
> >> +			ret = scd4x_read(state, CMD_GET_AMB_PRESSURE, &tmp, sizeof(tmp));
> >>   		mutex_unlock(&state->lock);
> >>   		if (ret)
> >>   			return ret;
> >> @@ -386,6 +393,25 @@ static int scd4x_read_raw(struct iio_dev *indio_dev,
> >>   	}
> >>   }
> >>   
> >> +static const int scd4x_pressure_calibbias_available[] = {
> >> +	SCD4X_AMB_PRESSURE_MIN, 1, SCD4X_AMB_PRESSURE_MAX,
> >> +};
> >> +
> >> +static int scd4x_read_avail(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
> >> +			    const int **vals, int *type, int *length, long mask)
> >> +{
> >> +	switch (mask) {
> >> +	case IIO_CHAN_INFO_CALIBBIAS:
> >> +		*vals = scd4x_pressure_calibbias_available;
> >> +		*type = IIO_VAL_INT;
> >> +
> >> +		return IIO_AVAIL_RANGE;
> >> +	}
> >> +
> >> +	return -EINVAL;
> >> +}
> >> +
> >> +
> >>   static int scd4x_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
> >>   				int val, int val2, long mask)
> >>   {
> >> @@ -395,9 +421,11 @@ static int scd4x_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const
> >>   	switch (mask) {
> >>   	case IIO_CHAN_INFO_CALIBBIAS:
> >>   		mutex_lock(&state->lock);
> >> -		ret = scd4x_write(state, CMD_SET_TEMP_OFFSET, val);
> >> +		if (chan->type == IIO_TEMP)
> >> +			ret = scd4x_write(state, CMD_SET_TEMP_OFFSET, val);
> >> +		else if (chan->type == IIO_PRESSURE)
> >> +			ret = scd4x_write(state, CMD_SET_AMB_PRESSURE, val);
> >>   		mutex_unlock(&state->lock);
> >> -
> >>   		return ret;
> >>   	default:
> >>   		return -EINVAL;
> >> @@ -503,9 +531,16 @@ static const struct iio_info scd4x_info = {
> >>   	.attrs = &scd4x_attr_group,
> >>   	.read_raw = scd4x_read_raw,
> >>   	.write_raw = scd4x_write_raw,
> >> +	.read_avail = scd4x_read_avail,
> >>   };
> >>   
> >>   static const struct iio_chan_spec scd4x_channels[] = {
> >> +	{
> >> +		.type = IIO_PRESSURE,
> >> +		.info_mask_separate = BIT(IIO_CHAN_INFO_CALIBBIAS),
> >> +		.info_mask_separate_available = BIT(IIO_CHAN_INFO_CALIBBIAS),
> >> +		.scan_index = -1,
> >> +	},
> >>   	{
> >>   		.type = IIO_CONCENTRATION,
> >>   		.channel2 = IIO_MOD_CO2,  


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iio: chemical: scd4x: Add pressure compensation
  2023-07-04  8:47 Roan van Dijk
  2023-07-04 11:34 ` kernel test robot
  2023-07-05 13:03 ` Dan Carpenter
@ 2023-07-06  1:28 ` Jonathan Cameron
       [not found]   ` <e575a7b0-20a4-39c6-9fa5-87185108e683@protonic.nl>
  2 siblings, 1 reply; 6+ messages in thread
From: Jonathan Cameron @ 2023-07-06  1:28 UTC (permalink / raw)
  To: Roan van Dijk; +Cc: jic23, lars, linux-iio, linux-kernel

On Tue,  4 Jul 2023 10:47:06 +0200
Roan van Dijk <roan@protonic.nl> wrote:

> This patch adds pressure compensation to the scd4x driver. The pressure can
> be written to the sensor in hPa. The pressure will be compensated
> internally by the sensor.
> 
> Signed-off-by: Roan van Dijk <roan@protonic.nl>

Why treat this as a channel with just calibbias?
From what I can recall we've previous treated such cases as an
output channel with the advantage that the units are then fully
defined.  I may well be forgetting some argument or a case that
does it with calibbias though.

Jonathan


> ---
>  drivers/iio/chemical/scd4x.c | 41 +++++++++++++++++++++++++++++++++---
>  1 file changed, 38 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/iio/chemical/scd4x.c b/drivers/iio/chemical/scd4x.c
> index a4f22d926400..fe6b3f3f7186 100644
> --- a/drivers/iio/chemical/scd4x.c
> +++ b/drivers/iio/chemical/scd4x.c
> @@ -36,6 +36,8 @@
>  #define SCD4X_WRITE_BUF_SIZE 5
>  #define SCD4X_FRC_MIN_PPM 0
>  #define SCD4X_FRC_MAX_PPM 2000
> +#define SCD4X_AMB_PRESSURE_MIN 700
> +#define SCD4X_AMB_PRESSURE_MAX 1200
>  #define SCD4X_READY_MASK 0x01
>  
>  /*Commands SCD4X*/
> @@ -45,6 +47,8 @@ enum scd4x_cmd {
>  	CMD_STOP_MEAS           = 0x3f86,
>  	CMD_SET_TEMP_OFFSET     = 0x241d,
>  	CMD_GET_TEMP_OFFSET     = 0x2318,
> +	CMD_SET_AMB_PRESSURE	= 0xe000,
> +	CMD_GET_AMB_PRESSURE	= 0xe000,
>  	CMD_FRC                 = 0x362f,
>  	CMD_SET_ASC             = 0x2416,
>  	CMD_GET_ASC             = 0x2313,
> @@ -373,7 +377,10 @@ static int scd4x_read_raw(struct iio_dev *indio_dev,
>  		return IIO_VAL_INT_PLUS_MICRO;
>  	case IIO_CHAN_INFO_CALIBBIAS:
>  		mutex_lock(&state->lock);
> -		ret = scd4x_read(state, CMD_GET_TEMP_OFFSET, &tmp, sizeof(tmp));
> +		if (chan->type == IIO_TEMP)
> +			ret = scd4x_read(state, CMD_GET_TEMP_OFFSET, &tmp, sizeof(tmp));
> +		else if (chan->type == IIO_PRESSURE)
> +			ret = scd4x_read(state, CMD_GET_AMB_PRESSURE, &tmp, sizeof(tmp));
>  		mutex_unlock(&state->lock);
>  		if (ret)
>  			return ret;
> @@ -386,6 +393,25 @@ static int scd4x_read_raw(struct iio_dev *indio_dev,
>  	}
>  }
>  
> +static const int scd4x_pressure_calibbias_available[] = {
> +	SCD4X_AMB_PRESSURE_MIN, 1, SCD4X_AMB_PRESSURE_MAX,
> +};
> +
> +static int scd4x_read_avail(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
> +			    const int **vals, int *type, int *length, long mask)
> +{
> +	switch (mask) {
> +	case IIO_CHAN_INFO_CALIBBIAS:
> +		*vals = scd4x_pressure_calibbias_available;
> +		*type = IIO_VAL_INT;
> +
> +		return IIO_AVAIL_RANGE;
> +	}
> +
> +	return -EINVAL;
> +}
> +
> +
>  static int scd4x_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
>  				int val, int val2, long mask)
>  {
> @@ -395,9 +421,11 @@ static int scd4x_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const
>  	switch (mask) {
>  	case IIO_CHAN_INFO_CALIBBIAS:
>  		mutex_lock(&state->lock);
> -		ret = scd4x_write(state, CMD_SET_TEMP_OFFSET, val);
> +		if (chan->type == IIO_TEMP)
> +			ret = scd4x_write(state, CMD_SET_TEMP_OFFSET, val);
> +		else if (chan->type == IIO_PRESSURE)
> +			ret = scd4x_write(state, CMD_SET_AMB_PRESSURE, val);
>  		mutex_unlock(&state->lock);
> -
>  		return ret;
>  	default:
>  		return -EINVAL;
> @@ -503,9 +531,16 @@ static const struct iio_info scd4x_info = {
>  	.attrs = &scd4x_attr_group,
>  	.read_raw = scd4x_read_raw,
>  	.write_raw = scd4x_write_raw,
> +	.read_avail = scd4x_read_avail,
>  };
>  
>  static const struct iio_chan_spec scd4x_channels[] = {
> +	{
> +		.type = IIO_PRESSURE,
> +		.info_mask_separate = BIT(IIO_CHAN_INFO_CALIBBIAS),
> +		.info_mask_separate_available = BIT(IIO_CHAN_INFO_CALIBBIAS),
> +		.scan_index = -1,
> +	},
>  	{
>  		.type = IIO_CONCENTRATION,
>  		.channel2 = IIO_MOD_CO2,


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iio: chemical: scd4x: Add pressure compensation
  2023-07-04  8:47 Roan van Dijk
  2023-07-04 11:34 ` kernel test robot
@ 2023-07-05 13:03 ` Dan Carpenter
  2023-07-06  1:28 ` Jonathan Cameron
  2 siblings, 0 replies; 6+ messages in thread
From: Dan Carpenter @ 2023-07-05 13:03 UTC (permalink / raw)
  To: oe-kbuild, Roan van Dijk, jic23
  Cc: lkp, oe-kbuild-all, lars, linux-iio, linux-kernel, roan

Hi Roan,

kernel test robot noticed the following build warnings:

https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Roan-van-Dijk/iio-chemical-scd4x-Add-pressure-compensation/20230704-170621
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
patch link:    https://lore.kernel.org/r/20230704084706.370637-1-roan%40protonic.nl
patch subject: [PATCH] iio: chemical: scd4x: Add pressure compensation
config: x86_64-randconfig-m001-20230705 (https://download.01.org/0day-ci/archive/20230705/202307052018.7DV5CAOH-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230705/202307052018.7DV5CAOH-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
| Closes: https://lore.kernel.org/r/202307052018.7DV5CAOH-lkp@intel.com/

smatch warnings:
drivers/iio/chemical/scd4x.c:385 scd4x_read_raw() error: uninitialized symbol 'ret'.
drivers/iio/chemical/scd4x.c:388 scd4x_read_raw() error: uninitialized symbol 'tmp'.

vim +/ret +385 drivers/iio/chemical/scd4x.c

49d22b695cbb69 Roan van Dijk 2021-10-08  335  static int scd4x_read_raw(struct iio_dev *indio_dev,
49d22b695cbb69 Roan van Dijk 2021-10-08  336  			struct iio_chan_spec const *chan, int *val,
49d22b695cbb69 Roan van Dijk 2021-10-08  337  			int *val2, long mask)
49d22b695cbb69 Roan van Dijk 2021-10-08  338  {
49d22b695cbb69 Roan van Dijk 2021-10-08  339  	struct scd4x_state *state = iio_priv(indio_dev);
49d22b695cbb69 Roan van Dijk 2021-10-08  340  	int ret;
49d22b695cbb69 Roan van Dijk 2021-10-08  341  	__be16 tmp;
49d22b695cbb69 Roan van Dijk 2021-10-08  342  
49d22b695cbb69 Roan van Dijk 2021-10-08  343  	switch (mask) {
49d22b695cbb69 Roan van Dijk 2021-10-08  344  	case IIO_CHAN_INFO_RAW:
49d22b695cbb69 Roan van Dijk 2021-10-08  345  		ret = iio_device_claim_direct_mode(indio_dev);
49d22b695cbb69 Roan van Dijk 2021-10-08  346  		if (ret)
49d22b695cbb69 Roan van Dijk 2021-10-08  347  			return ret;
49d22b695cbb69 Roan van Dijk 2021-10-08  348  
49d22b695cbb69 Roan van Dijk 2021-10-08  349  		mutex_lock(&state->lock);
49d22b695cbb69 Roan van Dijk 2021-10-08  350  		ret = scd4x_read_channel(state, chan->address);
49d22b695cbb69 Roan van Dijk 2021-10-08  351  		mutex_unlock(&state->lock);
49d22b695cbb69 Roan van Dijk 2021-10-08  352  
49d22b695cbb69 Roan van Dijk 2021-10-08  353  		iio_device_release_direct_mode(indio_dev);
49d22b695cbb69 Roan van Dijk 2021-10-08  354  		if (ret < 0)
49d22b695cbb69 Roan van Dijk 2021-10-08  355  			return ret;
49d22b695cbb69 Roan van Dijk 2021-10-08  356  
49d22b695cbb69 Roan van Dijk 2021-10-08  357  		*val = ret;
49d22b695cbb69 Roan van Dijk 2021-10-08  358  		return IIO_VAL_INT;
49d22b695cbb69 Roan van Dijk 2021-10-08  359  	case IIO_CHAN_INFO_SCALE:
e46e2512ac84bd Roan van Dijk 2021-10-21  360  		if (chan->type == IIO_CONCENTRATION) {
e46e2512ac84bd Roan van Dijk 2021-10-21  361  			*val = 0;
e46e2512ac84bd Roan van Dijk 2021-10-21  362  			*val2 = 100;
e46e2512ac84bd Roan van Dijk 2021-10-21  363  			return IIO_VAL_INT_PLUS_MICRO;
e46e2512ac84bd Roan van Dijk 2021-10-21  364  		} else if (chan->type == IIO_TEMP) {
49d22b695cbb69 Roan van Dijk 2021-10-08  365  			*val = 175000;
49d22b695cbb69 Roan van Dijk 2021-10-08  366  			*val2 = 65536;
49d22b695cbb69 Roan van Dijk 2021-10-08  367  			return IIO_VAL_FRACTIONAL;
49d22b695cbb69 Roan van Dijk 2021-10-08  368  		} else if (chan->type == IIO_HUMIDITYRELATIVE) {
49d22b695cbb69 Roan van Dijk 2021-10-08  369  			*val = 100000;
49d22b695cbb69 Roan van Dijk 2021-10-08  370  			*val2 = 65536;
49d22b695cbb69 Roan van Dijk 2021-10-08  371  			return IIO_VAL_FRACTIONAL;
49d22b695cbb69 Roan van Dijk 2021-10-08  372  		}
49d22b695cbb69 Roan van Dijk 2021-10-08  373  		return -EINVAL;
49d22b695cbb69 Roan van Dijk 2021-10-08  374  	case IIO_CHAN_INFO_OFFSET:
49d22b695cbb69 Roan van Dijk 2021-10-08  375  		*val = -16852;
49d22b695cbb69 Roan van Dijk 2021-10-08  376  		*val2 = 114286;
49d22b695cbb69 Roan van Dijk 2021-10-08  377  		return IIO_VAL_INT_PLUS_MICRO;
49d22b695cbb69 Roan van Dijk 2021-10-08  378  	case IIO_CHAN_INFO_CALIBBIAS:
49d22b695cbb69 Roan van Dijk 2021-10-08  379  		mutex_lock(&state->lock);
8e4a309948cffe Roan van Dijk 2023-07-04  380  		if (chan->type == IIO_TEMP)
49d22b695cbb69 Roan van Dijk 2021-10-08  381  			ret = scd4x_read(state, CMD_GET_TEMP_OFFSET, &tmp, sizeof(tmp));
8e4a309948cffe Roan van Dijk 2023-07-04  382  		else if (chan->type == IIO_PRESSURE)
8e4a309948cffe Roan van Dijk 2023-07-04  383  			ret = scd4x_read(state, CMD_GET_AMB_PRESSURE, &tmp, sizeof(tmp));

ret is uninitialized if type != IIO_TEMP and != IIO_PRESSURE.

49d22b695cbb69 Roan van Dijk 2021-10-08  384  		mutex_unlock(&state->lock);
49d22b695cbb69 Roan van Dijk 2021-10-08 @385  		if (ret)
49d22b695cbb69 Roan van Dijk 2021-10-08  386  			return ret;
49d22b695cbb69 Roan van Dijk 2021-10-08  387  
49d22b695cbb69 Roan van Dijk 2021-10-08 @388  		*val = be16_to_cpu(tmp);
49d22b695cbb69 Roan van Dijk 2021-10-08  389  
49d22b695cbb69 Roan van Dijk 2021-10-08  390  		return IIO_VAL_INT;
49d22b695cbb69 Roan van Dijk 2021-10-08  391  	default:
49d22b695cbb69 Roan van Dijk 2021-10-08  392  		return -EINVAL;
49d22b695cbb69 Roan van Dijk 2021-10-08  393  	}
49d22b695cbb69 Roan van Dijk 2021-10-08  394  }

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iio: chemical: scd4x: Add pressure compensation
  2023-07-04  8:47 Roan van Dijk
@ 2023-07-04 11:34 ` kernel test robot
  2023-07-05 13:03 ` Dan Carpenter
  2023-07-06  1:28 ` Jonathan Cameron
  2 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2023-07-04 11:34 UTC (permalink / raw)
  To: Roan van Dijk, jic23
  Cc: llvm, oe-kbuild-all, lars, linux-iio, linux-kernel, roan

Hi Roan,

kernel test robot noticed the following build warnings:

[auto build test WARNING on jic23-iio/togreg]
[also build test WARNING on linus/master v6.4 next-20230704]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Roan-van-Dijk/iio-chemical-scd4x-Add-pressure-compensation/20230704-170621
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
patch link:    https://lore.kernel.org/r/20230704084706.370637-1-roan%40protonic.nl
patch subject: [PATCH] iio: chemical: scd4x: Add pressure compensation
config: powerpc-randconfig-r001-20230704 (https://download.01.org/0day-ci/archive/20230704/202307041943.RlL71CKd-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230704/202307041943.RlL71CKd-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202307041943.RlL71CKd-lkp@intel.com/

All warnings (new ones prefixed by >>):

   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:677:
   arch/powerpc/include/asm/io-defs.h:47:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
      47 | DEF_PCI_AC_NORET(insl, (unsigned long p, void *b, unsigned long c),
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      48 |                  (p, b, c), pio, p)
         |                  ~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:674:3: note: expanded from macro 'DEF_PCI_AC_NORET'
     674 |                 __do_##name al;                                 \
         |                 ^~~~~~~~~~~~~~
   <scratch space>:139:1: note: expanded from here
     139 | __do_insl
         | ^
   arch/powerpc/include/asm/io.h:616:56: note: expanded from macro '__do_insl'
     616 | #define __do_insl(p, b, n)      readsl((PCI_IO_ADDR)_IO_BASE+(p), (b), (n))
         |                                        ~~~~~~~~~~~~~~~~~~~~~^
   In file included from drivers/iio/chemical/scd4x.c:18:
   In file included from include/linux/i2c.h:19:
   In file included from include/linux/regulator/consumer.h:35:
   In file included from include/linux/suspend.h:5:
   In file included from include/linux/swap.h:9:
   In file included from include/linux/memcontrol.h:13:
   In file included from include/linux/cgroup.h:26:
   In file included from include/linux/kernel_stat.h:9:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:677:
   arch/powerpc/include/asm/io-defs.h:49:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
      49 | DEF_PCI_AC_NORET(outsb, (unsigned long p, const void *b, unsigned long c),
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      50 |                  (p, b, c), pio, p)
         |                  ~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:674:3: note: expanded from macro 'DEF_PCI_AC_NORET'
     674 |                 __do_##name al;                                 \
         |                 ^~~~~~~~~~~~~~
   <scratch space>:143:1: note: expanded from here
     143 | __do_outsb
         | ^
   arch/powerpc/include/asm/io.h:617:58: note: expanded from macro '__do_outsb'
     617 | #define __do_outsb(p, b, n)     writesb((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
         |                                         ~~~~~~~~~~~~~~~~~~~~~^
   In file included from drivers/iio/chemical/scd4x.c:18:
   In file included from include/linux/i2c.h:19:
   In file included from include/linux/regulator/consumer.h:35:
   In file included from include/linux/suspend.h:5:
   In file included from include/linux/swap.h:9:
   In file included from include/linux/memcontrol.h:13:
   In file included from include/linux/cgroup.h:26:
   In file included from include/linux/kernel_stat.h:9:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:677:
   arch/powerpc/include/asm/io-defs.h:51:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
      51 | DEF_PCI_AC_NORET(outsw, (unsigned long p, const void *b, unsigned long c),
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      52 |                  (p, b, c), pio, p)
         |                  ~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:674:3: note: expanded from macro 'DEF_PCI_AC_NORET'
     674 |                 __do_##name al;                                 \
         |                 ^~~~~~~~~~~~~~
   <scratch space>:147:1: note: expanded from here
     147 | __do_outsw
         | ^
   arch/powerpc/include/asm/io.h:618:58: note: expanded from macro '__do_outsw'
     618 | #define __do_outsw(p, b, n)     writesw((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
         |                                         ~~~~~~~~~~~~~~~~~~~~~^
   In file included from drivers/iio/chemical/scd4x.c:18:
   In file included from include/linux/i2c.h:19:
   In file included from include/linux/regulator/consumer.h:35:
   In file included from include/linux/suspend.h:5:
   In file included from include/linux/swap.h:9:
   In file included from include/linux/memcontrol.h:13:
   In file included from include/linux/cgroup.h:26:
   In file included from include/linux/kernel_stat.h:9:
   In file included from include/linux/interrupt.h:11:
   In file included from include/linux/hardirq.h:11:
   In file included from arch/powerpc/include/asm/hardirq.h:6:
   In file included from include/linux/irq.h:20:
   In file included from include/linux/io.h:13:
   In file included from arch/powerpc/include/asm/io.h:677:
   arch/powerpc/include/asm/io-defs.h:53:1: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
      53 | DEF_PCI_AC_NORET(outsl, (unsigned long p, const void *b, unsigned long c),
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      54 |                  (p, b, c), pio, p)
         |                  ~~~~~~~~~~~~~~~~~~
   arch/powerpc/include/asm/io.h:674:3: note: expanded from macro 'DEF_PCI_AC_NORET'
     674 |                 __do_##name al;                                 \
         |                 ^~~~~~~~~~~~~~
   <scratch space>:151:1: note: expanded from here
     151 | __do_outsl
         | ^
   arch/powerpc/include/asm/io.h:619:58: note: expanded from macro '__do_outsl'
     619 | #define __do_outsl(p, b, n)     writesl((PCI_IO_ADDR)_IO_BASE+(p),(b),(n))
         |                                         ~~~~~~~~~~~~~~~~~~~~~^
>> drivers/iio/chemical/scd4x.c:382:8: warning: variable 'ret' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
     382 |                 else if (chan->type == IIO_PRESSURE)
         |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:55:28: note: expanded from macro 'if'
      55 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
         |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:57:30: note: expanded from macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/chemical/scd4x.c:385:7: note: uninitialized use occurs here
     385 |                 if (ret)
         |                     ^~~
   include/linux/compiler.h:55:47: note: expanded from macro 'if'
      55 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
         |                                               ^~~~
   include/linux/compiler.h:57:52: note: expanded from macro '__trace_if_var'
      57 | #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : __trace_if_value(cond))
         |                                                    ^~~~
   drivers/iio/chemical/scd4x.c:382:8: note: remove the 'if' if its condition is always true
     382 |                 else if (chan->type == IIO_PRESSURE)
         |                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     383 |                         ret = scd4x_read(state, CMD_GET_AMB_PRESSURE, &tmp, sizeof(tmp));
         | ~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:55:23: note: expanded from macro 'if'
      55 | #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
         |                       ^
   drivers/iio/chemical/scd4x.c:340:9: note: initialize the variable 'ret' to silence this warning
     340 |         int ret;
         |                ^
         |                 = 0
   7 warnings generated.


vim +382 drivers/iio/chemical/scd4x.c

   334	
   335	static int scd4x_read_raw(struct iio_dev *indio_dev,
   336				struct iio_chan_spec const *chan, int *val,
   337				int *val2, long mask)
   338	{
   339		struct scd4x_state *state = iio_priv(indio_dev);
   340		int ret;
   341		__be16 tmp;
   342	
   343		switch (mask) {
   344		case IIO_CHAN_INFO_RAW:
   345			ret = iio_device_claim_direct_mode(indio_dev);
   346			if (ret)
   347				return ret;
   348	
   349			mutex_lock(&state->lock);
   350			ret = scd4x_read_channel(state, chan->address);
   351			mutex_unlock(&state->lock);
   352	
   353			iio_device_release_direct_mode(indio_dev);
   354			if (ret < 0)
   355				return ret;
   356	
   357			*val = ret;
   358			return IIO_VAL_INT;
   359		case IIO_CHAN_INFO_SCALE:
   360			if (chan->type == IIO_CONCENTRATION) {
   361				*val = 0;
   362				*val2 = 100;
   363				return IIO_VAL_INT_PLUS_MICRO;
   364			} else if (chan->type == IIO_TEMP) {
   365				*val = 175000;
   366				*val2 = 65536;
   367				return IIO_VAL_FRACTIONAL;
   368			} else if (chan->type == IIO_HUMIDITYRELATIVE) {
   369				*val = 100000;
   370				*val2 = 65536;
   371				return IIO_VAL_FRACTIONAL;
   372			}
   373			return -EINVAL;
   374		case IIO_CHAN_INFO_OFFSET:
   375			*val = -16852;
   376			*val2 = 114286;
   377			return IIO_VAL_INT_PLUS_MICRO;
   378		case IIO_CHAN_INFO_CALIBBIAS:
   379			mutex_lock(&state->lock);
   380			if (chan->type == IIO_TEMP)
   381				ret = scd4x_read(state, CMD_GET_TEMP_OFFSET, &tmp, sizeof(tmp));
 > 382			else if (chan->type == IIO_PRESSURE)
   383				ret = scd4x_read(state, CMD_GET_AMB_PRESSURE, &tmp, sizeof(tmp));
   384			mutex_unlock(&state->lock);
   385			if (ret)
   386				return ret;
   387	
   388			*val = be16_to_cpu(tmp);
   389	
   390			return IIO_VAL_INT;
   391		default:
   392			return -EINVAL;
   393		}
   394	}
   395	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH] iio: chemical: scd4x: Add pressure compensation
@ 2023-07-04  8:47 Roan van Dijk
  2023-07-04 11:34 ` kernel test robot
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Roan van Dijk @ 2023-07-04  8:47 UTC (permalink / raw)
  To: jic23; +Cc: lars, linux-iio, linux-kernel, roan

This patch adds pressure compensation to the scd4x driver. The pressure can
be written to the sensor in hPa. The pressure will be compensated
internally by the sensor.

Signed-off-by: Roan van Dijk <roan@protonic.nl>
---
 drivers/iio/chemical/scd4x.c | 41 +++++++++++++++++++++++++++++++++---
 1 file changed, 38 insertions(+), 3 deletions(-)

diff --git a/drivers/iio/chemical/scd4x.c b/drivers/iio/chemical/scd4x.c
index a4f22d926400..fe6b3f3f7186 100644
--- a/drivers/iio/chemical/scd4x.c
+++ b/drivers/iio/chemical/scd4x.c
@@ -36,6 +36,8 @@
 #define SCD4X_WRITE_BUF_SIZE 5
 #define SCD4X_FRC_MIN_PPM 0
 #define SCD4X_FRC_MAX_PPM 2000
+#define SCD4X_AMB_PRESSURE_MIN 700
+#define SCD4X_AMB_PRESSURE_MAX 1200
 #define SCD4X_READY_MASK 0x01
 
 /*Commands SCD4X*/
@@ -45,6 +47,8 @@ enum scd4x_cmd {
 	CMD_STOP_MEAS           = 0x3f86,
 	CMD_SET_TEMP_OFFSET     = 0x241d,
 	CMD_GET_TEMP_OFFSET     = 0x2318,
+	CMD_SET_AMB_PRESSURE	= 0xe000,
+	CMD_GET_AMB_PRESSURE	= 0xe000,
 	CMD_FRC                 = 0x362f,
 	CMD_SET_ASC             = 0x2416,
 	CMD_GET_ASC             = 0x2313,
@@ -373,7 +377,10 @@ static int scd4x_read_raw(struct iio_dev *indio_dev,
 		return IIO_VAL_INT_PLUS_MICRO;
 	case IIO_CHAN_INFO_CALIBBIAS:
 		mutex_lock(&state->lock);
-		ret = scd4x_read(state, CMD_GET_TEMP_OFFSET, &tmp, sizeof(tmp));
+		if (chan->type == IIO_TEMP)
+			ret = scd4x_read(state, CMD_GET_TEMP_OFFSET, &tmp, sizeof(tmp));
+		else if (chan->type == IIO_PRESSURE)
+			ret = scd4x_read(state, CMD_GET_AMB_PRESSURE, &tmp, sizeof(tmp));
 		mutex_unlock(&state->lock);
 		if (ret)
 			return ret;
@@ -386,6 +393,25 @@ static int scd4x_read_raw(struct iio_dev *indio_dev,
 	}
 }
 
+static const int scd4x_pressure_calibbias_available[] = {
+	SCD4X_AMB_PRESSURE_MIN, 1, SCD4X_AMB_PRESSURE_MAX,
+};
+
+static int scd4x_read_avail(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
+			    const int **vals, int *type, int *length, long mask)
+{
+	switch (mask) {
+	case IIO_CHAN_INFO_CALIBBIAS:
+		*vals = scd4x_pressure_calibbias_available;
+		*type = IIO_VAL_INT;
+
+		return IIO_AVAIL_RANGE;
+	}
+
+	return -EINVAL;
+}
+
+
 static int scd4x_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const *chan,
 				int val, int val2, long mask)
 {
@@ -395,9 +421,11 @@ static int scd4x_write_raw(struct iio_dev *indio_dev, struct iio_chan_spec const
 	switch (mask) {
 	case IIO_CHAN_INFO_CALIBBIAS:
 		mutex_lock(&state->lock);
-		ret = scd4x_write(state, CMD_SET_TEMP_OFFSET, val);
+		if (chan->type == IIO_TEMP)
+			ret = scd4x_write(state, CMD_SET_TEMP_OFFSET, val);
+		else if (chan->type == IIO_PRESSURE)
+			ret = scd4x_write(state, CMD_SET_AMB_PRESSURE, val);
 		mutex_unlock(&state->lock);
-
 		return ret;
 	default:
 		return -EINVAL;
@@ -503,9 +531,16 @@ static const struct iio_info scd4x_info = {
 	.attrs = &scd4x_attr_group,
 	.read_raw = scd4x_read_raw,
 	.write_raw = scd4x_write_raw,
+	.read_avail = scd4x_read_avail,
 };
 
 static const struct iio_chan_spec scd4x_channels[] = {
+	{
+		.type = IIO_PRESSURE,
+		.info_mask_separate = BIT(IIO_CHAN_INFO_CALIBBIAS),
+		.info_mask_separate_available = BIT(IIO_CHAN_INFO_CALIBBIAS),
+		.scan_index = -1,
+	},
 	{
 		.type = IIO_CONCENTRATION,
 		.channel2 = IIO_MOD_CO2,
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-07-08 14:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-07-05 12:20 [PATCH] iio: chemical: scd4x: Add pressure compensation kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2023-07-04  8:47 Roan van Dijk
2023-07-04 11:34 ` kernel test robot
2023-07-05 13:03 ` Dan Carpenter
2023-07-06  1:28 ` Jonathan Cameron
     [not found]   ` <e575a7b0-20a4-39c6-9fa5-87185108e683@protonic.nl>
2023-07-08 14:33     ` Jonathan Cameron

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.