|
@@ -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,
|