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: Brian Masney <masneyb@onstation.org> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
19140ae904
commit
ae1e5238f7
|
@ -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,
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
|
|
Loading…
Reference in New Issue