{
struct device *dev = host->dev;
struct device_node *np = dev->of_node;
- struct device_node *cnp;
u32 slot_id;
int err;
if (!np)
return dev_err_probe(dev, -EINVAL, "device node not found\n");
- for_each_child_of_node(np, cnp) {
+ for_each_child_of_node_scoped(np, cnp) {
if (of_property_read_u32(cnp, "reg", &slot_id)) {
dev_warn(dev, "reg property is missing for %pOF\n", cnp);
continue;
if (slot_id >= ATMCI_MAX_NR_SLOTS) {
dev_warn(dev, "can't have more than %d slots\n",
ATMCI_MAX_NR_SLOTS);
- of_node_put(cnp);
break;
}
"cd", GPIOD_IN, "cd-gpios");
err = PTR_ERR_OR_ZERO(host->pdata[slot_id].detect_pin);
if (err) {
- if (err != -ENOENT) {
- of_node_put(cnp);
+ if (err != -ENOENT)
return err;
- }
host->pdata[slot_id].detect_pin = NULL;
}
"wp", GPIOD_IN, "wp-gpios");
err = PTR_ERR_OR_ZERO(host->pdata[slot_id].wp_pin);
if (err) {
- if (err != -ENOENT) {
- of_node_put(cnp);
+ if (err != -ENOENT)
return err;
- }
host->pdata[slot_id].wp_pin = NULL;
}
}