* Re: [Outreachy kernel] [PATCH] Staging: iio: Change data type in adis16220_read_16bit to u16 [not found] <1425630960-7142-1-git-send-email-somyaanand214@gmail.com> @ 2015-03-06 8:58 ` Daniel Baluta 2015-03-06 9:15 ` Lars-Peter Clausen 0 siblings, 1 reply; 3+ messages in thread From: Daniel Baluta @ 2015-03-06 8:58 UTC (permalink / raw) To: Somya Anand Cc: outreachy-kernel, Jonathan Cameron, Lars-Peter Clausen, linux-iio@vger.kernel.org Hi Somya, On Fri, Mar 6, 2015 at 10:36 AM, Somya Anand <somyaanand214@gmail.com> wrote: > In the adis16220_read16bit() function we earlier used a s16 value 'val' > which is used by the adis_read_reg_16 function to read data and takes a > u16 value as a parameter. > > So, this patch changes the data type of 'val' from s16 to u16 for further > simplification of code and thereby avoiding unnecessary typecast. > > Signed-off-by: Somya Anand <somyaanand214@gmail.com> Ideally, subject should tell us "Why?" the patch is needed, instead of "What?" the patch does. The latter should be easy to understand reading the code. e.g: staging: iio: adis16220: Avoid unnecessary typecast > --- > drivers/staging/iio/accel/adis16220_core.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/staging/iio/accel/adis16220_core.c b/drivers/staging/iio/accel/adis16220_core.c > index d478f51..7a4a0fd 100644 > --- a/drivers/staging/iio/accel/adis16220_core.c > +++ b/drivers/staging/iio/accel/adis16220_core.c > @@ -28,16 +28,15 @@ static ssize_t adis16220_read_16bit(struct device *dev, > struct iio_dev *indio_dev = dev_to_iio_dev(dev); > struct adis16220_state *st = iio_priv(indio_dev); > ssize_t ret; > - s16 val = 0; > + u16 val = 0; > > /* Take the iio_dev status lock */ > mutex_lock(&indio_dev->mlock); > - ret = adis_read_reg_16(&st->adis, this_attr->address, > - (u16 *)&val); > + ret = adis_read_reg_16(&st->adis, this_attr->address, &val); > mutex_unlock(&indio_dev->mlock); > if (ret) > return ret; > - return sprintf(buf, "%d\n", val); > + return sprintf(buf, "%u\n", val); > } > > static ssize_t adis16220_write_16bit(struct device *dev, Other than that it looks good to me. We will need an ACK from Jonathan / Lars on this. thanks, Daniel. ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Outreachy kernel] [PATCH] Staging: iio: Change data type in adis16220_read_16bit to u16 2015-03-06 8:58 ` [Outreachy kernel] [PATCH] Staging: iio: Change data type in adis16220_read_16bit to u16 Daniel Baluta @ 2015-03-06 9:15 ` Lars-Peter Clausen 2015-03-06 9:55 ` Somya Anand 0 siblings, 1 reply; 3+ messages in thread From: Lars-Peter Clausen @ 2015-03-06 9:15 UTC (permalink / raw) To: Daniel Baluta, Somya Anand Cc: outreachy-kernel, Jonathan Cameron, linux-iio@vger.kernel.org On 03/06/2015 09:58 AM, Daniel Baluta wrote: > Hi Somya, > > On Fri, Mar 6, 2015 at 10:36 AM, Somya Anand <somyaanand214@gmail.com> wrote: >> In the adis16220_read16bit() function we earlier used a s16 value 'val' >> which is used by the adis_read_reg_16 function to read data and takes a >> u16 value as a parameter. >> >> So, this patch changes the data type of 'val' from s16 to u16 for further >> simplification of code and thereby avoiding unnecessary typecast. >> >> Signed-off-by: Somya Anand <somyaanand214@gmail.com> Patch looks ok. But it changes the semantics of the function, the reason why this is a s16 instead of a u16 is because at some point the function was used to read register that contained signed 16 bit values. The code is essentially the short version of: u16 uval; adis_read_reg_16(&st->adis, this_attr->address, &uval); sprintf("%d\n", sign_extend32(uval, 15)); This patch removes the extra sign extension. Which is ok, since the only user of the function uses it to read a 10 unsigned value which will lead to the same result in both cases. But the commit message should mention this, since it is not just the removal of a unnecessary type cast. - Lars ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Outreachy kernel] [PATCH] Staging: iio: Change data type in adis16220_read_16bit to u16 2015-03-06 9:15 ` Lars-Peter Clausen @ 2015-03-06 9:55 ` Somya Anand 0 siblings, 0 replies; 3+ messages in thread From: Somya Anand @ 2015-03-06 9:55 UTC (permalink / raw) To: Lars-Peter Clausen Cc: Daniel Baluta, outreachy-kernel, Jonathan Cameron, linux-iio@vger.kernel.org [-- Attachment #1: Type: text/plain, Size: 1599 bytes --] On Fri, Mar 6, 2015 at 2:45 PM, Lars-Peter Clausen <lars@metafoo.de> wrote: > On 03/06/2015 09:58 AM, Daniel Baluta wrote: > >> Hi Somya, >> >> On Fri, Mar 6, 2015 at 10:36 AM, Somya Anand <somyaanand214@gmail.com> >> wrote: >> >>> In the adis16220_read16bit() function we earlier used a s16 value 'val' >>> which is used by the adis_read_reg_16 function to read data and takes a >>> u16 value as a parameter. >>> >>> So, this patch changes the data type of 'val' from s16 to u16 for further >>> simplification of code and thereby avoiding unnecessary typecast. >>> >>> Signed-off-by: Somya Anand <somyaanand214@gmail.com> >>> >> > Patch looks ok. But it changes the semantics of the function, the reason > why this is a s16 instead of a u16 is because at some point the function > was used to read register that contained signed 16 bit values. The code is > essentially the short version of: > > u16 uval; > adis_read_reg_16(&st->adis, this_attr->address, &uval); > sprintf("%d\n", sign_extend32(uval, 15)); > I have asked Daniel regarding this earlier because while reading the code, I could not get the exact purpose of using s16. Thanks for clearing my doubt. > > This patch removes the extra sign extension. Which is ok, since the only > user of the function uses it to read a 10 unsigned value which will lead to > the same result in both cases. But the commit message should mention this, > since it is not just the removal of a unnecessary type cast. > > Sure, I will write a better commit message so that it would be more descriptive. > - Lars > Somya [-- Attachment #2: Type: text/html, Size: 2772 bytes --] ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-03-06 9:55 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1425630960-7142-1-git-send-email-somyaanand214@gmail.com>
2015-03-06 8:58 ` [Outreachy kernel] [PATCH] Staging: iio: Change data type in adis16220_read_16bit to u16 Daniel Baluta
2015-03-06 9:15 ` Lars-Peter Clausen
2015-03-06 9:55 ` Somya Anand
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox