Re: [PATCH] iio: adc: max9611: Make enum relations more future proof

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 14 Nov 2019 08:28:03 +0100
Niklas Söderlund <niklas.soderlund@xxxxxxxxxxxx> wrote:

> Hi Geert,
> 
> Looks good.
> 
> On 2019-11-13 11:09:38 +0100, Geert Uytterhoeven wrote:
> > The relations between enum values and array indices values are currently
> > not enforced by the code, which makes them fragile w.r.t. future
> > changes.
> > 
> > Fix this by:
> >   1. Using designated array initializers, to make sure array indices and
> >      enums values match,
> >   2. Linking max9611_csa_gain enum values to the corresponding
> >      max9611_conf_ids enum values, as the latter is cast to the former
> >      in max9611_read_csa_voltage().
> > 
> > No change in generated code.
> > 
> > Signed-off-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>  
> 
> Reviewed-by: Niklas Söderlund <niklas.soderlund+renesas@xxxxxxxxxxxx>

Looks good to me, but I'd like to leave a little longer for any
feedback from Jacopo as author of the driver.

Thanks,

Jonathan
> 
> > ---
> >  drivers/iio/adc/max9611.c | 36 +++++++++++-------------------------
> >  1 file changed, 11 insertions(+), 25 deletions(-)
> > 
> > diff --git a/drivers/iio/adc/max9611.c b/drivers/iio/adc/max9611.c
> > index b0755f25356d700d..cb306ff1a5d6a0b2 100644
> > --- a/drivers/iio/adc/max9611.c
> > +++ b/drivers/iio/adc/max9611.c
> > @@ -114,22 +114,17 @@ enum max9611_conf_ids {
> >   *		      where data shall be read from
> >   */
> >  static const unsigned int max9611_mux_conf[][2] = {
> > -	/* CONF_SENSE_1x */
> > -	{ MAX9611_MUX_SENSE_1x, MAX9611_REG_CSA_DATA },
> > -	/* CONF_SENSE_4x */
> > -	{ MAX9611_MUX_SENSE_4x, MAX9611_REG_CSA_DATA },
> > -	/* CONF_SENSE_8x */
> > -	{ MAX9611_MUX_SENSE_8x, MAX9611_REG_CSA_DATA },
> > -	/* CONF_IN_VOLT */
> > -	{ MAX9611_INPUT_VOLT, MAX9611_REG_RS_DATA },
> > -	/* CONF_TEMP */
> > -	{ MAX9611_MUX_TEMP, MAX9611_REG_TEMP_DATA },
> > +	[CONF_SENSE_1x]	= { MAX9611_MUX_SENSE_1x, MAX9611_REG_CSA_DATA },
> > +	[CONF_SENSE_4x]	= { MAX9611_MUX_SENSE_4x, MAX9611_REG_CSA_DATA },
> > +	[CONF_SENSE_8x]	= { MAX9611_MUX_SENSE_8x, MAX9611_REG_CSA_DATA },
> > +	[CONF_IN_VOLT]	= { MAX9611_INPUT_VOLT, MAX9611_REG_RS_DATA },
> > +	[CONF_TEMP]	= { MAX9611_MUX_TEMP, MAX9611_REG_TEMP_DATA },
> >  };
> >  
> >  enum max9611_csa_gain {
> > -	CSA_GAIN_1x,
> > -	CSA_GAIN_4x,
> > -	CSA_GAIN_8x,
> > +	CSA_GAIN_1x = CONF_SENSE_1x,
> > +	CSA_GAIN_4x = CONF_SENSE_4x,
> > +	CSA_GAIN_8x = CONF_SENSE_8x,
> >  };
> >  
> >  enum max9611_csa_gain_params {
> > @@ -147,18 +142,9 @@ enum max9611_csa_gain_params {
> >   * value; use this structure to retrieve the correct LSB and offset values.
> >   */
> >  static const unsigned int max9611_gain_conf[][2] = {
> > -	{ /* [0] CSA_GAIN_1x */
> > -		MAX9611_CSA_1X_LSB_nV,
> > -		MAX9611_CSA_1X_OFFS_RAW,
> > -	},
> > -	{ /* [1] CSA_GAIN_4x */
> > -		MAX9611_CSA_4X_LSB_nV,
> > -		MAX9611_CSA_4X_OFFS_RAW,
> > -	},
> > -	{ /* [2] CSA_GAIN_8x */
> > -		MAX9611_CSA_8X_LSB_nV,
> > -		MAX9611_CSA_8X_OFFS_RAW,
> > -	},
> > +	[CSA_GAIN_1x] = { MAX9611_CSA_1X_LSB_nV, MAX9611_CSA_1X_OFFS_RAW, },
> > +	[CSA_GAIN_4x] = { MAX9611_CSA_4X_LSB_nV, MAX9611_CSA_4X_OFFS_RAW, },
> > +	[CSA_GAIN_8x] = { MAX9611_CSA_8X_LSB_nV, MAX9611_CSA_8X_OFFS_RAW, },
> >  };
> >  
> >  enum max9611_chan_addrs {
> > -- 
> > 2.17.1
> >   
> 





[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux