diff options
author | Marc Dietrich <marvin24@gmx.de> | 2012-06-24 23:25:21 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-06-25 10:55:38 -0700 |
commit | 3cdde3a3d55e64e6d1ae3465701c8d9f226775f3 (patch) | |
tree | fa22619c8e6f81ac6d34c3affffeab0514046ce7 /drivers/staging/nvec/nvec_power.c | |
parent | ac562680577a28fa98ebecebff5e5097ccf9a9d2 (diff) |
staging: nvec: add remove function to nvec childs
This patch cleanups registered devices on remove.
Signed-off-by: Marc Dietrich <marvin24@gmx.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/nvec/nvec_power.c')
-rw-r--r-- | drivers/staging/nvec/nvec_power.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/staging/nvec/nvec_power.c b/drivers/staging/nvec/nvec_power.c index 063f6d5e8ab..cc8ccd75e7f 100644 --- a/drivers/staging/nvec/nvec_power.c +++ b/drivers/staging/nvec/nvec_power.c @@ -407,8 +407,25 @@ static int __devinit nvec_power_probe(struct platform_device *pdev) return power_supply_register(&pdev->dev, psy); } +static int __devexit nvec_power_remove(struct platform_device *pdev) +{ + struct nvec_power *power = platform_get_drvdata(pdev); + + cancel_delayed_work_sync(&power->poller); + switch (pdev->id) { + case AC: + power_supply_unregister(&nvec_psy); + break; + case BAT: + power_supply_unregister(&nvec_bat_psy); + } + + return 0; +} + static struct platform_driver nvec_power_driver = { .probe = nvec_power_probe, + .remove = __devexit_p(nvec_power_remove), .driver = { .name = "nvec-power", .owner = THIS_MODULE, |