aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2010-01-06 14:33:15 +0100
committerDominik Brodowski <linux@dominikbrodowski.net>2010-02-17 17:37:31 +0100
commit3a86e1807a53b7164c4ca2aec538d8a5d15416f1 (patch)
treea23503c690fd19681ab5a38b4add2b103048650c
parentpcmcia: remove remaining rsrc_mgr indirections (diff)
downloadlinux-dev-3a86e1807a53b7164c4ca2aec538d8a5d15416f1.tar.xz
linux-dev-3a86e1807a53b7164c4ca2aec538d8a5d15416f1.zip
pcmcia: do not use resource manager on !PCMCIA
If only CardBus cards are used, but not PCMCIA cards, we do not need the extensive resource management functions provided for by rsrc_nonstatic.c (~240K). Tested-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
-rw-r--r--drivers/pcmcia/Kconfig4
-rw-r--r--include/pcmcia/ss.h10
2 files changed, 12 insertions, 2 deletions
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
index 44b324b80e90..efc51b9e811e 100644
--- a/drivers/pcmcia/Kconfig
+++ b/drivers/pcmcia/Kconfig
@@ -84,7 +84,7 @@ config YENTA
tristate "CardBus yenta-compatible bridge support"
depends on PCI
select CARDBUS if !EMBEDDED
- select PCCARD_NONSTATIC
+ select PCCARD_NONSTATIC if PCMCIA
---help---
This option enables support for CardBus host bridges. Virtually
all modern PCMCIA bridges are CardBus compatible. A "bridge" is
@@ -162,7 +162,7 @@ config TCIC
config PCMCIA_M8XX
tristate "MPC8xx PCMCIA support"
depends on PCMCIA && PPC && 8xx
- select PCCARD_IODYN
+ select PCCARD_IODYN if PCMCIA
help
Say Y here to include support for PowerPC 8xx series PCMCIA
controller.
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h
index 1a4737933bf3..9ab53d872489 100644
--- a/include/pcmcia/ss.h
+++ b/include/pcmcia/ss.h
@@ -263,10 +263,20 @@ struct pcmcia_socket {
* - pccard_nonstatic_ops iomem and ioport areas are assigned dynamically.
* If this option is selected, use
* "select PCCARD_NONSTATIC" in Kconfig.
+ *
*/
extern struct pccard_resource_ops pccard_static_ops;
+#if defined(CONFIG_PCMCIA) || defined(CONFIG_PCMCIA_MODULE)
extern struct pccard_resource_ops pccard_iodyn_ops;
extern struct pccard_resource_ops pccard_nonstatic_ops;
+#else
+/* If PCMCIA is not used, but only CARDBUS, these functions are not used
+ * at all. Therefore, do not use the large (240K!) rsrc_nonstatic module
+ */
+#define pccard_iodyn_ops pccard_static_ops
+#define pccard_nonstatic_ops pccard_static_ops
+#endif
+
/* socket drivers are expected to use these callbacks in their .drv struct */
extern int pcmcia_socket_dev_suspend(struct device *dev);