Skip to content

Commit b3c26ea

Browse files
EthanNelson-MooreDominik Brodowski
authored andcommitted
pcmcia: remove obsolete host controller drivers
PCMCIA is almost completely obsolete (the last computers supporting it natively were from ~2009), and the general consensus [1] seems to be that support for it should be gradually removed from the kernel. In 2023, an initial step of removing all the PCMCIA char drivers was taken in commit 9b12f05 ("char: pcmcia: remove all the drivers"), and that has not been reverted, so it seems logical to continue this process by removing more low-hanging fruit. These host controller drivers have had no meaningful changes since their status was discussed in 2022 [2], and are unlikely to have any remaining users. Remove them and a couple references to them in comments. The i82365 and tcic drivers are for ISA-attached host controllers, which are even less likely to be used nowadays than ones on other buses. The i82092 driver has almost certainly not been used in over 20 years. It was broken by a null pointer dereference since the dawn of Git history (2.6.12-rc2 in 2005) until someone fixed it in 2021 in commit e39cdac ("pcmcia: i82092: fix a null pointer dereference bug"). From their dmesg log [3], it is clear they were testing in an emulated environment and not on real hardware. i82365.h is used by drivers other than i82365 and is therefore retained. [1] https://lore.kernel.org/all/[email protected]/ [2] https://lore.kernel.org/all/[email protected]/ [3] https://lore.kernel.org/all/[email protected]/ Signed-off-by: Ethan Nelson-Moore <[email protected]> Acked-by: Dave Hansen <[email protected]> # for x86 Signed-off-by: Dominik Brodowski <[email protected]>
1 parent bfcde62 commit b3c26ea

11 files changed

Lines changed: 2 additions & 3161 deletions

File tree

arch/mips/configs/mtx1_defconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ CONFIG_PCI=y
1515
CONFIG_PCCARD=m
1616
CONFIG_YENTA=m
1717
CONFIG_PD6729=m
18-
CONFIG_I82092=m
1918
CONFIG_MODULES=y
2019
CONFIG_MODULE_UNLOAD=y
2120
CONFIG_MODVERSIONS=y

arch/powerpc/configs/ppc6xx_defconfig

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,6 @@ CONFIG_PCI_MSI=y
7272
CONFIG_PCCARD=y
7373
CONFIG_YENTA=y
7474
CONFIG_PD6729=m
75-
CONFIG_I82092=m
76-
CONFIG_I82365=m
7775
CONFIG_ADVANCED_OPTIONS=y
7876
CONFIG_NET=y
7977
CONFIG_PACKET=y

arch/x86/kernel/resource.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ void arch_remove_reservations(struct resource *avail)
6262
/*
6363
* Trim out BIOS area (high 2MB) and E820 regions. We do not remove
6464
* the low 1MB unconditionally, as this area is needed for some ISA
65-
* cards requiring a memory range, e.g. the i82365 PCMCIA controller.
65+
* cards requiring a memory range.
6666
*/
6767
if (avail->flags & IORESOURCE_MEM) {
6868
resource_clip(avail, BIOS_ROM_BASE, BIOS_ROM_END);

drivers/pci/quirks.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,9 +1296,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C597_0, quirk_vt
12961296

12971297
/*
12981298
* CardBus controllers have a legacy base address that enables them to
1299-
* respond as i82365 pcmcia controllers. We don't want them to do this
1300-
* even if the Linux CardBus driver is not loaded, because the Linux i82365
1301-
* driver does not (and should not) handle CardBus.
1299+
* respond as i82365 PCMCIA controllers. We don't want them to do this.
13021300
*/
13031301
static void quirk_cardbus_legacy(struct pci_dev *dev)
13041302
{

drivers/pcmcia/Kconfig

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -119,36 +119,6 @@ config PD6729
119119
This provides support for the Cirrus PD6729 PCI-to-PCMCIA bridge
120120
device, found in some older laptops and PCMCIA card readers.
121121

122-
config I82092
123-
tristate "i82092 compatible bridge support"
124-
depends on PCMCIA && PCI && HAS_IOPORT
125-
select PCCARD_NONSTATIC
126-
help
127-
This provides support for the Intel I82092AA PCI-to-PCMCIA bridge device,
128-
found in some older laptops and more commonly in evaluation boards for the
129-
chip.
130-
131-
config I82365
132-
tristate "i82365 compatible bridge support"
133-
depends on PCMCIA && ISA
134-
select PCCARD_NONSTATIC
135-
help
136-
Say Y here to include support for ISA-bus PCMCIA host bridges that
137-
are register compatible with the Intel i82365. These are found on
138-
older laptops and ISA-bus card readers for desktop systems. A
139-
"bridge" is the hardware inside your computer that PCMCIA cards are
140-
plugged into. If unsure, say N.
141-
142-
config TCIC
143-
tristate "Databook TCIC host bridge support"
144-
depends on PCMCIA && ISA
145-
select PCCARD_NONSTATIC
146-
help
147-
Say Y here to include support for the Databook TCIC family of PCMCIA
148-
host bridges. These are only found on a handful of old systems.
149-
"Bridge" is the name used for the hardware inside your computer that
150-
PCMCIA cards are plugged into. If unsure, say N.
151-
152122
config PCMCIA_ALCHEMY_DEVBOARD
153123
tristate "Alchemy Db/Pb1xxx PCMCIA socket services"
154124
depends on MIPS_DB1XXX && PCMCIA

drivers/pcmcia/Makefile

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ obj-$(CONFIG_PCCARD) += pcmcia_rsrc.o
2020
obj-$(CONFIG_YENTA) += yenta_socket.o
2121

2222
obj-$(CONFIG_PD6729) += pd6729.o
23-
obj-$(CONFIG_I82365) += i82365.o
24-
obj-$(CONFIG_I82092) += i82092.o
25-
obj-$(CONFIG_TCIC) += tcic.o
2623
obj-$(CONFIG_PCMCIA_SOC_COMMON) += soc_common.o
2724
obj-$(CONFIG_PCMCIA_SA11XX_BASE) += sa11xx_base.o
2825
obj-$(CONFIG_PCMCIA_SA1100) += sa1100_cs.o

0 commit comments

Comments
 (0)