* [PATCH] iio: accel: sca3000: Use sign_extend32() instead of opencoding sign extension.
@ 2021-06-03 16:47 Jonathan Cameron
2021-07-18 15:16 ` Jonathan Cameron
2021-10-03 18:03 ` Lars-Peter Clausen
0 siblings, 2 replies; 5+ messages in thread
From: Jonathan Cameron @ 2021-06-03 16:47 UTC (permalink / raw)
To: linux-iio; +Cc: Jonathan Cameron, Dan Carpenter
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Whilst nice to get rid of this non obvious code, this also clears a
static checker warning:
drivers/iio/accel/sca3000.c:734 sca3000_read_raw()
warn: no-op. '((*val) << 19) >> 19'
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
---
drivers/iio/accel/sca3000.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
index cb753a43533c..0692ccb80293 100644
--- a/drivers/iio/accel/sca3000.c
+++ b/drivers/iio/accel/sca3000.c
@@ -731,8 +731,7 @@ static int sca3000_read_raw(struct iio_dev *indio_dev,
return ret;
}
*val = (be16_to_cpup((__be16 *)st->rx) >> 3) & 0x1FFF;
- *val = ((*val) << (sizeof(*val) * 8 - 13)) >>
- (sizeof(*val) * 8 - 13);
+ *val = sign_extend32(*val, 13);
} else {
/* get the temperature when available */
ret = sca3000_read_data_short(st,
--
2.31.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] iio: accel: sca3000: Use sign_extend32() instead of opencoding sign extension.
2021-06-03 16:47 [PATCH] iio: accel: sca3000: Use sign_extend32() instead of opencoding sign extension Jonathan Cameron
@ 2021-07-18 15:16 ` Jonathan Cameron
2021-10-03 16:06 ` Jonathan Cameron
2021-10-03 18:03 ` Lars-Peter Clausen
1 sibling, 1 reply; 5+ messages in thread
From: Jonathan Cameron @ 2021-07-18 15:16 UTC (permalink / raw)
To: linux-iio; +Cc: Jonathan Cameron, Dan Carpenter
On Thu, 3 Jun 2021 17:47:29 +0100
Jonathan Cameron <jic23@kernel.org> wrote:
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
> Whilst nice to get rid of this non obvious code, this also clears a
> static checker warning:
>
> drivers/iio/accel/sca3000.c:734 sca3000_read_raw()
> warn: no-op. '((*val) << 19) >> 19'
>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
If someone could give this a quick sanity check that would be great.
Thanks,
Jonathan
> ---
> drivers/iio/accel/sca3000.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> index cb753a43533c..0692ccb80293 100644
> --- a/drivers/iio/accel/sca3000.c
> +++ b/drivers/iio/accel/sca3000.c
> @@ -731,8 +731,7 @@ static int sca3000_read_raw(struct iio_dev *indio_dev,
> return ret;
> }
> *val = (be16_to_cpup((__be16 *)st->rx) >> 3) & 0x1FFF;
> - *val = ((*val) << (sizeof(*val) * 8 - 13)) >>
> - (sizeof(*val) * 8 - 13);
> + *val = sign_extend32(*val, 13);
> } else {
> /* get the temperature when available */
> ret = sca3000_read_data_short(st,
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] iio: accel: sca3000: Use sign_extend32() instead of opencoding sign extension.
2021-07-18 15:16 ` Jonathan Cameron
@ 2021-10-03 16:06 ` Jonathan Cameron
0 siblings, 0 replies; 5+ messages in thread
From: Jonathan Cameron @ 2021-10-03 16:06 UTC (permalink / raw)
To: linux-iio; +Cc: Jonathan Cameron, Dan Carpenter
On Sun, 18 Jul 2021 16:16:12 +0100
Jonathan Cameron <jic23@kernel.org> wrote:
> On Thu, 3 Jun 2021 17:47:29 +0100
> Jonathan Cameron <jic23@kernel.org> wrote:
>
> > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> >
> > Whilst nice to get rid of this non obvious code, this also clears a
> > static checker warning:
> >
> > drivers/iio/accel/sca3000.c:734 sca3000_read_raw()
> > warn: no-op. '((*val) << 19) >> 19'
> >
> > Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
> If someone could give this a quick sanity check that would be great.
>
This one is still in the queue because I really don't like applying
my own patches without anyone having sanity checked them...
So if anyone has time to for a quick look that would be great.
> Thanks,
>
> Jonathan
>
> > ---
> > drivers/iio/accel/sca3000.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> > index cb753a43533c..0692ccb80293 100644
> > --- a/drivers/iio/accel/sca3000.c
> > +++ b/drivers/iio/accel/sca3000.c
> > @@ -731,8 +731,7 @@ static int sca3000_read_raw(struct iio_dev *indio_dev,
> > return ret;
> > }
> > *val = (be16_to_cpup((__be16 *)st->rx) >> 3) & 0x1FFF;
> > - *val = ((*val) << (sizeof(*val) * 8 - 13)) >>
> > - (sizeof(*val) * 8 - 13);
> > + *val = sign_extend32(*val, 13);
> > } else {
> > /* get the temperature when available */
> > ret = sca3000_read_data_short(st,
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] iio: accel: sca3000: Use sign_extend32() instead of opencoding sign extension.
2021-06-03 16:47 [PATCH] iio: accel: sca3000: Use sign_extend32() instead of opencoding sign extension Jonathan Cameron
2021-07-18 15:16 ` Jonathan Cameron
@ 2021-10-03 18:03 ` Lars-Peter Clausen
2021-10-10 16:29 ` Jonathan Cameron
1 sibling, 1 reply; 5+ messages in thread
From: Lars-Peter Clausen @ 2021-10-03 18:03 UTC (permalink / raw)
To: Jonathan Cameron, linux-iio; +Cc: Jonathan Cameron, Dan Carpenter
On 6/3/21 6:47 PM, Jonathan Cameron wrote:
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
> Whilst nice to get rid of this non obvious code, this also clears a
> static checker warning:
>
> drivers/iio/accel/sca3000.c:734 sca3000_read_raw()
> warn: no-op. '((*val) << 19) >> 19'
>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> ---
> drivers/iio/accel/sca3000.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> index cb753a43533c..0692ccb80293 100644
> --- a/drivers/iio/accel/sca3000.c
> +++ b/drivers/iio/accel/sca3000.c
> @@ -731,8 +731,7 @@ static int sca3000_read_raw(struct iio_dev *indio_dev,
> return ret;
> }
> *val = (be16_to_cpup((__be16 *)st->rx) >> 3) & 0x1FFF;
> - *val = ((*val) << (sizeof(*val) * 8 - 13)) >>
> - (sizeof(*val) * 8 - 13);
> + *val = sign_extend32(*val, 13);
Should be 12 I think. The index is 0 based.
> } else {
> /* get the temperature when available */
> ret = sca3000_read_data_short(st,
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] iio: accel: sca3000: Use sign_extend32() instead of opencoding sign extension.
2021-10-03 18:03 ` Lars-Peter Clausen
@ 2021-10-10 16:29 ` Jonathan Cameron
0 siblings, 0 replies; 5+ messages in thread
From: Jonathan Cameron @ 2021-10-10 16:29 UTC (permalink / raw)
To: Lars-Peter Clausen; +Cc: linux-iio, Jonathan Cameron, Dan Carpenter
On Sun, 3 Oct 2021 20:03:10 +0200
Lars-Peter Clausen <lars@metafoo.de> wrote:
> On 6/3/21 6:47 PM, Jonathan Cameron wrote:
> > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> >
> > Whilst nice to get rid of this non obvious code, this also clears a
> > static checker warning:
> >
> > drivers/iio/accel/sca3000.c:734 sca3000_read_raw()
> > warn: no-op. '((*val) << 19) >> 19'
> >
> > Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > ---
> > drivers/iio/accel/sca3000.c | 3 +--
> > 1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/drivers/iio/accel/sca3000.c b/drivers/iio/accel/sca3000.c
> > index cb753a43533c..0692ccb80293 100644
> > --- a/drivers/iio/accel/sca3000.c
> > +++ b/drivers/iio/accel/sca3000.c
> > @@ -731,8 +731,7 @@ static int sca3000_read_raw(struct iio_dev *indio_dev,
> > return ret;
> > }
> > *val = (be16_to_cpup((__be16 *)st->rx) >> 3) & 0x1FFF;
> > - *val = ((*val) << (sizeof(*val) * 8 - 13)) >>
> > - (sizeof(*val) * 8 - 13);
> > + *val = sign_extend32(*val, 13);
> Should be 12 I think. The index is 0 based.
Fine example of why everything needs a sanity check. Indeed, should be 12
to sign extend a 13bit value.
Jonathan
> > } else {
> > /* get the temperature when available */
> > ret = sca3000_read_data_short(st,
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-10-10 16:25 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-03 16:47 [PATCH] iio: accel: sca3000: Use sign_extend32() instead of opencoding sign extension Jonathan Cameron
2021-07-18 15:16 ` Jonathan Cameron
2021-10-03 16:06 ` Jonathan Cameron
2021-10-03 18:03 ` Lars-Peter Clausen
2021-10-10 16:29 ` Jonathan Cameron
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.