]> Pileus Git - ~andy/linux/blobdiff - drivers/power/wm8350_power.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[~andy/linux] / drivers / power / wm8350_power.c
index ad4f071e12870a26cbf6d7fb9415590947ba1833..fae04d3846570dd62d51d5baaa555437c5b42d76 100644 (file)
@@ -190,7 +190,7 @@ static irqreturn_t wm8350_charger_handler(int irq, void *data)
        struct wm8350_power *power = &wm8350->power;
        struct wm8350_charger_policy *policy = power->policy;
 
-       switch (irq) {
+       switch (irq - wm8350->irq_base) {
        case WM8350_IRQ_CHG_BAT_FAIL:
                dev_err(wm8350->dev, "battery failed\n");
                break;
@@ -428,18 +428,18 @@ static void wm8350_init_charger(struct wm8350 *wm8350)
 
 static void free_charger_irq(struct wm8350 *wm8350)
 {
-       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_HOT);
-       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_COLD);
-       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_FAIL);
-       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_TO);
-       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_END);
-       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_START);
-       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P9);
-       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P1);
-       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_2P85);
-       wm8350_free_irq(wm8350, WM8350_IRQ_EXT_USB_FB);
-       wm8350_free_irq(wm8350, WM8350_IRQ_EXT_WALL_FB);
-       wm8350_free_irq(wm8350, WM8350_IRQ_EXT_BAT_FB);
+       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_HOT, wm8350);
+       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_COLD, wm8350);
+       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_BAT_FAIL, wm8350);
+       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_TO, wm8350);
+       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_END, wm8350);
+       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_START, wm8350);
+       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P9, wm8350);
+       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_3P1, wm8350);
+       wm8350_free_irq(wm8350, WM8350_IRQ_CHG_VBATT_LT_2P85, wm8350);
+       wm8350_free_irq(wm8350, WM8350_IRQ_EXT_USB_FB, wm8350);
+       wm8350_free_irq(wm8350, WM8350_IRQ_EXT_WALL_FB, wm8350);
+       wm8350_free_irq(wm8350, WM8350_IRQ_EXT_BAT_FB, wm8350);
 }
 
 static __devinit int wm8350_power_probe(struct platform_device *pdev)
@@ -522,17 +522,7 @@ static struct platform_driver wm8350_power_driver = {
        },
 };
 
-static int __init wm8350_power_init(void)
-{
-       return platform_driver_register(&wm8350_power_driver);
-}
-module_init(wm8350_power_init);
-
-static void __exit wm8350_power_exit(void)
-{
-       platform_driver_unregister(&wm8350_power_driver);
-}
-module_exit(wm8350_power_exit);
+module_platform_driver(wm8350_power_driver);
 
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Power supply driver for WM8350");