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

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

 



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>

> ---
>  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
> 

-- 
Regards,
Niklas Söderlund



[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