Commit ae1e5238 authored by Brian Masney's avatar Brian Masney Committed by Jonathan Cameron

staging: iio: isl29028: move failure logging into isl29028_set_proxim_sampling()

When isl29028_set_proxim_sampling() fails, it was up to both callers to
log the failure message. This patch moves the logging into
isl29028_set_proxim_sampling() to reduce the overall amount of code in
the driver.
Signed-off-by: default avatarBrian Masney <masneyb@onstation.org>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent 19140ae9
...@@ -78,18 +78,29 @@ struct isl29028_chip { ...@@ -78,18 +78,29 @@ struct isl29028_chip {
static int isl29028_set_proxim_sampling(struct isl29028_chip *chip, static int isl29028_set_proxim_sampling(struct isl29028_chip *chip,
unsigned int sampling) unsigned int sampling)
{ {
struct device *dev = regmap_get_device(chip->regmap);
static unsigned int prox_period[] = {800, 400, 200, 100, 75, 50, 12, 0}; static unsigned int prox_period[] = {800, 400, 200, 100, 75, 50, 12, 0};
int sel;
unsigned int period = DIV_ROUND_UP(1000, sampling); unsigned int period = DIV_ROUND_UP(1000, sampling);
int sel, ret;
for (sel = 0; sel < ARRAY_SIZE(prox_period); ++sel) { for (sel = 0; sel < ARRAY_SIZE(prox_period); ++sel) {
if (period >= prox_period[sel]) if (period >= prox_period[sel])
break; break;
} }
return regmap_update_bits(chip->regmap, ISL29028_REG_CONFIGURE, ret = regmap_update_bits(chip->regmap, ISL29028_REG_CONFIGURE,
ISL29028_CONF_PROX_SLP_MASK, ISL29028_CONF_PROX_SLP_MASK,
sel << ISL29028_CONF_PROX_SLP_SH); sel << ISL29028_CONF_PROX_SLP_SH);
if (ret < 0) {
dev_err(dev, "%s(): Error %d setting the proximity sampling\n",
__func__, ret);
return ret;
}
chip->prox_sampling = sampling;
return ret;
} }
static int isl29028_enable_proximity(struct isl29028_chip *chip, bool enable) static int isl29028_enable_proximity(struct isl29028_chip *chip, bool enable)
...@@ -291,14 +302,6 @@ static int isl29028_write_raw(struct iio_dev *indio_dev, ...@@ -291,14 +302,6 @@ static int isl29028_write_raw(struct iio_dev *indio_dev,
} }
ret = isl29028_set_proxim_sampling(chip, val); ret = isl29028_set_proxim_sampling(chip, val);
if (ret < 0) {
dev_err(dev,
"Setting proximity samp_freq fail, err %d\n",
ret);
break;
}
chip->prox_sampling = val;
break; break;
case IIO_LIGHT: case IIO_LIGHT:
if (mask != IIO_CHAN_INFO_SCALE) { if (mask != IIO_CHAN_INFO_SCALE) {
...@@ -437,10 +440,8 @@ static int isl29028_chip_init_and_power_on(struct isl29028_chip *chip) ...@@ -437,10 +440,8 @@ static int isl29028_chip_init_and_power_on(struct isl29028_chip *chip)
} }
ret = isl29028_set_proxim_sampling(chip, chip->prox_sampling); ret = isl29028_set_proxim_sampling(chip, chip->prox_sampling);
if (ret < 0) { if (ret < 0)
dev_err(dev, "setting the proximity, err = %d\n", ret);
return ret; return ret;
}
ret = isl29028_set_als_scale(chip, chip->lux_scale); ret = isl29028_set_als_scale(chip, chip->lux_scale);
if (ret < 0) if (ret < 0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment