|
@@ -274,8 +274,30 @@ static int power_supply_check_supplies(struct power_supply *psy)
|
|
|
return power_supply_populate_supplied_from(psy);
|
|
|
}
|
|
|
#else
|
|
|
-static inline int power_supply_check_supplies(struct power_supply *psy)
|
|
|
+static int power_supply_check_supplies(struct power_supply *psy)
|
|
|
{
|
|
|
+ int nval, ret;
|
|
|
+
|
|
|
+ if (!psy->dev.parent)
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ nval = device_property_read_string_array(psy->dev.parent,
|
|
|
+ "supplied-from", NULL, 0);
|
|
|
+ if (nval <= 0)
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ psy->supplied_from = devm_kmalloc_array(&psy->dev, nval,
|
|
|
+ sizeof(char *), GFP_KERNEL);
|
|
|
+ if (!psy->supplied_from)
|
|
|
+ return -ENOMEM;
|
|
|
+
|
|
|
+ ret = device_property_read_string_array(psy->dev.parent,
|
|
|
+ "supplied-from", (const char **)psy->supplied_from, nval);
|
|
|
+ if (ret < 0)
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ psy->num_supplies = nval;
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
#endif
|