Skip to content

Commit 1e63395

Browse files
krzklag-linaro
authored andcommitted
leds: aat1290: Use scoped device node handling to simplify error paths
Obtain the device node reference with scoped/cleanup.h to reduce error handling and make the code a bit simpler. Signed-off-by: Krzysztof Kozlowski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Lee Jones <[email protected]>
1 parent 8f3f075 commit 1e63395

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

drivers/leds/flash/leds-aat1290.c

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* Author: Jacek Anaszewski <[email protected]>
88
*/
99

10+
#include <linux/cleanup.h>
1011
#include <linux/delay.h>
1112
#include <linux/gpio/consumer.h>
1213
#include <linux/led-class-flash.h>
@@ -215,7 +216,6 @@ static int aat1290_led_parse_dt(struct aat1290_led *led,
215216
struct device_node **sub_node)
216217
{
217218
struct device *dev = &led->pdev->dev;
218-
struct device_node *child_node;
219219
#if IS_ENABLED(CONFIG_V4L2_FLASH_LED_CLASS)
220220
struct pinctrl *pinctrl;
221221
#endif
@@ -246,7 +246,8 @@ static int aat1290_led_parse_dt(struct aat1290_led *led,
246246
}
247247
#endif
248248

249-
child_node = of_get_next_available_child(dev_of_node(dev), NULL);
249+
struct device_node *child_node __free(device_node) =
250+
of_get_next_available_child(dev_of_node(dev), NULL);
250251
if (!child_node) {
251252
dev_err(dev, "No DT child node found for connected LED.\n");
252253
return -EINVAL;
@@ -267,23 +268,20 @@ static int aat1290_led_parse_dt(struct aat1290_led *led,
267268
if (ret < 0) {
268269
dev_err(dev,
269270
"flash-max-microamp DT property missing\n");
270-
goto err_parse_dt;
271+
return ret;
271272
}
272273

273274
ret = of_property_read_u32(child_node, "flash-max-timeout-us",
274275
&cfg->max_flash_tm);
275276
if (ret < 0) {
276277
dev_err(dev,
277278
"flash-max-timeout-us DT property missing\n");
278-
goto err_parse_dt;
279+
return ret;
279280
}
280281

281282
*sub_node = child_node;
282283

283-
err_parse_dt:
284-
of_node_put(child_node);
285-
286-
return ret;
284+
return 0;
287285
}
288286

289287
static void aat1290_led_validate_mm_current(struct aat1290_led *led,

0 commit comments

Comments
 (0)