mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 10:29:37 +00:00
![Dominik Brodowski](/assets/img/avatar_default.png)
The PCMCIA ioctl -- deprecated for years -- suffers from insufficient locking. As it already has been deprecated for years, with its removal long overdue, limit it to !SMP and !PREEMPT. Furthermore, the last legitimate use of the ioctl to be reported relates to the ARM architecture in 2008.[1] Attempts to resolve this issue turned out unsuccessful so far.[2] Other usages have only been reported as hear-say. If there are any legitiate and necessary use-cases remaining, please speak out before the end of the grace period until 2.6.3{5,6}(-rc1). [1] http://lists.infradead.org/pipermail/linux-pcmcia/2008-April/005440.html see also: http://lkml.org/lkml/2008/2/27/291 [2] http://lists.infradead.org/pipermail/linux-pcmcia/2008-April/005450.html http://lists.infradead.org/pipermail/linux-pcmcia/2010-January/006740.html see also: http://lists.infradead.org/pipermail/linux-pcmcia/2008-April/005453.html CC: Russell King <rmk+kernel@arm.linux.org.uk> CC: Alan Cox <alan@lxorguk.ukuu.org.uk> CC: Robert P. J. Day <rpjday@crashcourse.ca> CC: Jaswinder Singh Rajput <jaswinder@kernel.org> CC: linux-kernel@vger.kernel.org Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
325 lines
9.5 KiB
Text
325 lines
9.5 KiB
Text
#
|
|
# PCCARD (PCMCIA/CardBus) bus subsystem configuration
|
|
#
|
|
|
|
menuconfig PCCARD
|
|
tristate "PCCard (PCMCIA/CardBus) support"
|
|
depends on HOTPLUG
|
|
---help---
|
|
Say Y here if you want to attach PCMCIA- or PC-cards to your Linux
|
|
computer. These are credit-card size devices such as network cards,
|
|
modems or hard drives often used with laptops computers. There are
|
|
actually two varieties of these cards: 16 bit PCMCIA and 32 bit
|
|
CardBus cards.
|
|
|
|
To compile this driver as modules, choose M here: the
|
|
module will be called pcmcia_core.
|
|
|
|
if PCCARD
|
|
|
|
config PCMCIA
|
|
tristate "16-bit PCMCIA support"
|
|
select CRC32
|
|
default y
|
|
---help---
|
|
This option enables support for 16-bit PCMCIA cards. Most older
|
|
PC-cards are such 16-bit PCMCIA cards, so unless you know you're
|
|
only using 32-bit CardBus cards, say Y or M here.
|
|
|
|
To use 16-bit PCMCIA cards, you will need supporting software in
|
|
most cases. (see the file <file:Documentation/Changes> for
|
|
location and details).
|
|
|
|
To compile this driver as modules, choose M here: the
|
|
module will be called pcmcia.
|
|
|
|
If unsure, say Y.
|
|
|
|
config PCMCIA_LOAD_CIS
|
|
bool "Load CIS updates from userspace (EXPERIMENTAL)"
|
|
depends on PCMCIA && EXPERIMENTAL
|
|
select FW_LOADER
|
|
default y
|
|
help
|
|
Some PCMCIA cards require an updated Card Information Structure (CIS)
|
|
to be loaded from userspace to work correctly. If you say Y here,
|
|
and your userspace is arranged correctly, this will be loaded
|
|
automatically using the in-kernel firmware loader and the hotplug
|
|
subsystem, instead of relying on cardmgr from pcmcia-cs to do so.
|
|
|
|
If unsure, say Y.
|
|
|
|
config PCMCIA_IOCTL
|
|
bool "PCMCIA control ioctl (obsolete)"
|
|
depends on PCMCIA && ARM && !SMP && !PREEMPT
|
|
default y
|
|
help
|
|
If you say Y here, the deprecated ioctl interface to the PCMCIA
|
|
subsystem will be built. It is needed by the deprecated pcmcia-cs
|
|
tools (cardmgr, cardctl) to function properly.
|
|
|
|
You should use the new pcmciautils package instead (see
|
|
<file:Documentation/Changes> for location and details).
|
|
|
|
This config option will most likely be removed from kernel 2.6.35,
|
|
the associated code from kernel 2.6.36.
|
|
|
|
As the PCMCIA ioctl is not locking safe, it depends on !SMP and
|
|
!PREEMPT.
|
|
|
|
If unsure, say N.
|
|
|
|
config CARDBUS
|
|
bool "32-bit CardBus support"
|
|
depends on PCI
|
|
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.
|
|
|
|
comment "PC-card bridges"
|
|
|
|
config YENTA
|
|
tristate "CardBus yenta-compatible bridge support"
|
|
depends on PCI
|
|
select CARDBUS if !EMBEDDED
|
|
select PCCARD_NONSTATIC if PCMCIA != n
|
|
---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 EMBEDDED
|
|
depends on YENTA
|
|
|
|
config YENTA_RICOH
|
|
default y
|
|
bool "Special initialization for Ricoh bridges" if EMBEDDED
|
|
depends on YENTA
|
|
|
|
config YENTA_TI
|
|
default y
|
|
bool "Special initialization for TI and EnE bridges" if EMBEDDED
|
|
depends on YENTA
|
|
|
|
config YENTA_ENE_TUNE
|
|
default y
|
|
bool "Auto-tune EnE bridges for CB cards" if EMBEDDED
|
|
depends on YENTA_TI && CARDBUS
|
|
|
|
config YENTA_TOSHIBA
|
|
default y
|
|
bool "Special initialization for Toshiba ToPIC bridges" if EMBEDDED
|
|
depends on YENTA
|
|
|
|
config PD6729
|
|
tristate "Cirrus PD6729 compatible bridge support"
|
|
depends on PCMCIA && PCI
|
|
select PCCARD_NONSTATIC
|
|
help
|
|
This provides support for the Cirrus PD6729 PCI-to-PCMCIA bridge
|
|
device, found in some older laptops and PCMCIA card readers.
|
|
|
|
config I82092
|
|
tristate "i82092 compatible bridge support"
|
|
depends on PCMCIA && PCI
|
|
select PCCARD_NONSTATIC
|
|
help
|
|
This provides support for the Intel I82092AA PCI-to-PCMCIA bridge device,
|
|
found in some older laptops and more commonly in evaluation boards for the
|
|
chip.
|
|
|
|
config I82365
|
|
tristate "i82365 compatible bridge support"
|
|
depends on PCMCIA && ISA
|
|
select PCCARD_NONSTATIC
|
|
help
|
|
Say Y here to include support for ISA-bus PCMCIA host bridges that
|
|
are register compatible with the Intel i82365. These are found on
|
|
older laptops and ISA-bus card readers for desktop systems. A
|
|
"bridge" is the hardware inside your computer that PCMCIA cards are
|
|
plugged into. If unsure, say N.
|
|
|
|
config TCIC
|
|
tristate "Databook TCIC host bridge support"
|
|
depends on PCMCIA && ISA
|
|
select PCCARD_NONSTATIC
|
|
help
|
|
Say Y here to include support for the Databook TCIC family of PCMCIA
|
|
host bridges. These are only found on a handful of old systems.
|
|
"Bridge" is the name used for the hardware inside your computer that
|
|
PCMCIA cards are plugged into. If unsure, say N.
|
|
|
|
config PCMCIA_M8XX
|
|
tristate "MPC8xx PCMCIA support"
|
|
depends on PCCARD && PPC && 8xx
|
|
select PCCARD_IODYN if PCMCIA != n
|
|
help
|
|
Say Y here to include support for PowerPC 8xx series PCMCIA
|
|
controller.
|
|
|
|
This driver is also available as a module called m8xx_pcmcia.
|
|
|
|
config PCMCIA_AU1X00
|
|
tristate "Au1x00 pcmcia support"
|
|
depends on SOC_AU1X00 && PCMCIA
|
|
|
|
config PCMCIA_ALCHEMY_DEVBOARD
|
|
tristate "Alchemy Db/Pb1xxx PCMCIA socket services"
|
|
depends on SOC_AU1X00 && PCMCIA
|
|
select 64BIT_PHYS_ADDR
|
|
help
|
|
Enable this driver of you want PCMCIA support on your Alchemy
|
|
Db1000, Db/Pb1100, Db/Pb1500, Db/Pb1550, Db/Pb1200 board.
|
|
NOT suitable for the PB1000!
|
|
|
|
This driver is also available as a module called db1xxx_ss.ko
|
|
|
|
config PCMCIA_XXS1500
|
|
tristate "MyCable XXS1500 PCMCIA socket support"
|
|
depends on PCMCIA && MIPS_XXS1500
|
|
select 64BIT_PHYS_ADDR
|
|
help
|
|
Support for the PCMCIA/CF socket interface on MyCable XXS1500
|
|
systems.
|
|
|
|
This driver is also available as a module called xxs1500_ss.ko
|
|
|
|
config PCMCIA_BCM63XX
|
|
tristate "bcm63xx pcmcia support"
|
|
depends on BCM63XX && PCMCIA
|
|
|
|
config PCMCIA_SOC_COMMON
|
|
tristate
|
|
|
|
config PCMCIA_SA1100
|
|
tristate "SA1100 support"
|
|
depends on ARM && ARCH_SA1100 && PCMCIA
|
|
select PCMCIA_SOC_COMMON
|
|
help
|
|
Say Y here to include support for SA11x0-based PCMCIA or CF
|
|
sockets, found on HP iPAQs, Yopy, and other StrongARM(R)/
|
|
Xscale(R) embedded machines.
|
|
|
|
This driver is also available as a module called sa1100_cs.
|
|
|
|
config PCMCIA_SA1111
|
|
tristate "SA1111 support"
|
|
depends on ARM && ARCH_SA1100 && SA1111 && PCMCIA
|
|
select PCMCIA_SOC_COMMON
|
|
help
|
|
Say Y here to include support for SA1111-based PCMCIA or CF
|
|
sockets, found on the Jornada 720, Graphicsmaster and other
|
|
StrongARM(R)/Xscale(R) embedded machines.
|
|
|
|
This driver is also available as a module called sa1111_cs.
|
|
|
|
config PCMCIA_PXA2XX
|
|
tristate "PXA2xx support"
|
|
depends on ARM && ARCH_PXA && PCMCIA
|
|
depends on (ARCH_LUBBOCK || MACH_MAINSTONE || PXA_SHARPSL \
|
|
|| MACH_ARMCORE || ARCH_PXA_PALM || TRIZEPS_PCMCIA \
|
|
|| ARCOM_PCMCIA || ARCH_PXA_ESERIES || MACH_STARGATE2)
|
|
select PCMCIA_SOC_COMMON
|
|
help
|
|
Say Y here to include support for the PXA2xx PCMCIA controller
|
|
|
|
config PCMCIA_DEBUG
|
|
bool "Enable debugging"
|
|
depends on (PCMCIA_SA1111 || PCMCIA_SA1100 || PCMCIA_PXA2XX)
|
|
help
|
|
Say Y here to enable debugging for the SoC PCMCIA layer.
|
|
You will need to choose the debugging level either via the
|
|
kernel command line, or module options depending whether
|
|
you build the drivers as modules.
|
|
|
|
The kernel command line options are:
|
|
sa11xx_core.pc_debug=N
|
|
pxa2xx_core.pc_debug=N
|
|
|
|
The module option is called pc_debug=N
|
|
|
|
In all the above examples, N is the debugging verbosity
|
|
level.
|
|
|
|
config PCMCIA_PROBE
|
|
bool
|
|
default y if ISA && !ARCH_SA1100 && !ARCH_CLPS711X && !PARISC
|
|
|
|
config M32R_PCC
|
|
bool "M32R PCMCIA I/F"
|
|
depends on M32R && CHIP_M32700 && PCMCIA
|
|
help
|
|
Say Y here to use the M32R PCMCIA controller.
|
|
|
|
config M32R_CFC
|
|
bool "M32R CF I/F Controller"
|
|
depends on M32R && (PLAT_USRV || PLAT_M32700UT || PLAT_MAPPI2 || PLAT_MAPPI3 || PLAT_OPSPUT)
|
|
help
|
|
Say Y here to use the M32R CompactFlash controller.
|
|
|
|
config M32R_CFC_NUM
|
|
int "M32R CF I/F number"
|
|
depends on M32R_CFC
|
|
default "1" if PLAT_USRV || PLAT_M32700UT || PLAT_MAPPI2 || PLAT_MAPPI3 || PLAT_OPSPUT
|
|
help
|
|
Set the number of M32R CF slots.
|
|
|
|
config PCMCIA_VRC4171
|
|
tristate "NEC VRC4171 Card Controllers support"
|
|
depends on CPU_VR41XX && ISA && PCMCIA
|
|
|
|
config PCMCIA_VRC4173
|
|
tristate "NEC VRC4173 CARDU support"
|
|
depends on CPU_VR41XX && PCI && PCMCIA
|
|
|
|
config OMAP_CF
|
|
tristate "OMAP CompactFlash Controller"
|
|
depends on PCMCIA && ARCH_OMAP16XX
|
|
help
|
|
Say Y here to support the CompactFlash controller on OMAP.
|
|
Note that this doesn't support "True IDE" mode.
|
|
|
|
config BFIN_CFPCMCIA
|
|
tristate "Blackfin CompactFlash PCMCIA Driver"
|
|
depends on PCMCIA && BLACKFIN
|
|
help
|
|
Say Y here to support the CompactFlash PCMCIA driver for Blackfin.
|
|
|
|
|
|
config AT91_CF
|
|
tristate "AT91 CompactFlash Controller"
|
|
depends on PCMCIA && ARCH_AT91RM9200
|
|
help
|
|
Say Y here to support the CompactFlash controller on AT91 chips.
|
|
Or choose M to compile the driver as a module named "at91_cf".
|
|
|
|
config ELECTRA_CF
|
|
tristate "Electra CompactFlash Controller"
|
|
depends on PCMCIA && PPC_PASEMI
|
|
help
|
|
Say Y here to support the CompactFlash controller on the
|
|
PA Semi Electra eval board.
|
|
|
|
config PCCARD_NONSTATIC
|
|
tristate
|
|
|
|
config PCCARD_IODYN
|
|
bool
|
|
|
|
endif # PCCARD
|