- for (i = 0; i < psy->num_supplicants; i++) {
- struct device *dev;
-
- down(&power_supply_class->sem);
- list_for_each_entry(dev, &power_supply_class->devices, node) {
- struct power_supply *pst = dev_get_drvdata(dev);
-
- if (!strcmp(psy->supplied_to[i], pst->name)) {
- if (pst->external_power_changed)
- pst->external_power_changed(pst);
- }
- }
- up(&power_supply_class->sem);
- }
+ class_for_each_device(power_supply_class, psy,
+ __power_supply_changed_work);