iio: dac: ad5770r: Use device_for_each_child_node_scoped()
Switching to the _scoped() version removes the need for manual calling of fwnode_handle_put() in the paths where the code exits the loop early. In this case that's all in error paths. Cc: Nuno Sá <nuno.sa@analog.com> Reviewed-by: Nuno Sa <nuno.sa@analog.com> Link: https://lore.kernel.org/r/20240330185305.1319844-9-jic23@kernel.org Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
2d766e79ba
commit
eff19f6b9e
1 changed files with 6 additions and 13 deletions
|
@ -515,39 +515,32 @@ static int ad5770r_channel_config(struct ad5770r_state *st)
|
||||||
{
|
{
|
||||||
int ret, tmp[2], min, max;
|
int ret, tmp[2], min, max;
|
||||||
unsigned int num;
|
unsigned int num;
|
||||||
struct fwnode_handle *child;
|
|
||||||
|
|
||||||
num = device_get_child_node_count(&st->spi->dev);
|
num = device_get_child_node_count(&st->spi->dev);
|
||||||
if (num != AD5770R_MAX_CHANNELS)
|
if (num != AD5770R_MAX_CHANNELS)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
device_for_each_child_node(&st->spi->dev, child) {
|
device_for_each_child_node_scoped(&st->spi->dev, child) {
|
||||||
ret = fwnode_property_read_u32(child, "reg", &num);
|
ret = fwnode_property_read_u32(child, "reg", &num);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_child_out;
|
return ret;
|
||||||
if (num >= AD5770R_MAX_CHANNELS) {
|
if (num >= AD5770R_MAX_CHANNELS)
|
||||||
ret = -EINVAL;
|
return -EINVAL;
|
||||||
goto err_child_out;
|
|
||||||
}
|
|
||||||
|
|
||||||
ret = fwnode_property_read_u32_array(child,
|
ret = fwnode_property_read_u32_array(child,
|
||||||
"adi,range-microamp",
|
"adi,range-microamp",
|
||||||
tmp, 2);
|
tmp, 2);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_child_out;
|
return ret;
|
||||||
|
|
||||||
min = tmp[0] / 1000;
|
min = tmp[0] / 1000;
|
||||||
max = tmp[1] / 1000;
|
max = tmp[1] / 1000;
|
||||||
ret = ad5770r_store_output_range(st, min, max, num);
|
ret = ad5770r_store_output_range(st, min, max, num);
|
||||||
if (ret)
|
if (ret)
|
||||||
goto err_child_out;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
err_child_out:
|
|
||||||
fwnode_handle_put(child);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ad5770r_init(struct ad5770r_state *st)
|
static int ad5770r_init(struct ad5770r_state *st)
|
||||||
|
|
Loading…
Add table
Reference in a new issue