lkml.org 
[lkml]   [2021]   [Apr]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 01/38] iio: hid-sensor-prox: Fix scale not correct issue
    Date
    From: Ye Xiang <xiang.ye@intel.com>

    commit d68c592e02f6f49a88e705f13dfc1883432cf300 upstream

    Currently, the proxy sensor scale is zero because it just return the
    exponent directly. To fix this issue, this patch use
    hid_sensor_format_scale to process the scale first then return the
    output.

    Fixes: 39a3a0138f61 ("iio: hid-sensors: Added Proximity Sensor Driver")
    Signed-off-by: Ye Xiang <xiang.ye@intel.com>
    Link: https://lore.kernel.org/r/20210130102530.31064-1-xiang.ye@intel.com
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    [sudip: adjust context]
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/iio/light/hid-sensor-prox.c | 14 ++++++++++++--
    1 file changed, 12 insertions(+), 2 deletions(-)

    --- a/drivers/iio/light/hid-sensor-prox.c
    +++ b/drivers/iio/light/hid-sensor-prox.c
    @@ -37,6 +37,9 @@ struct prox_state {
    struct hid_sensor_common common_attributes;
    struct hid_sensor_hub_attribute_info prox_attr;
    u32 human_presence;
    + int scale_pre_decml;
    + int scale_post_decml;
    + int scale_precision;
    };

    /* Channel definitions */
    @@ -105,8 +108,9 @@ static int prox_read_raw(struct iio_dev
    ret_type = IIO_VAL_INT;
    break;
    case IIO_CHAN_INFO_SCALE:
    - *val = prox_state->prox_attr.units;
    - ret_type = IIO_VAL_INT;
    + *val = prox_state->scale_pre_decml;
    + *val2 = prox_state->scale_post_decml;
    + ret_type = prox_state->scale_precision;
    break;
    case IIO_CHAN_INFO_OFFSET:
    *val = hid_sensor_convert_exponent(
    @@ -240,6 +244,12 @@ static int prox_parse_report(struct plat
    st->common_attributes.sensitivity.index,
    st->common_attributes.sensitivity.report_id);
    }
    +
    + st->scale_precision = hid_sensor_format_scale(
    + hsdev->usage,
    + &st->prox_attr,
    + &st->scale_pre_decml, &st->scale_post_decml);
    +
    return ret;
    }


    \
     
     \ /
      Last update: 2021-04-15 16:51    [W:3.606 / U:0.304 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site