iio: potentiometer: mcp4531: use pointer to access model parameters
PATCH 1/1 iio: potentiometer: mcp4531: use pointer to access model parameters
Use const pointer to element from model configuration array rather then array index, as it will not change anyway.
--- drivers/iio/potentiometer/mcp4531.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)
drivers/iio/potentiometer/mcp4531.c +6 -7
@@ -79,7 +79,7 @@ static const struct mcp4531_cfg mcp4531_cfg[] = {struct mcp4531_data {struct i2c_client *client; -unsigned long devid; +const struct mcp4531_cfg *cfg; };#define MCP4531_CHANNEL (ch) { \
@@ -113,8 +113,8 @@ static int mcp4531_read_raw(struct iio_dev *indio_dev, *val = ret;return IIO_VAL_INT ;case IIO_CHAN_INFO_SCALE : - *val =1000 * mcp4531_cfg[data->devid].kohms; - *val2 = mcp4531_cfg[data->devid].max_pos; + *val =1000 * data->cfg->kohms; + *val2 = data->cfg->max_pos;return IIO_VAL_FRACTIONAL ; }
@@ -130,7 +130,7 @@ static int mcp4531_write_raw(struct iio_dev *indio_dev,switch (mask) {case IIO_CHAN_INFO_RAW : -if (val > mcp4531_cfg[data->devid].max_pos || val <0 ) +if (val > data->cfg->max_pos || val <0 )return -EINVAL ;break ;default :
@@ -152,7 +152,6 @@ static int mcp4531_probe(struct i2c_client *client, const struct i2c_device_id *id) {struct device *dev = &client->dev; -unsigned long devid = id->driver_data;struct mcp4531_data *data;struct iio_dev *indio_dev;
@@ -168,12 +167,12 @@ static int mcp4531_probe(struct i2c_client *client, data =iio_priv (indio_dev);i2c_set_clientdata (client, indio_dev); data->client = client; - data->devid = devid; + data->cfg = &mcp4531_cfg[id->driver_data]; indio_dev->dev.parent = dev; indio_dev->info = &mcp4531_info; indio_dev->channels = mcp4531_channels; - indio_dev->num_channels = mcp4531_cfg[devid].wipers; + indio_dev->num_channels = data->cfg->wipers; indio_dev->name = client->name;return devm_iio_device_register (dev, indio_dev);
Signature · 1 line
2.7.4
Jonathan Cameron
maintainerQuoted 4 lines · Slawomir Stepien
Use const pointer to element from model configuration array rather then array index, as it will not change anyway.
Signed-off-by Slawomir Stepien <[email protected]>
Applied to the togreg branch of iio.git - initially pushed out as testing for the autobuilders to play with it. Thanks for cleaning this up.
Jonathan
Quoted 61 lines
--- drivers/iio/potentiometer/mcp4531.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)drivers/iio/potentiometer/mcp4531.c +6
-7@@ -79,7 +79,7 @@ static const struct mcp4531_cfg mcp4531_cfg[] = {struct mcp4531_data {struct i2c_client *client; -unsigned long devid; +const struct mcp4531_cfg *cfg; };#define MCP4531_CHANNEL (ch) { \@@ -113,8 +113,8 @@ static int mcp4531_read_raw(struct iio_dev *indio_dev, *val = ret;return IIO_VAL_INT ;case IIO_CHAN_INFO_SCALE : - *val =1000 * mcp4531_cfg[data->devid].kohms; - *val2 = mcp4531_cfg[data->devid].max_pos; + *val =1000 * data->cfg->kohms; + *val2 = data->cfg->max_pos;return IIO_VAL_FRACTIONAL ; }@@ -130,7 +130,7 @@ static int mcp4531_write_raw(struct iio_dev *indio_dev,switch (mask) {case IIO_CHAN_INFO_RAW : -if (val > mcp4531_cfg[data->devid].max_pos || val <0 ) +if (val > data->cfg->max_pos || val <0 )return -EINVAL ;break ;default :@@ -152,7 +152,6 @@ static int mcp4531_probe(struct i2c_client *client, const struct i2c_device_id *id) {struct device *dev = &client->dev; -unsigned long devid = id->driver_data;struct mcp4531_data *data;struct iio_dev *indio_dev;@@ -168,12 +167,12 @@ static int mcp4531_probe(struct i2c_client *client, data =iio_priv (indio_dev);i2c_set_clientdata (client, indio_dev); data->client = client; - data->devid = devid; + data->cfg = &mcp4531_cfg[id->driver_data]; indio_dev->dev.parent = dev; indio_dev->info = &mcp4531_info; indio_dev->channels = mcp4531_channels; - indio_dev->num_channels = mcp4531_cfg[devid].wipers; + indio_dev->num_channels = data->cfg->wipers; indio_dev->name = client->name;return devm_iio_device_register (dev, indio_dev);
Quoted 7 lines · Jonathan Cameron
Quoted 4 lines · Slawomir Stepien
Use const pointer to element from model configuration array rather then array index, as it will not change anyway.
Signed-off-by Slawomir Stepien <[email protected]>Applied to the togreg branch of iio.git - initially pushed out as testing for the autobuilders to play with it. Thanks for cleaning this up.
I guess it's too late, but FWIW,
Cheers,
Peter (mcp4531 maintainer)
Jonathan Cameron
maintainerQuoted 5 lines · Peter Rosin
Quoted 4 lines · Jonathan Cameron
Quoted 3 lines · Slawomir Stepien
Use const pointer to element from model configuration array rather then array index, as it will not change anyway.
Quoted 7 lines
Quoted 3 lines
Quoted 1 line
Signed-off-by Slawomir Stepien <[email protected]>Applied to the togreg branch of iio.git - initially pushed out as testing for the autobuilders to play with it. Thanks for cleaning this up.
I guess it's too late, but FWIW,
Signed-off-by Peter Rosin <[email protected]>
I haven't yet pushed it out as togreg (rather than testing) so nope, not too late.
Added to the patch. Thanks
Jonathan
Quoted 8 lines
Cheers,
Peter (mcp4531 maintainer)
--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html