On Thu, 14 Jul 2011 10:24:02 +0100 Jonathan Cameron wrote:

> On 07/13/11 16:49, Randy Dunlap wrote:
> > 
> > static ssize_t ade7753_read_frequency(struct device *dev,
> >             struct device_attribute *attr,
> >             char *buf)
> > {
> >     int ret, len = 0;
> >     u8 t;
> >     int sps;
> >     ret = ade7753_spi_read_reg_8(dev, ADE7753_MODE, &t);
> >     if (ret)
> >             return ret;
> > 
> >     t = (t >> 11) & 0x3; /// HUH?
> > 
> Excellent question. Honestly I've passed that line by several times but 
> always whilst
> working on something else and had no real idea of what it is actually meant 
> to be
> doing.  Clearly it's garbage.
> 
> So time for some datasheet trawling.  The mode register is 16 bit, so I'm 
> guessing that
> should have been u16 t; and ade7753_spi_read_reg_16.  I think this is a cut 
> and paste
> bug form the ade7754 driver where the equivalent is an 8 bit register.  Patch 
> below.
> 
> Michael, do you have access to test hardware for this one?  I might do a more 
> general
> tidy up of that driver whilst I'm here. Something fun to do before coffee ;)
> 
> Thanks,
> 
> Jonathan
> 
> Subject: [PATCH] staging:iio:meter:ade7753 should be 16 bit read not 8 bit 
> for mode register.
> 
> Build tested only.
> 
> Signed-off-by: Jonathan Cameron <[email protected]>
> Reported-by: Randy Dunlap <[email protected]>

Acked-by: Randy Dunlap <[email protected]>

Thanks.

> 
> ---
>  drivers/staging/iio/meter/ade7753.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/staging/iio/meter/ade7753.c 
> b/drivers/staging/iio/meter/ade7753.c
> index 59f47fd..482e16a 100644
> --- a/drivers/staging/iio/meter/ade7753.c
> +++ b/drivers/staging/iio/meter/ade7753.c
> @@ -398,9 +398,9 @@ static ssize_t ade7753_read_frequency(struct device *dev,
>               char *buf)
>  {
>       int ret, len = 0;
> -     u8 t;
> +     u16 t;
>       int sps;
> -     ret = ade7753_spi_read_reg_8(dev, ADE7753_MODE, &t);
> +     ret = ade7753_spi_read_reg_16(dev, ADE7753_MODE, &t);
>       if (ret)
>               return ret;
>  
> -- 


---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to