pcmcia: do not use resource manager on !PCMCIA
authorDominik Brodowski <linux@dominikbrodowski.net>
Wed, 6 Jan 2010 13:33:15 +0000 (14:33 +0100)
committerDominik Brodowski <linux@dominikbrodowski.net>
Wed, 17 Feb 2010 16:37:31 +0000 (17:37 +0100)
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>
drivers/pcmcia/Kconfig
include/pcmcia/ss.h

index 44b324b..efc51b9 100644 (file)
@@ -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.
index 1a47379..9ab53d8 100644 (file)
@@ -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);