|
@@ -1929,11 +1929,11 @@ static int ab8540_charger_usb_pre_chg_enable(struct ux500_charger *charger,
|
|
|
static int ab8500_charger_get_ext_psy_data(struct device *dev, void *data)
|
|
|
{
|
|
|
struct power_supply *psy;
|
|
|
- struct power_supply *ext;
|
|
|
+ struct power_supply *ext = dev_get_drvdata(dev);
|
|
|
+ const char **supplicants = (const char **)ext->supplied_to;
|
|
|
struct ab8500_charger *di;
|
|
|
union power_supply_propval ret;
|
|
|
- int i, j;
|
|
|
- bool psy_found = false;
|
|
|
+ int j;
|
|
|
struct ux500_charger *usb_chg;
|
|
|
|
|
|
usb_chg = (struct ux500_charger *)data;
|
|
@@ -1941,15 +1941,9 @@ static int ab8500_charger_get_ext_psy_data(struct device *dev, void *data)
|
|
|
|
|
|
di = to_ab8500_charger_usb_device_info(usb_chg);
|
|
|
|
|
|
- ext = dev_get_drvdata(dev);
|
|
|
-
|
|
|
/* For all psy where the driver name appears in any supplied_to */
|
|
|
- for (i = 0; i < ext->num_supplicants; i++) {
|
|
|
- if (!strcmp(ext->supplied_to[i], psy->desc->name))
|
|
|
- psy_found = true;
|
|
|
- }
|
|
|
-
|
|
|
- if (!psy_found)
|
|
|
+ j = match_string(supplicants, ext->num_supplicants, psy->desc->name);
|
|
|
+ if (j < 0)
|
|
|
return 0;
|
|
|
|
|
|
/* Go through all properties for the psy */
|