diff options
Diffstat (limited to 'drivers/power/ab8500_fg.c')
-rw-r--r-- | drivers/power/ab8500_fg.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/power/ab8500_fg.c b/drivers/power/ab8500_fg.c index 3830dade5d69..5a36cf88578a 100644 --- a/drivers/power/ab8500_fg.c +++ b/drivers/power/ab8500_fg.c | |||
@@ -2168,26 +2168,21 @@ static int ab8500_fg_get_property(struct power_supply *psy, | |||
2168 | static int ab8500_fg_get_ext_psy_data(struct device *dev, void *data) | 2168 | static int ab8500_fg_get_ext_psy_data(struct device *dev, void *data) |
2169 | { | 2169 | { |
2170 | struct power_supply *psy; | 2170 | struct power_supply *psy; |
2171 | struct power_supply *ext; | 2171 | struct power_supply *ext = dev_get_drvdata(dev); |
2172 | const char **supplicants = (const char **)ext->supplied_to; | ||
2172 | struct ab8500_fg *di; | 2173 | struct ab8500_fg *di; |
2173 | union power_supply_propval ret; | 2174 | union power_supply_propval ret; |
2174 | int i, j; | 2175 | int j; |
2175 | bool psy_found = false; | ||
2176 | 2176 | ||
2177 | psy = (struct power_supply *)data; | 2177 | psy = (struct power_supply *)data; |
2178 | ext = dev_get_drvdata(dev); | ||
2179 | di = power_supply_get_drvdata(psy); | 2178 | di = power_supply_get_drvdata(psy); |
2180 | 2179 | ||
2181 | /* | 2180 | /* |
2182 | * For all psy where the name of your driver | 2181 | * For all psy where the name of your driver |
2183 | * appears in any supplied_to | 2182 | * appears in any supplied_to |
2184 | */ | 2183 | */ |
2185 | for (i = 0; i < ext->num_supplicants; i++) { | 2184 | j = match_string(supplicants, ext->num_supplicants, psy->desc->name); |
2186 | if (!strcmp(ext->supplied_to[i], psy->desc->name)) | 2185 | if (j < 0) |
2187 | psy_found = true; | ||
2188 | } | ||
2189 | |||
2190 | if (!psy_found) | ||
2191 | return 0; | 2186 | return 0; |
2192 | 2187 | ||
2193 | /* Go through all properties for the psy */ | 2188 | /* Go through all properties for the psy */ |