Re: [PATCH v2 5/6] iio: adc: ti-ads1015: use dev_err_probe() for error handling
Jonathan Cameron <[email protected]> Sat, 1 Aug 2026 19:39:16 +0100
| Newsgroups | org.kernel.vger.linux-iio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <20260801193916.442d08d4@jic23-huawei> |
On Tue, 28 Jul 2026 00:51:01 +0530 Archit Anant <[email protected]> wrote: > Simplify the error handling paths in ads1015_probe() and > ads1015_client_get_channels_config() by converting dev_err() > calls that are immediately followed by a return statement > over to the modern dev_err_probe() helper. > > Suggested-by: Jonathan Cameron <[email protected]> > Signed-off-by: Archit Anant <[email protected]> Ah. This doesn't pick up all the places I was expecting when reviewing previous patch. It should definitely include the dev_err_probe() for iio_device_register() - that won't be change just because you move to devm_iio_device_register() in the next patch. > --- > drivers/iio/adc/ti-ads1015.c | 28 ++++++++++++---------------- > 1 file changed, 12 insertions(+), 16 deletions(-) > > diff --git a/drivers/iio/adc/ti-ads1015.c b/drivers/iio/adc/ti-ads1015.c > index 59ce2f89daeb..a8dba4e5aed3 100644 > --- a/drivers/iio/adc/ti-ads1015.c > +++ b/drivers/iio/adc/ti-ads1015.c > @@ -883,18 +883,16 @@ static int ads1015_client_get_channels_config(struct i2c_client *client) > > if (!fwnode_property_read_u32(node, "ti,gain", &pval)) { > pga = pval; > - if (pga > 5) { > - dev_err(dev, "invalid gain on %pfw\n", node); > - return -EINVAL; > - } > + if (pga > 5) > + return dev_err_probe(dev, -EINVAL, > + "invalid gain on %pfw\n", node); > } > > if (!fwnode_property_read_u32(node, "ti,datarate", &pval)) { > data_rate = pval; > - if (data_rate > 7) { > - dev_err(dev, "invalid data_rate on %pfw\n", node); > - return -EINVAL; > - } > + if (data_rate > 7) > + return dev_err_probe(dev, -EINVAL, > + "invalid data_rate on %pfw\n", node); > } > > data->channel_data[channel].pga = pga; > @@ -978,18 +976,16 @@ static int ads1015_probe(struct i2c_client *client) > data->regmap = devm_regmap_init_i2c(client, chip->has_comparator ? > &ads1015_regmap_config : > &tla2024_regmap_config); > - if (IS_ERR(data->regmap)) { > - dev_err(dev, "Failed to allocate register map\n"); > - return PTR_ERR(data->regmap); > - } > + if (IS_ERR(data->regmap)) > + return dev_err_probe(dev, PTR_ERR(data->regmap), > + "Failed to allocate register map\n"); > > ret = devm_iio_triggered_buffer_setup(dev, indio_dev, NULL, > ads1015_trigger_handler, > &ads1015_buffer_setup_ops); > - if (ret < 0) { > - dev_err(dev, "iio triggered buffer setup failed\n"); Leave the switch from client->dev for this patch then we don't end up changing same line twice. Just add a brief comment to say you are taking advantage of the now available local dev pointer. > - return ret; > - } > + if (ret < 0) > + return dev_err_probe(dev, ret, > + "iio triggered buffer setup failed\n"); > > if (client->irq && chip->has_comparator) { > unsigned long irq_trig = irq_get_trigger_type(client->irq);