mfd: move asic3 probe functions into __init section
authorPhilipp Zabel <philipp.zabel@gmail.com>
Fri, 20 Jun 2008 22:51:38 +0000 (00:51 +0200)
committerSamuel Ortiz <samuel@sortiz.org>
Sun, 20 Jul 2008 17:55:30 +0000 (19:55 +0200)
Potentially free some memory by moving the _probe functions into __init.

Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@openedhand.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
drivers/mfd/asic3.c

index 9931581b08a13da429b993247af7a708e3a33259..80dc3334e82f73c5727ed388176c58764e63088a 100644 (file)
@@ -308,7 +308,7 @@ static struct irq_chip asic3_irq_chip = {
        .unmask         = asic3_unmask_irq,
 };
 
-static int asic3_irq_probe(struct platform_device *pdev)
+static int __init asic3_irq_probe(struct platform_device *pdev)
 {
        struct asic3 *asic = platform_get_drvdata(pdev);
        unsigned long clksel = 0;
@@ -464,8 +464,8 @@ static void asic3_gpio_set(struct gpio_chip *chip,
        return;
 }
 
-static int asic3_gpio_probe(struct platform_device *pdev,
-                           u16 *gpio_config, int num)
+static __init int asic3_gpio_probe(struct platform_device *pdev,
+                                  u16 *gpio_config, int num)
 {
        struct asic3 *asic = platform_get_drvdata(pdev);
        u16 alt_reg[ASIC3_NUM_GPIO_BANKS];
@@ -526,7 +526,7 @@ static int asic3_gpio_remove(struct platform_device *pdev)
 
 
 /* Core */
-static int asic3_probe(struct platform_device *pdev)
+static int __init asic3_probe(struct platform_device *pdev)
 {
        struct asic3_platform_data *pdata = pdev->dev.platform_data;
        struct asic3 *asic;
@@ -633,7 +633,6 @@ static struct platform_driver asic3_device_driver = {
        .driver         = {
                .name   = "asic3",
        },
-       .probe          = asic3_probe,
        .remove         = __devexit_p(asic3_remove),
        .shutdown       = asic3_shutdown,
 };
@@ -641,7 +640,7 @@ static struct platform_driver asic3_device_driver = {
 static int __init asic3_init(void)
 {
        int retval = 0;
-       retval = platform_driver_register(&asic3_device_driver);
+       retval = platform_driver_probe(&asic3_device_driver, asic3_probe);
        return retval;
 }