Re: [PATCH] max517.c: Fix client obtainment by using iio_dev_get_devdata()

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

 



On 01/29/11 15:36, stigge@xxxxxxxxx wrote:
> max517.c: Fix client obtainment by using iio_dev_get_devdata()
> 
> This patch uses dev_get_drvdata() and iio_dev_get_devdata() instead of
> to_i2c_client() (broken!) to obtain i2c_client data.
Slightly misleading description. The issue here is actually that the
driver is using the wrong dev.  Patch is fine though.  As a general
rule separate out typo patches from those making functional changes.

Having said that, as this driver hasn't actually merged yet I guess combining
them here is fine.

Thanks for the fix and goes to show how much we tend to miss errors in comments...
> 
> Further, some minor typo fixes are included.
> 
> Signed-off-by: Roland Stigge <stigge@xxxxxxxxx>
Acked-by: Jonathan Cameron <jic23@xxxxxxxxx>
> 
> diff --git a/drivers/staging/iio/dac/max517.c b/drivers/staging/iio/dac/max517.c
> index 4974e70..7071f71 100644
> --- a/drivers/staging/iio/dac/max517.c
> +++ b/drivers/staging/iio/dac/max517.c
> @@ -45,6 +45,7 @@ enum max517_device_ids {
>  
>  struct max517_data {
>  	struct iio_dev		*indio_dev;
> +	struct i2c_client	*client;
>  	unsigned short		vref_mv[2];
>  };
>  
> @@ -57,7 +58,9 @@ static ssize_t max517_set_value(struct device *dev,
>  				 struct device_attribute *attr,
>  				 const char *buf, size_t count, int channel)
>  {
> -	struct i2c_client *client = to_i2c_client(dev);
> +	struct iio_dev *dev_info = dev_get_drvdata(dev);
> +	struct max517_data *data = iio_dev_get_devdata(dev_info);
> +	struct i2c_client *client = data->client;
>  	u8 outbuf[4]; /* 1x or 2x command + value */
>  	int outbuf_size = 0;
>  	int res;
> @@ -147,7 +150,7 @@ static ssize_t max517_show_scale2(struct device *dev,
>  }
>  static IIO_DEVICE_ATTR(out2_scale, S_IRUGO, max517_show_scale2, NULL, 0);
>  
> -/* On MAX517 variant, we have two outputs */
> +/* On MAX517 variant, we have one output */
>  static struct attribute *max517_attributes[] = {
>  	&iio_dev_attr_out1_raw.dev_attr.attr,
>  	&iio_dev_attr_out1_scale.dev_attr.attr,
> @@ -158,7 +161,7 @@ static struct attribute_group max517_attribute_group = {
>  	.attrs = max517_attributes,
>  };
>  
> -/* On MAX518 and MAX518 variant, we have two outputs */
> +/* On MAX518 and MAX519 variant, we have two outputs */
>  static struct attribute *max518_attributes[] = {
>  	&iio_dev_attr_out1_raw.dev_attr.attr,
>  	&iio_dev_attr_out1_scale.dev_attr.attr,
> @@ -201,6 +204,8 @@ static int max517_probe(struct i2c_client *client,
>  
>  	i2c_set_clientdata(client, data);
>  
> +	data->client = client;
> +
>  	data->indio_dev = iio_allocate_device();
>  	if (data->indio_dev == NULL) {
>  		err = -ENOMEM;
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux