[RFC,6/6] pci: hotplug: move cardbus code from drivers/pcmcia
Commit Message
From: Arnd Bergmann <arnd@arndb.de>
16-bit pcmcia and 32-bit cardbus code are now completely separate
code bases, with the cardbus implementation just interfacig with
the PCI core for hotplugging cards, so move it to the same place
as the other PCI hotplug drivers.
The pcmcia/i82365.h header file is the only bit that contains shared
definitions for common registers.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/Makefile | 2 +-
drivers/pci/hotplug/Kconfig | 56 +++++++++++++++++++
drivers/pci/hotplug/Makefile | 1 +
.../{pcmcia => pci/hotplug}/yenta_socket.c | 2 +-
drivers/pcmcia/Kconfig | 56 -------------------
drivers/pcmcia/Makefile | 3 -
drivers/pcmcia/i82092.c | 2 +-
drivers/pcmcia/i82365.c | 2 +-
drivers/pcmcia/pd6729.c | 3 +-
{drivers => include}/pcmcia/i82365.h | 0
10 files changed, 62 insertions(+), 65 deletions(-)
rename drivers/{pcmcia => pci/hotplug}/yenta_socket.c (99%)
rename {drivers => include}/pcmcia/i82365.h (100%)
@@ -93,7 +93,7 @@ obj-$(CONFIG_UIO) += uio/
obj-$(CONFIG_VFIO) += vfio/
obj-y += cdrom/
obj-y += auxdisplay/
-obj-$(CONFIG_PCCARD) += pcmcia/
+obj-$(CONFIG_PCMCIA) += pcmcia/
obj-$(CONFIG_DIO) += dio/
obj-$(CONFIG_SBUS) += sbus/
obj-$(CONFIG_ZORRO) += zorro/
@@ -161,4 +161,60 @@ config HOTPLUG_PCI_S390
When in doubt, say Y.
+config CARDBUS
+ tristate "32-bit CardBus support"
+ depends on PCI
+ select YENTA
+ default PCCARD
+ help
+ CardBus is a bus mastering architecture for PC-cards, which allows
+ for 32 bit PC-cards (the original PCMCIA standard specifies only
+ a 16 bit wide bus). Many newer PC-cards are actually CardBus cards.
+
+ To use 32 bit PC-cards, you also need a CardBus compatible host
+ bridge. Virtually all modern PCMCIA bridges do this, and most of
+ them are "yenta-compatible", so say Y or M there, too.
+
+ If unsure, say Y.
+
+config YENTA
+ tristate "CardBus yenta-compatible bridge support" if EXPERT
+ depends on PCI && CARDBUS
+ default y
+ help
+ This option enables support for CardBus host bridges. Virtually
+ all modern PCMCIA bridges are CardBus compatible. A "bridge" is
+ the hardware inside your computer that PCMCIA cards are plugged
+ into.
+
+ To compile this driver as modules, choose M here: the
+ module will be called yenta_socket.
+
+ If unsure, say Y.
+
+config YENTA_O2
+ default y
+ bool "Special initialization for O2Micro bridges" if EXPERT
+ depends on YENTA
+
+config YENTA_RICOH
+ default y
+ bool "Special initialization for Ricoh bridges" if EXPERT
+ depends on YENTA
+
+config YENTA_TI
+ default y
+ bool "Special initialization for TI and EnE bridges" if EXPERT
+ depends on YENTA
+
+config YENTA_ENE_TUNE
+ default y
+ bool "Auto-tune EnE bridges for CB cards" if EXPERT
+ depends on YENTA_TI && CARDBUS
+
+config YENTA_TOSHIBA
+ default y
+ bool "Special initialization for Toshiba ToPIC bridges" if EXPERT
+ depends on YENTA
+
endif # HOTPLUG_PCI
@@ -20,6 +20,7 @@ obj-$(CONFIG_HOTPLUG_PCI_RPA) += rpaphp.o
obj-$(CONFIG_HOTPLUG_PCI_RPA_DLPAR) += rpadlpar_io.o
obj-$(CONFIG_HOTPLUG_PCI_ACPI) += acpiphp.o
obj-$(CONFIG_HOTPLUG_PCI_S390) += s390_pci_hpc.o
+obj-$(CONFIG_CARDBUS) += yenta_socket.o
# acpiphp_ibm extends acpiphp, so should be linked afterwards.
similarity index 99%
rename from drivers/pcmcia/yenta_socket.c
rename to drivers/pci/hotplug/yenta_socket.c
@@ -34,7 +34,7 @@
#include <linux/timer.h>
#include <linux/workqueue.h>
#include <asm/irq.h>
-#include "i82365.h"
+#include <pcmcia/i82365.h>
/* Definitions for card status flags for GetStatus */
#define SS_WRPROT 0x0001
@@ -53,67 +53,11 @@ config PCMCIA_LOAD_CIS
If unsure, say Y.
-config CARDBUS
- tristate "32-bit CardBus support"
- depends on PCI
- select YENTA
- default y
- help
- CardBus is a bus mastering architecture for PC-cards, which allows
- for 32 bit PC-cards (the original PCMCIA standard specifies only
- a 16 bit wide bus). Many newer PC-cards are actually CardBus cards.
-
- To use 32 bit PC-cards, you also need a CardBus compatible host
- bridge. Virtually all modern PCMCIA bridges do this, and most of
- them are "yenta-compatible", so say Y or M there, too.
-
- If unsure, say Y.
-
config PCMCIA_MAX1600
tristate
comment "PC-card bridges"
-config YENTA
- tristate "CardBus yenta-compatible bridge support" if EXPERT
- depends on PCI && CARDBUS
- default y
- help
- This option enables support for CardBus host bridges. Virtually
- all modern PCMCIA bridges are CardBus compatible. A "bridge" is
- the hardware inside your computer that PCMCIA cards are plugged
- into.
-
- To compile this driver as modules, choose M here: the
- module will be called yenta_socket.
-
- If unsure, say Y.
-
-config YENTA_O2
- default y
- bool "Special initialization for O2Micro bridges" if EXPERT
- depends on YENTA
-
-config YENTA_RICOH
- default y
- bool "Special initialization for Ricoh bridges" if EXPERT
- depends on YENTA
-
-config YENTA_TI
- default y
- bool "Special initialization for TI and EnE bridges" if EXPERT
- depends on YENTA
-
-config YENTA_ENE_TUNE
- default y
- bool "Auto-tune EnE bridges for CB cards" if EXPERT
- depends on YENTA_TI && CARDBUS
-
-config YENTA_TOSHIBA
- default y
- bool "Special initialization for Toshiba ToPIC bridges" if EXPERT
- depends on YENTA
-
config PD6729
tristate "Cirrus PD6729 compatible bridge support"
depends on PCMCIA && PCI
@@ -14,9 +14,6 @@ obj-$(CONFIG_PCMCIA) += pcmcia_rsrc.o
# socket drivers
-
-obj-$(CONFIG_YENTA) += yenta_socket.o
-
obj-$(CONFIG_PD6729) += pd6729.o
obj-$(CONFIG_I82365) += i82365.o
obj-$(CONFIG_I82092) += i82092.o
@@ -17,11 +17,11 @@
#include <linux/device.h>
#include <pcmcia/ss.h>
+#include <pcmcia/i82365.h>
#include <linux/io.h>
#include "i82092aa.h"
-#include "i82365.h"
MODULE_LICENSE("GPL");
@@ -54,7 +54,7 @@
#include <linux/isapnp.h>
/* ISA-bus controllers */
-#include "i82365.h"
+#include <pcmcia/i82365.h>
#include "cirrus.h"
#include "vg468.h"
#include "ricoh.h"
@@ -18,10 +18,9 @@
#include <linux/io.h>
#include <pcmcia/ss.h>
-
+#include <pcmcia/i82365.h>
#include "pd6729.h"
-#include "i82365.h"
#include "cirrus.h"
MODULE_LICENSE("GPL");
similarity index 100%
rename from drivers/pcmcia/i82365.h
rename to include/pcmcia/i82365.h