lkml.org 
[lkml]   [2016]   [Dec]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 01/19] staging: iio: isl29028: remove nested if statements
    Date
    There are two callers to the function isl29028_set_als_ir_mode() and
    both instances use a nested if statement to only change the chip state
    if it is not in the proper mode. This patch moves this check into the
    isl29028_set_als_ir_mode() function to remove the nested if
    statements.

    Signed-off-by: Brian Masney <masneyb@onstation.org>
    ---
    drivers/staging/iio/light/isl29028.c | 30 ++++++++++++++----------------
    1 file changed, 14 insertions(+), 16 deletions(-)

    diff --git a/drivers/staging/iio/light/isl29028.c b/drivers/staging/iio/light/isl29028.c
    index aa413e5..4e35d00 100644
    --- a/drivers/staging/iio/light/isl29028.c
    +++ b/drivers/staging/iio/light/isl29028.c
    @@ -124,6 +124,9 @@ static int isl29028_set_als_ir_mode(struct isl29028_chip *chip,
    {
    int ret = 0;

    + if (chip->als_ir_mode == mode)
    + return 0;
    +
    switch (mode) {
    case ISL29028_MODE_ALS:
    ret = regmap_update_bits(chip->regmap, ISL29028_REG_CONFIGURE,
    @@ -160,6 +163,9 @@ static int isl29028_set_als_ir_mode(struct isl29028_chip *chip,

    /* Need to wait for conversion time if ALS/IR mode enabled */
    mdelay(ISL29028_CONV_TIME_MS);
    +
    + chip->als_ir_mode = mode;
    +
    return 0;
    }

    @@ -223,14 +229,10 @@ static int isl29028_als_get(struct isl29028_chip *chip, int *als_data)
    int ret;
    int als_ir_data;

    - if (chip->als_ir_mode != ISL29028_MODE_ALS) {
    - ret = isl29028_set_als_ir_mode(chip, ISL29028_MODE_ALS);
    - if (ret < 0) {
    - dev_err(dev,
    - "Error in enabling ALS mode err %d\n", ret);
    - return ret;
    - }
    - chip->als_ir_mode = ISL29028_MODE_ALS;
    + ret = isl29028_set_als_ir_mode(chip, ISL29028_MODE_ALS);
    + if (ret < 0) {
    + dev_err(dev, "Error in enabling ALS mode err %d\n", ret);
    + return ret;
    }

    ret = isl29028_read_als_ir(chip, &als_ir_data);
    @@ -256,14 +258,10 @@ static int isl29028_ir_get(struct isl29028_chip *chip, int *ir_data)
    struct device *dev = regmap_get_device(chip->regmap);
    int ret;

    - if (chip->als_ir_mode != ISL29028_MODE_IR) {
    - ret = isl29028_set_als_ir_mode(chip, ISL29028_MODE_IR);
    - if (ret < 0) {
    - dev_err(dev,
    - "Error in enabling IR mode err %d\n", ret);
    - return ret;
    - }
    - chip->als_ir_mode = ISL29028_MODE_IR;
    + ret = isl29028_set_als_ir_mode(chip, ISL29028_MODE_IR);
    + if (ret < 0) {
    + dev_err(dev, "Error in enabling IR mode err %d\n", ret);
    + return ret;
    }
    return isl29028_read_als_ir(chip, ir_data);
    }
    --
    2.7.4
    \
     
     \ /
      Last update: 2016-12-04 03:21    [W:3.101 / U:0.624 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site