diff options
Diffstat (limited to 'drivers/power/supply/max8997_charger.c')
| -rw-r--r-- | drivers/power/supply/max8997_charger.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/drivers/power/supply/max8997_charger.c b/drivers/power/supply/max8997_charger.c index 25207fe2aa68..1ec3535a257d 100644 --- a/drivers/power/supply/max8997_charger.c +++ b/drivers/power/supply/max8997_charger.c @@ -14,6 +14,7 @@ #include <linux/mfd/max8997.h> #include <linux/mfd/max8997-private.h> #include <linux/regulator/consumer.h> +#include <linux/devm-helpers.h> /* MAX8997_REG_STATUS4 */ #define DCINOK_SHIFT 1 @@ -94,13 +95,6 @@ static int max8997_battery_get_property(struct power_supply *psy, return 0; } -static void max8997_battery_extcon_evt_stop_work(void *data) -{ - struct charger_data *charger = data; - - cancel_work_sync(&charger->extcon_work); -} - static void max8997_battery_extcon_evt_worker(struct work_struct *work) { struct charger_data *charger = @@ -248,15 +242,15 @@ static int max8997_battery_probe(struct platform_device *pdev) dev_info(&pdev->dev, "couldn't get charger regulator\n"); } charger->edev = extcon_get_extcon_dev("max8997-muic"); - if (IS_ERR_OR_NULL(charger->edev)) { - if (!charger->edev) - return -EPROBE_DEFER; - dev_info(charger->dev, "couldn't get extcon device\n"); + if (IS_ERR(charger->edev)) { + dev_err_probe(charger->dev, PTR_ERR(charger->edev), + "couldn't get extcon device: max8997-muic\n"); + return PTR_ERR(charger->edev); } if (!IS_ERR(charger->reg) && !IS_ERR_OR_NULL(charger->edev)) { - INIT_WORK(&charger->extcon_work, max8997_battery_extcon_evt_worker); - ret = devm_add_action(&pdev->dev, max8997_battery_extcon_evt_stop_work, charger); + ret = devm_work_autocancel(&pdev->dev, &charger->extcon_work, + max8997_battery_extcon_evt_worker); if (ret) { dev_err(&pdev->dev, "failed to add extcon evt stop action: %d\n", ret); return ret; |
