Skip to content

Commit 6eefd65

Browse files
javiercarrascocruzlag-linaro
authored andcommitted
leds: pca995x: Use device_for_each_child_node() to access device child nodes
The iterated nodes are direct children of the device node, and the `device_for_each_child_node()` macro accounts for child node availability. `fwnode_for_each_available_child_node()` is meant to access the child nodes of an fwnode, and therefore not direct child nodes of the device node. Use `device_for_each_child_node()` to indicate device's direct child nodes. Signed-off-by: Javier Carrasco <[email protected]> Reviewed-by: Jonathan Cameron <[email protected]> Link: https://lore.kernel.org/r/20240805-device_for_each_child_node-available-v3-2-48243a4aa5c0@gmail.com Signed-off-by: Lee Jones <[email protected]>
1 parent 70a4375 commit 6eefd65

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

drivers/leds/leds-pca995x.c

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ static const struct regmap_config pca995x_regmap = {
120120
static int pca995x_probe(struct i2c_client *client)
121121
{
122122
struct fwnode_handle *led_fwnodes[PCA995X_MAX_OUTPUTS] = { 0 };
123-
struct fwnode_handle *np, *child;
123+
struct fwnode_handle *child;
124124
struct device *dev = &client->dev;
125125
const struct pca995x_chipdef *chipdef;
126126
struct pca995x_chip *chip;
@@ -129,8 +129,7 @@ static int pca995x_probe(struct i2c_client *client)
129129

130130
chipdef = device_get_match_data(&client->dev);
131131

132-
np = dev_fwnode(dev);
133-
if (!np)
132+
if (!dev_fwnode(dev))
134133
return -ENODEV;
135134

136135
chip = devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL);
@@ -144,17 +143,13 @@ static int pca995x_probe(struct i2c_client *client)
144143

145144
i2c_set_clientdata(client, chip);
146145

147-
fwnode_for_each_available_child_node(np, child) {
146+
device_for_each_child_node(dev, child) {
148147
ret = fwnode_property_read_u32(child, "reg", &reg);
149-
if (ret) {
150-
fwnode_handle_put(child);
148+
if (ret)
151149
return ret;
152-
}
153150

154-
if (reg < 0 || reg >= PCA995X_MAX_OUTPUTS || led_fwnodes[reg]) {
155-
fwnode_handle_put(child);
151+
if (reg < 0 || reg >= PCA995X_MAX_OUTPUTS || led_fwnodes[reg])
156152
return -EINVAL;
157-
}
158153

159154
led = &chip->leds[reg];
160155
led_fwnodes[reg] = child;

0 commit comments

Comments
 (0)