}
 module_exit(charger_manager_cleanup);
 
-/**
- * find_power_supply - find the associated power_supply of charger
- * @cm: the Charger Manager representing the battery
- * @psy: pointer to instance of charger's power_supply
- */
-static bool find_power_supply(struct charger_manager *cm,
-                       struct power_supply *psy)
-{
-       int i;
-       bool found = false;
-
-       for (i = 0; cm->desc->psy_charger_stat[i]; i++) {
-               if (!strcmp(psy->desc->name, cm->desc->psy_charger_stat[i])) {
-                       found = true;
-                       break;
-               }
-       }
-
-       return found;
-}
-
 /**
  * cm_notify_event - charger driver notify Charger Manager of charger event
  * @psy: pointer to instance of charger's power_supply
 
        mutex_lock(&cm_list_mtx);
        list_for_each_entry(cm, &cm_list, entry) {
-               found_power_supply = find_power_supply(cm, psy);
-               if (found_power_supply)
+               if (match_string(cm->desc->psy_charger_stat, -1,
+                                psy->desc->name) >= 0) {
+                       found_power_supply = true;
                        break;
+               }
        }
        mutex_unlock(&cm_list_mtx);