On Mon, Dec 15, 2008 at 11:15:54AM -0800, David Brownell wrote:
> Should be platform_driver_probe() since you made davinci_mmcsd_probe()
> live in the __init section.

here you are:

==================== cut here ====================

>From 5f6cdc58a34e0f1a7c6eded1aff8e744cae22688 Mon Sep 17 00:00:00 2001
From: Felipe Balbi <[email protected]>
Date: Mon, 15 Dec 2008 18:17:40 +0200
Subject: [patch-v2.6.28 5/8] mmc: host: davinci: add missing section definitions

Add missing __init and __exit where appropriate.

Signed-off-by: Felipe Balbi <[email protected]>
---
 drivers/mmc/host/davinci_mmc.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/mmc/host/davinci_mmc.c b/drivers/mmc/host/davinci_mmc.c
index c7e38ab..58f0146 100644
--- a/drivers/mmc/host/davinci_mmc.c
+++ b/drivers/mmc/host/davinci_mmc.c
@@ -564,7 +564,7 @@ static int davinci_release_dma_channels(struct 
mmc_davinci_host *host)
        return 0;
 }
 
-static int davinci_acquire_dma_channels(struct mmc_davinci_host *host)
+static int __init davinci_acquire_dma_channels(struct mmc_davinci_host *host)
 {
        int edma_chan_num, tcc = 0, r, sync_dev;
        enum dma_event_q queue_no = EVENTQ_0;
@@ -1061,7 +1061,7 @@ static void init_mmcsd_host(struct mmc_davinci_host *host)
        udelay(10);
 }
 
-static int davinci_mmcsd_probe(struct platform_device *pdev)
+static int __init davinci_mmcsd_probe(struct platform_device *pdev)
 {
        struct davinci_mmc_config *pdata = pdev->dev.platform_data;
        struct mmc_davinci_host *host = NULL;
@@ -1196,10 +1196,11 @@ out:
                release_resource(mem);
 
        dev_dbg(&pdev->dev, "probe err %d\n", ret);
+
        return ret;
 }
 
-static int davinci_mmcsd_remove(struct platform_device *pdev)
+static int __exit davinci_mmcsd_remove(struct platform_device *pdev)
 {
        struct mmc_davinci_host *host = platform_get_drvdata(pdev);
 
@@ -1247,15 +1248,14 @@ static struct platform_driver davinci_mmcsd_driver = {
                .name   = DRIVER_NAME,
                .owner  = THIS_MODULE,
        },
-       .probe          = davinci_mmcsd_probe,
-       .remove         = davinci_mmcsd_remove,
+       .remove         = __exit_p(davinci_mmcsd_remove),
        .suspend        = davinci_mmcsd_suspend,
        .resume         = davinci_mmcsd_resume,
 };
 
-static int davinci_mmcsd_init(void)
+static int __init davinci_mmcsd_init(void)
 {
-       return platform_driver_register(&davinci_mmcsd_driver);
+       return platform_driver_probe(&davinci_mmcsd_driver, 
davinci_mmcsd_probe);
 }
 module_init(davinci_mmcsd_init);
 
-- 
1.6.0.4.617.g2baf1

-- 
balbi

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to