Commit b3c26ea8 authored by Ethan Nelson-Moore's avatar Ethan Nelson-Moore Committed by Dominik Brodowski
Browse files

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 9b12f050 ("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
e39cdacf ("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/c5b39544-a4fb-4796-a046-0b9be9853787@app.fastmail.com/
[2] https://lore.kernel.org/all/Y07d7rMvd5++85BJ@owl.dominikbrodowski.net/
[3] https://lore.kernel.org/all/1624345891-4215-1-git-send-email-zheyuma97@gmail.com/



Signed-off-by: default avatarEthan Nelson-Moore <enelsonmoore@gmail.com>
Acked-by: Dave Hansen <dave.hansen@linux.intel.com> # for x86
Signed-off-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
parent bfcde624
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -15,7 +15,6 @@ CONFIG_PCI=y
CONFIG_PCCARD=m
CONFIG_YENTA=m
CONFIG_PD6729=m
CONFIG_I82092=m
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODVERSIONS=y
+0 −2
Original line number Diff line number Diff line
@@ -72,8 +72,6 @@ CONFIG_PCI_MSI=y
CONFIG_PCCARD=y
CONFIG_YENTA=y
CONFIG_PD6729=m
CONFIG_I82092=m
CONFIG_I82365=m
CONFIG_ADVANCED_OPTIONS=y
CONFIG_NET=y
CONFIG_PACKET=y
+1 −1
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ void arch_remove_reservations(struct resource *avail)
	/*
	 * Trim out BIOS area (high 2MB) and E820 regions. We do not remove
	 * the low 1MB unconditionally, as this area is needed for some ISA
	 * cards requiring a memory range, e.g. the i82365 PCMCIA controller.
	 * cards requiring a memory range.
	 */
	if (avail->flags & IORESOURCE_MEM) {
		resource_clip(avail, BIOS_ROM_BASE, BIOS_ROM_END);
+1 −3
Original line number Diff line number Diff line
@@ -1296,9 +1296,7 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C597_0, quirk_vt

/*
 * CardBus controllers have a legacy base address that enables them to
 * respond as i82365 pcmcia controllers.  We don't want them to do this
 * even if the Linux CardBus driver is not loaded, because the Linux i82365
 * driver does not (and should not) handle CardBus.
 * respond as i82365 PCMCIA controllers.  We don't want them to do this.
 */
static void quirk_cardbus_legacy(struct pci_dev *dev)
{
+0 −30
Original line number Diff line number Diff line
@@ -119,36 +119,6 @@ config PD6729
	  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 && HAS_IOPORT
	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_ALCHEMY_DEVBOARD
	tristate "Alchemy Db/Pb1xxx PCMCIA socket services"
	depends on MIPS_DB1XXX && PCMCIA
Loading