From 9a7380886d0cccd5b199b8aeb3b7c96f05e7dc0d Mon Sep 17 00:00:00 2001 From: xuwt2 Date: Fri, 21 Sep 2018 15:53:11 +0800 Subject: [PATCH] power: mmi_pl_chg_manager: uninstall driver module change the remove func of mmi_pl_chg_manager that fixed the panic issue when uninstall mmi_pl_chg_manager driver Change-Id: Ifbac5fadfef8e6e6dbdf4e11a892c27ac7b4cc71 Signed-off-by: xuwt2 Reviewed-on: https://gerrit.mot.com/1245080 SLTApproved: Slta Waiver SME-Granted: SME Approvals Granted Tested-by: Jira Key Reviewed-by: Master Yoda Reviewed-by: Jianqi Yang Submit-Approved: Jira Key --- .../power/mmi_pl_chg_manager/mmi_pl_chg_manager.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/power/mmi_pl_chg_manager/mmi_pl_chg_manager.c b/drivers/power/mmi_pl_chg_manager/mmi_pl_chg_manager.c index d2d5281a8bb1..96717ab92266 100644 --- a/drivers/power/mmi_pl_chg_manager/mmi_pl_chg_manager.c +++ b/drivers/power/mmi_pl_chg_manager/mmi_pl_chg_manager.c @@ -2164,6 +2164,12 @@ static void create_sysfs_entries(struct mmi_pl_chg_manager *chip) mmi_pl_err(chip, "Couldn't create factory_pmic_enable\n"); } +static void remove_sysfs_entries(struct mmi_pl_chg_manager *chip) +{ + device_remove_file(chip->dev, &dev_attr_flashc_vbat); + device_remove_file(chip->dev, &dev_attr_factory_flashc_enable); + device_remove_file(chip->dev, &dev_attr_factory_pmic_enable); +} static enum power_supply_property mmi_pl_pm_props[] = { POWER_SUPPLY_PROP_PD_CURRENT_MAX, @@ -2387,6 +2393,12 @@ static int mmi_pl_chg_manager_remove(struct platform_device *pdev) { struct mmi_pl_chg_manager *chip = platform_get_drvdata(pdev); + remove_sysfs_entries(chip); + cancel_delayed_work_sync(&chip->mmi_pl_sm_work); + + power_supply_unreg_notifier(&chip->psy_nb); + power_supply_unregister(chip->mmi_pl_pm_psy ); + platform_set_drvdata(pdev, NULL); devm_kfree(&pdev->dev, chip); return 0;