lkml.org 
[lkml]   [2016]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v2 1/3] hwmon: ltc2990: refactor value conversion
    From
    Date
    Hi Tom,

    On 11/17/2016 04:10 AM, Tom Levens wrote:
    > Conversion from raw values to signed integers has been refactored using
    > the macros in bitops.h.
    >
    Please also mention that this fixes a bug in negative temperature conversions.

    > Signed-off-by: Tom Levens <tom.levens@cern.ch>
    > ---
    > drivers/hwmon/ltc2990.c | 27 ++++++++++-----------------
    > 1 files changed, 10 insertions(+), 17 deletions(-)
    >
    > diff --git a/drivers/hwmon/ltc2990.c b/drivers/hwmon/ltc2990.c
    > index 8f8fe05..0ec4102 100644
    > --- a/drivers/hwmon/ltc2990.c
    > +++ b/drivers/hwmon/ltc2990.c
    > @@ -9,8 +9,12 @@
    > * This driver assumes the chip is wired as a dual current monitor, and
    > * reports the voltage drop across two series resistors. It also reports
    > * the chip's internal temperature and Vcc power supply voltage.
    > + *
    > + * Value conversion refactored
    > + * by Tom Levens <tom.levens@cern.ch>

    Kind of unusual to do that for minor changes like this. Imagine if everyone would do that.
    The commit log is what gives you credit.

    > */
    >
    > +#include <linux/bitops.h>
    > #include <linux/err.h>
    > #include <linux/hwmon.h>
    > #include <linux/hwmon-sysfs.h>
    > @@ -34,19 +38,10 @@
    > #define LTC2990_CONTROL_MODE_CURRENT 0x06
    > #define LTC2990_CONTROL_MODE_VOLTAGE 0x07
    >
    > -/* convert raw register value to sign-extended integer in 16-bit range */
    > -static int ltc2990_voltage_to_int(int raw)
    > -{
    > - if (raw & BIT(14))
    > - return -(0x4000 - (raw & 0x3FFF)) << 2;
    > - else
    > - return (raw & 0x3FFF) << 2;
    > -}
    > -
    > /* Return the converted value from the given register in uV or mC */
    > -static int ltc2990_get_value(struct i2c_client *i2c, u8 reg, int *result)
    > +static int ltc2990_get_value(struct i2c_client *i2c, u8 reg, s32 *result)
    > {
    > - int val;
    > + s32 val;

    Please just leave the variable type alone. it is also used for the return value
    from i2c_smbus_read_word_swapped(), which is an int, and changing it to s32 doesn't
    really make the code better.

    Can you send me a register map for the chip ? I would like to write a module test.

    Thanks,
    Guenter

    \
     
     \ /
      Last update: 2016-11-17 18:09    [W:4.272 / U:0.192 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site