libceph: move r_reply_op_{len,result} into struct ceph_osd_req_op
[linux-2.6-block.git] / drivers / power / ab8500_charger.c
index e388171f4e587e8931ec44ca32e03b08cd916a0b..30de5d42b26af95905b1a07f10b6d69cb7bd0994 100644 (file)
@@ -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 */