diff options
author | David Brownell <david-b@pacbell.net> | 2006-12-26 14:45:26 -0800 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2007-01-04 07:03:57 +0100 |
commit | a26b498c96f87130559005151539f5fd9e43fff6 (patch) | |
tree | cd2ec99840d6bc0ee81b8ac590662283cdf7de6c /drivers/mmc | |
parent | 3947a3907f9cb88ebd492b6348a251036c4e81c7 (diff) | |
download | kernel_samsung_crespo-a26b498c96f87130559005151539f5fd9e43fff6.zip kernel_samsung_crespo-a26b498c96f87130559005151539f5fd9e43fff6.tar.gz kernel_samsung_crespo-a26b498c96f87130559005151539f5fd9e43fff6.tar.bz2 |
MMC: at91 mmc linkage updates
Linker level tweaks for the AT91 MMC driver:
- fix a wrongly-exported symbol
- move probe() to init section
- move remove() to exit section
When this driver is statically linked, this patch shrinks the driver's
runtime I-space footprint by over 20% (950 bytes).
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/at91_mci.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/mmc/at91_mci.c b/drivers/mmc/at91_mci.c index 08a33c3..aa152f3 100644 --- a/drivers/mmc/at91_mci.c +++ b/drivers/mmc/at91_mci.c @@ -768,7 +768,7 @@ static irqreturn_t at91_mmc_det_irq(int irq, void *_host) return IRQ_HANDLED; } -int at91_mci_get_ro(struct mmc_host *mmc) +static int at91_mci_get_ro(struct mmc_host *mmc) { int read_only = 0; struct at91mci_host *host = mmc_priv(mmc); @@ -794,7 +794,7 @@ static const struct mmc_host_ops at91_mci_ops = { /* * Probe for the device */ -static int at91_mci_probe(struct platform_device *pdev) +static int __init at91_mci_probe(struct platform_device *pdev) { struct mmc_host *mmc; struct at91mci_host *host; @@ -910,7 +910,7 @@ static int at91_mci_probe(struct platform_device *pdev) /* * Remove a device */ -static int at91_mci_remove(struct platform_device *pdev) +static int __exit at91_mci_remove(struct platform_device *pdev) { struct mmc_host *mmc = platform_get_drvdata(pdev); struct at91mci_host *host; @@ -972,8 +972,7 @@ static int at91_mci_resume(struct platform_device *pdev) #endif static struct platform_driver at91_mci_driver = { - .probe = at91_mci_probe, - .remove = at91_mci_remove, + .remove = __exit_p(at91_mci_remove), .suspend = at91_mci_suspend, .resume = at91_mci_resume, .driver = { @@ -984,7 +983,7 @@ static struct platform_driver at91_mci_driver = { static int __init at91_mci_init(void) { - return platform_driver_register(&at91_mci_driver); + return platform_driver_probe(&at91_mci_driver, at91_mci_probe); } static void __exit at91_mci_exit(void) |