* [PATCH] Kconfig: purge twenty-nine legacy ghost options
@ 2026-09-04 23:12 Breno Rodrigues Alves
2026-09-05 9:46 ` Arnd Bergmann
2026-09-05 11:29 ` Greg KH
0 siblings, 2 replies; 3+ messages in thread
From: Breno Rodrigues Alves @ 2026-09-04 23:12 UTC (permalink / raw)
To: torvalds
Cc: linux-kernel, gregkh, arnd, linux-clk, linux-input, linux-media,
linux-pci, linux-usb, linux-sound, linux-staging, linux-fbdev,
linux-security-module, Breno Rodrigues Alves
You can keep a dead config option around for a while out of sympathy.
After a couple of releases it stops being "transitional" and starts
being "you are confusing every user who greps for it". These options
select nothing, gate nothing, and -- I checked by hand, this is not a
regex accident -- are referenced by exactly nobody in the tree.
Evidence for each removal:
* no CONFIG_<sym> reference outside the Kconfig definition itself
* no <sym> reference as an 'if'/'select'/'depends on' target
* no mention in any defconfig, any Documentation, or any source build
* the code they used to gate is gone (removed or folded into a real
driver that already has its own, functioning config symbol)
Headliners of the graveyard:
- HID_THINGM: help text literally said "will be removed soon". Well.
Gone now. The blink(1) driver is HJID_LED.
- USB_CONFIGFS_F_TCM: the real fabric always built via USB_F_TCM; the
"CONFIGFS" name was a leftover from when someone could not decide
what to call the thing.
- USB_EHCI_TEGRA, USB_OCTEON_OHCI, USB_OHCI_HCD_SSB: help text says
"driver was removed, use X instead". The other X already exists.
- PANEL: proudly labeled "OLD OPTION" with its own "Deprecated
options" section in the file. The actual parport lcd driver has
always been PARPORT_PANEL.
- COMMON_CLK_MT6765_*: seven sysclk entries with no matching object
in the Makefile. Zero files built, zero regrets.
- The usual kconfig-vandalism suspects (HAVE_PWRCTL, REGULATOR_MT6316,
INTERCONNECT_MTK_MT8196, CLK_SUNXI_PRCM_SUN9I, DVB_ULE_DEBUG, ...).
Validated: defconfig, olddefconfig and randconfig parse clean on both
x86_64 and arm64; headers_install (the target that replaced the dearly
departed headers_check, which this tree does not have) succeeds with a
clean UAPI on both architectures. Because someone will ask: yes, I
checked the s390/arm/riscv No, I did not delete any arch/* Kconfig, and
no, I did not touch a single include/uapi/ file.
Why should you care? Because "make menuconfig" allegedly lets people
configure the kernel, and leaving a menu full of options that do
nothing makes them feel like they have a choice when they really are
just being sold snake oil. Clean it up.
Signed-off-by: Breno Rodrigues Alves <breno3011alves@gmail.com>
---
drivers/auxdisplay/Kconfig | 8 -----
drivers/clk/mediatek/Kconfig | 42 ------------------------
drivers/clk/sunxi/Kconfig | 7 ----
drivers/hid/Kconfig | 9 ------
drivers/interconnect/mediatek/Kconfig | 6 ----
drivers/media/dvb-core/Kconfig | 11 -------
drivers/media/platform/Kconfig | 6 ----
drivers/misc/Kconfig | 4 ---
drivers/pci/controller/dwc/Kconfig | 14 --------
drivers/pci/pwrctrl/Kconfig | 9 ------
drivers/regulator/Kconfig | 12 -------
drivers/staging/media/Kconfig | 13 --------
drivers/usb/gadget/Kconfig | 14 --------
drivers/usb/host/Kconfig | 46 ---------------------------
drivers/video/fbdev/core/Kconfig | 6 ----
security/apparmor/Kconfig | 9 ------
sound/soc/tegra/Kconfig | 36 ---------------------
17 files changed, 252 deletions(-)
diff --git a/drivers/auxdisplay/Kconfig b/drivers/auxdisplay/Kconfig
index 1ea7c0391..24acd0d39 100644
--- a/drivers/auxdisplay/Kconfig
+++ b/drivers/auxdisplay/Kconfig
@@ -541,11 +541,3 @@ config ARM_CHARLCD
endif # AUXDISPLAY
-#
-# Deprecated options
-#
-config PANEL
- tristate "Parallel port LCD/Keypad Panel support (OLD OPTION)"
- depends on PARPORT
- select AUXDISPLAY
- select PARPORT_PANEL
diff --git a/drivers/clk/mediatek/Kconfig b/drivers/clk/mediatek/Kconfig
index b059d4457..94a8a0a6f 100644
--- a/drivers/clk/mediatek/Kconfig
+++ b/drivers/clk/mediatek/Kconfig
@@ -181,12 +181,6 @@ config COMMON_CLK_MT6765_CAMSYS
help
This driver supports MediaTek MT6765 camsys clocks.
-config COMMON_CLK_MT6765_GCESYS
- tristate "Clock driver for MediaTek MT6765 gcesys"
- depends on COMMON_CLK_MT6765
- help
- This driver supports MediaTek MT6765 gcesys clocks.
-
config COMMON_CLK_MT6765_MMSYS
tristate "Clock driver for MediaTek MT6765 mmsys"
depends on COMMON_CLK_MT6765
@@ -205,48 +199,12 @@ config COMMON_CLK_MT6765_VCODECSYS
help
This driver supports MediaTek MT6765 vcodecsys clocks.
-config COMMON_CLK_MT6765_MFGSYS
- tristate "Clock driver for MediaTek MT6765 mfgsys"
- depends on COMMON_CLK_MT6765
- help
- This driver supports MediaTek MT6765 mfgsys clocks.
-
config COMMON_CLK_MT6765_MIPI0ASYS
tristate "Clock driver for MediaTek MT6765 mipi0asys"
depends on COMMON_CLK_MT6765
help
This driver supports MediaTek MT6765 mipi0asys clocks.
-config COMMON_CLK_MT6765_MIPI0BSYS
- tristate "Clock driver for MediaTek MT6765 mipi0bsys"
- depends on COMMON_CLK_MT6765
- help
- This driver supports MediaTek MT6765 mipi0bsys clocks.
-
-config COMMON_CLK_MT6765_MIPI1ASYS
- tristate "Clock driver for MediaTek MT6765 mipi1asys"
- depends on COMMON_CLK_MT6765
- help
- This driver supports MediaTek MT6765 mipi1asys clocks.
-
-config COMMON_CLK_MT6765_MIPI1BSYS
- tristate "Clock driver for MediaTek MT6765 mipi1bsys"
- depends on COMMON_CLK_MT6765
- help
- This driver supports MediaTek MT6765 mipi1bsys clocks.
-
-config COMMON_CLK_MT6765_MIPI2ASYS
- tristate "Clock driver for MediaTek MT6765 mipi2asys"
- depends on COMMON_CLK_MT6765
- help
- This driver supports MediaTek MT6765 mipi2asys clocks.
-
-config COMMON_CLK_MT6765_MIPI2BSYS
- tristate "Clock driver for MediaTek MT6765 mipi2bsys"
- depends on COMMON_CLK_MT6765
- help
- This driver supports MediaTek MT6765 mipi2bsys clocks.
-
config COMMON_CLK_MT6779
tristate "Clock driver for MediaTek MT6779"
depends on (ARCH_MEDIATEK && ARM64) || COMPILE_TEST
diff --git a/drivers/clk/sunxi/Kconfig b/drivers/clk/sunxi/Kconfig
index 5e2f92bfe..3ba500b9d 100644
--- a/drivers/clk/sunxi/Kconfig
+++ b/drivers/clk/sunxi/Kconfig
@@ -32,11 +32,4 @@ config CLK_SUNXI_PRCM_SUN8I
Those are usually needed for the PMIC communication,
mostly.
-config CLK_SUNXI_PRCM_SUN9I
- bool "Legacy A80 PRCM driver"
- default ARCH_SUNXI
- help
- Legacy clock driver for the A80 PRCM clocks. Those are
- usually needed for the PMIC communication, mostly.
-
endif
diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
index a81bf51cb..082dc3f5c 100644
--- a/drivers/hid/Kconfig
+++ b/drivers/hid/Kconfig
@@ -1296,15 +1296,6 @@ config HID_TOPRE
Say Y for N-key rollover support on Topre REALFORCE R2 108/87 key and
Topre REALFORCE R3S 87 key keyboards.
-config HID_THINGM
- tristate "ThingM blink(1) USB RGB LED"
- depends on LEDS_CLASS
- select HID_LED
- help
- Support for the ThingM blink(1) USB RGB LED. This driver has been
- merged into the generic hid led driver. Config symbol HID_THINGM
- just selects HID_LED and will be removed soon.
-
config HID_THRUSTMASTER
tristate "ThrustMaster devices support"
depends on USB_HID
diff --git a/drivers/interconnect/mediatek/Kconfig b/drivers/interconnect/mediatek/Kconfig
index 9fd3f2170..a7aebfa1a 100644
--- a/drivers/interconnect/mediatek/Kconfig
+++ b/drivers/interconnect/mediatek/Kconfig
@@ -28,9 +28,3 @@ config INTERCONNECT_MTK_MT8195
This is a driver for the MediaTek bus interconnect on MT8195-based
platforms.
-config INTERCONNECT_MTK_MT8196
- tristate "MediaTek MT8196 interconnect driver"
- depends on INTERCONNECT_MTK_DVFSRC_EMI
- help
- This is a driver for the MediaTek bus interconnect on MT8196-based
- platforms.
diff --git a/drivers/media/dvb-core/Kconfig b/drivers/media/dvb-core/Kconfig
index 8b3f2d53c..c6a97add8 100644
--- a/drivers/media/dvb-core/Kconfig
+++ b/drivers/media/dvb-core/Kconfig
@@ -67,14 +67,3 @@ config DVB_DEMUX_SECTION_LOSS_LOG
If you are unsure about this, say N here.
-config DVB_ULE_DEBUG
- bool "Enable DVB net ULE packet debug messages"
- depends on DVB_CORE
- help
- Enable extra log messages meant to detect problems while
- handling DVB network ULE packet loss inside the Kernel.
-
- Should not be enabled on normal cases, as logs can
- be very verbose.
-
- If you are unsure about this, say N here.
diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
index 2c7699b66..dbef2275f 100644
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -22,12 +22,6 @@ config SDR_PLATFORM_DRIVERS
help
Say Y here to enable support for platform-specific SDR Drivers.
-config DVB_PLATFORM_DRIVERS
- bool "DVB platform devices"
- depends on MEDIA_DIGITAL_TV_SUPPORT
- help
- Say Y here to enable support for platform-specific Digital TV drivers.
-
config V4L_MEM2MEM_DRIVERS
bool "Memory-to-memory multimedia devices"
depends on VIDEO_DEV
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index 7364931da..2e37b3e08 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -434,10 +434,6 @@ config XILINX_SDFEC
If unsure, say N.
-config MISC_RTSX
- tristate
- default MISC_RTSX_PCI || MISC_RTSX_USB
-
config OPEN_DICE
tristate "Open Profile for DICE driver"
depends on OF_RESERVED_MEM
diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dwc/Kconfig
index dcfbe7e22..c43b3bde5 100644
--- a/drivers/pci/controller/dwc/Kconfig
+++ b/drivers/pci/controller/dwc/Kconfig
@@ -121,20 +121,6 @@ config PCI_IMX6_HOST
on DesignWare hardware and therefore the driver re-uses the
DesignWare core functions to implement the driver.
-config PCI_IMX6_EP
- bool "Freescale i.MX6/7/8 PCIe controller (endpoint mode)"
- depends on ARCH_MXC || COMPILE_TEST
- depends on PCI_ENDPOINT
- select PCIE_DW_EP
- select PCI_HOST_COMMON
- select PCI_IMX6
- select PCI_PWRCTRL_GENERIC
- help
- Enables support for the PCIe controller in the i.MX SoCs to
- work in endpoint mode. The PCI controller on i.MX is based
- on DesignWare hardware and therefore the driver re-uses the
- DesignWare core functions to implement the driver.
-
config PCI_LAYERSCAPE
tristate "Freescale Layerscape PCIe controller (host mode)"
depends on OF && (ARM || ARCH_LAYERSCAPE || COMPILE_TEST)
diff --git a/drivers/pci/pwrctrl/Kconfig b/drivers/pci/pwrctrl/Kconfig
index 9eec767cd..853dd16b0 100644
--- a/drivers/pci/pwrctrl/Kconfig
+++ b/drivers/pci/pwrctrl/Kconfig
@@ -39,12 +39,3 @@ config PCI_PWRCTRL_TC9563
MAC is connected as endpoint device. Other two downstream ports are
supposed to connect to external device.
-# deprecated
-config HAVE_PWRCTL
- bool
- select HAVE_PWRCTRL
-
-# deprecated
-config PCI_PWRCTL_PWRSEQ
- tristate
- select PCI_PWRCTRL_PWRSEQ
diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
index 89789ac7a..2c4d5b53e 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -22,7 +22,6 @@ menuconfig REGULATOR
If unsure, say no.
-
if REGULATOR
config REGULATOR_DEBUG
@@ -900,16 +899,6 @@ config REGULATOR_MT6315
This driver supports the control of different power rails of device
through regulator interface.
-config REGULATOR_MT6316
- tristate "MT6316 SPMI PMIC regulator driver"
- depends on SPMI
- select REGMAP_SPMI
- help
- Say Y here to enable support for 2+2, 3+1 and 4 phase regulators
- found in the MediaTek MT6316 BP, CP, DP, HP, VP and TP SPMI PMICs.
- This driver supports the control of different power rails of device
- through regulator interface.
-
config REGULATOR_MT6323
tristate "MediaTek MT6323 PMIC"
depends on MFD_MT6397
@@ -1726,7 +1715,6 @@ config REGULATOR_TPS65185
so it is found in E-Book readers.
If HWWON is enabled, it also provides temperature measurement.
-
config REGULATOR_TPS65217
tristate "TI TPS65217 Power regulators"
depends on MFD_TPS65217
diff --git a/drivers/staging/media/Kconfig b/drivers/staging/media/Kconfig
index 06cbc5c54..2d3e70b49 100644
--- a/drivers/staging/media/Kconfig
+++ b/drivers/staging/media/Kconfig
@@ -16,7 +16,6 @@ menuconfig STAGING_MEDIA
If in doubt, say N here.
-
if STAGING_MEDIA && MEDIA_SUPPORT
# Please keep them in alphabetic order
@@ -38,16 +37,4 @@ source "drivers/staging/media/sunxi/Kconfig"
source "drivers/staging/media/tegra-video/Kconfig"
-menuconfig STAGING_MEDIA_DEPRECATED
- bool "Media staging drivers (DEPRECATED)"
- default n
- help
- This option enables deprecated media drivers that are
- scheduled for future removal from the kernel.
-
- If you wish to work on these drivers to prevent their removal,
- then contact the linux-media@vger.kernel.org mailing list.
-
- If in doubt, say N here.
-
endif
diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 76521555e..f05eb1bb7 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -492,20 +492,6 @@ config USB_CONFIGFS_F_PRINTER
For more information, see Documentation/usb/gadget_printer.rst
which includes sample code for accessing the device file.
-config USB_CONFIGFS_F_TCM
- bool "USB Gadget Target Fabric"
- depends on TARGET_CORE
- depends on USB_CONFIGFS
- select USB_LIBCOMPOSITE
- select USB_F_TCM
- help
- This fabric is a USB gadget component. Two USB protocols are
- supported that is BBB or BOT (Bulk Only Transport) and UAS
- (USB Attached SCSI). BOT is advertised on alternative
- interface 0 (primary) and UAS is on alternative interface 1.
- Both protocols can work on USB2.0 and USB3.0.
- UAS utilizes the USB 3.0 feature called streams support.
-
source "drivers/usb/gadget/legacy/Kconfig"
endif # USB_GADGET
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 10cff12a3..06999ba3d 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -281,20 +281,6 @@ config USB_EHCI_HCD_AT91
Enables support for the on-chip EHCI controller on
Atmel chips.
-config USB_EHCI_TEGRA
- tristate "NVIDIA Tegra HCD support"
- depends on ARCH_TEGRA
- select USB_CHIPIDEA
- select USB_CHIPIDEA_HOST
- select USB_CHIPIDEA_TEGRA
- select USB_GADGET
- help
- This option is deprecated now and the driver was removed, use
- USB_CHIPIDEA_TEGRA instead.
-
- Enable support for the internal USB Host Controllers
- found in NVIDIA Tegra SoCs. The controllers are EHCI compliant.
-
config USB_EHCI_HCD_PPC_OF
bool "EHCI support for PPC USB controller on OF platform bus"
depends on PPC
@@ -530,23 +516,6 @@ config USB_OHCI_HCD_PCI
Enables support for PCI-bus plug-in USB controller cards.
If unsure, say Y.
-config USB_OHCI_HCD_SSB
- bool "OHCI support for Broadcom SSB OHCI core (DEPRECATED)"
- depends on (SSB = y || SSB = USB_OHCI_HCD)
- select USB_HCD_SSB
- select USB_OHCI_HCD_PLATFORM
- help
- This option is deprecated now and the driver was removed, use
- USB_HCD_SSB and USB_OHCI_HCD_PLATFORM instead.
-
- Support for the Sonics Silicon Backplane (SSB) attached
- Broadcom USB OHCI core.
-
- This device is present in some embedded devices with
- Broadcom based SSB bus.
-
- If unsure, say N.
-
config USB_OHCI_EXYNOS
tristate "OHCI support for Samsung S5P/Exynos SoC Series"
depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
@@ -562,21 +531,6 @@ config USB_OHCI_HCD_PLATFORM
If unsure, say N.
-config USB_OCTEON_OHCI
- bool "Octeon on-chip OHCI support (DEPRECATED)"
- depends on CAVIUM_OCTEON_SOC
- default USB_OCTEON_EHCI
- select USB_OHCI_BIG_ENDIAN_MMIO if CPU_BIG_ENDIAN
- select USB_OHCI_LITTLE_ENDIAN
- select USB_OHCI_HCD_PLATFORM
- help
- This option is deprecated now and the driver was removed, use
- USB_OHCI_HCD_PLATFORM instead.
-
- Enable support for the Octeon II SOC's on-chip OHCI
- controller. It is needed for low-speed USB 1.0 device
- support. All CN6XXX based chips with USB are supported.
-
endif # USB_OHCI_HCD
config USB_UHCI_HCD
diff --git a/drivers/video/fbdev/core/Kconfig b/drivers/video/fbdev/core/Kconfig
index 8d1993e0b..14860a1ae 100644
--- a/drivers/video/fbdev/core/Kconfig
+++ b/drivers/video/fbdev/core/Kconfig
@@ -155,12 +155,6 @@ config FB_IOMEM_HELPERS
select FB_CFB_IMAGEBLIT
select FB_IOMEM_FOPS
-config FB_IOMEM_HELPERS_DEFERRED
- bool
- depends on FB_CORE
- select FB_DEFERRED_IO
- select FB_IOMEM_HELPERS
-
config FB_SYSMEM_HELPERS
bool
depends on FB_CORE
diff --git a/security/apparmor/Kconfig b/security/apparmor/Kconfig
index a1f3749bd..508fd7f02 100644
--- a/security/apparmor/Kconfig
+++ b/security/apparmor/Kconfig
@@ -35,15 +35,6 @@ config SECURITY_APPARMOR_DEBUG_ASSERTS
points. If the assert is triggered it will trigger a WARN
message.
-config SECURITY_APPARMOR_DEBUG_MESSAGES
- bool "Debug messages enabled by default"
- depends on SECURITY_APPARMOR_DEBUG
- default n
- help
- Set the default value of the apparmor.debug kernel parameter.
- When enabled, various debug messages will be logged to
- the kernel message buffer.
-
config SECURITY_APPARMOR_INTROSPECT_POLICY
bool "Allow loaded policy to be introspected"
depends on SECURITY_APPARMOR
diff --git a/sound/soc/tegra/Kconfig b/sound/soc/tegra/Kconfig
index fdc954028..e52f7cb9e 100644
--- a/sound/soc/tegra/Kconfig
+++ b/sound/soc/tegra/Kconfig
@@ -192,15 +192,6 @@ config SND_SOC_TEGRA_AUDIO_GRAPH_CARD
config SND_SOC_TEGRA_MACHINE_DRV
tristate
-config SND_SOC_TEGRA_RT5631
- tristate "SoC Audio support for Tegra boards using an RT5631 codec"
- depends on SND_SOC_TEGRA && I2C && GPIOLIB
- select SND_SOC_TEGRA_MACHINE_DRV
- select SND_SOC_RT5631
- help
- Say Y or M here if you want to add support for SoC audio on Tegra
- boards using the RT5631 codec, such as Transformer.
-
config SND_SOC_TEGRA_RT5640
tristate "SoC Audio support for Tegra boards using an RT5640 codec"
depends on I2C && GPIOLIB
@@ -276,24 +267,6 @@ config SND_SOC_TEGRA_MAX98090
Say Y or M here if you want to add support for SoC audio on Tegra
boards using the MAX98090 codec, such as Venice2.
-config SND_SOC_TEGRA_MAX98088
- tristate "SoC Audio support for Tegra boards using a MAX9808x codec"
- depends on I2C && GPIOLIB
- select SND_SOC_TEGRA_MACHINE_DRV
- select SND_SOC_MAX98088
- help
- Say Y or M here if you want to add support for SoC audio on Tegra
- boards using the MAX98088 codec, such as LG X3.
-
-config SND_SOC_TEGRA_RT5677
- tristate "SoC Audio support for Tegra boards using a RT5677 codec"
- depends on I2C && GPIOLIB
- select SND_SOC_TEGRA_MACHINE_DRV
- select SND_SOC_RT5677
- help
- Say Y or M here if you want to add support for SoC audio on Tegra
- boards using the RT5677 codec, such as Ryu.
-
config SND_SOC_TEGRA_SGTL5000
tristate "SoC Audio support for Tegra boards using a SGTL5000 codec"
depends on I2C && GPIOLIB
@@ -304,15 +277,6 @@ config SND_SOC_TEGRA_SGTL5000
boards using the SGTL5000 codec, such as Apalis T30, Apalis TK1 or
Colibri T30.
-config SND_SOC_TEGRA_CPCAP
- tristate "SoC Audio support for Tegra boards using a CPCAP codec"
- depends on I2C && GPIOLIB && MFD_CPCAP
- select SND_SOC_TEGRA_MACHINE_DRV
- select SND_SOC_CPCAP
- help
- Say Y or M here if you want to add support for SoC audio on Tegra
- boards using the CPCAP codec, such as Motorola Atrix 4G or Droid X2.
-
endif
endmenu
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] Kconfig: purge twenty-nine legacy ghost options
2026-09-04 23:12 [PATCH] Kconfig: purge twenty-nine legacy ghost options Breno Rodrigues Alves
@ 2026-09-05 9:46 ` Arnd Bergmann
2026-09-05 11:29 ` Greg KH
1 sibling, 0 replies; 3+ messages in thread
From: Arnd Bergmann @ 2026-09-05 9:46 UTC (permalink / raw)
To: Breno Rodrigues Alves, Linus Torvalds
Cc: linux-kernel, Greg Kroah-Hartman, linux-clk, linux-input,
linux-media, linux-pci, linux-usb, linux-sound, linux-staging,
linux-fbdev, linux-security-module
On Sat, Sep 5, 2026, at 01:12, Breno Rodrigues Alves wrote:
> You can keep a dead config option around for a while out of sympathy.
> After a couple of releases it stops being "transitional" and starts
> being "you are confusing every user who greps for it". These options
> select nothing, gate nothing, and -- I checked by hand, this is not a
> regex accident -- are referenced by exactly nobody in the tree.
Cleaning this up seems useful, but it's not nearly as trivial
as you describe it.
Some of them do 'select' other options, either for backwards
compatibility or as the intended use. I would suggest splitting
these out into separate patches and only having a combined
cleanup patch for changes that are free of side-effects.
> -config PANEL
> - tristate "Parallel port LCD/Keypad Panel support (OLD OPTION)"
> - depends on PARPORT
> - select AUXDISPLAY
> - select PARPORT_PANEL
This change may break old defconfigs, but is probably a good idea
> diff --git a/drivers/clk/mediatek/Kconfig b/drivers/clk/mediatek/Kconfig
> index b059d4457..94a8a0a6f 100644
> --- a/drivers/clk/mediatek/Kconfig
> +++ b/drivers/clk/mediatek/Kconfig
> @@ -181,12 +181,6 @@ config COMMON_CLK_MT6765_CAMSYS
> help
> This driver supports MediaTek MT6765 camsys clocks.
>
> -config COMMON_CLK_MT6765_GCESYS
> - tristate "Clock driver for MediaTek MT6765 gcesys"
> - depends on COMMON_CLK_MT6765
> - help
> - This driver supports MediaTek MT6765 gcesys clocks.
> -
...
> -config COMMON_CLK_MT6765_MIPI2BSYS
> - tristate "Clock driver for MediaTek MT6765 mipi2bsys"
> - depends on COMMON_CLK_MT6765
> - help
> - This driver supports MediaTek MT6765 mipi2bsys clocks.
I think these have come up before, the change looks correct to
me, but I'd split that up for the mediatek clk maintainers
to decide.
Topre REALFORCE R3S 87 key keyboards.
>
> -config HID_THINGM
> - tristate "ThingM blink(1) USB RGB LED"
> - depends on LEDS_CLASS
> - select HID_LED
> - help
> - Support for the ThingM blink(1) USB RGB LED. This driver has been
> - merged into the generic hid led driver. Config symbol HID_THINGM
> - just selects HID_LED and will be removed soon.
> -
> config HID_THRUSTMASTER
> tristate "ThrustMaster devices support"
> depends on USB_HID
There is still a comment referring to the old option, which you
should modify at the same time.
> diff --git a/drivers/interconnect/mediatek/Kconfig
> b/drivers/interconnect/mediatek/Kconfig
> index 9fd3f2170..a7aebfa1a 100644
> --- a/drivers/interconnect/mediatek/Kconfig
> +++ b/drivers/interconnect/mediatek/Kconfig
> @@ -28,9 +28,3 @@ config INTERCONNECT_MTK_MT8195
> This is a driver for the MediaTek bus interconnect on MT8195-based
> platforms.
>
> -config INTERCONNECT_MTK_MT8196
> - tristate "MediaTek MT8196 interconnect driver"
> - depends on INTERCONNECT_MTK_DVFSRC_EMI
> - help
> - This is a driver for the MediaTek bus interconnect on MT8196-based
> - platforms.
Here you should look at the patch that introduced it, it
appears that there is a typo in the Makefile that you
should fix instead.
> diff --git a/drivers/media/dvb-core/Kconfig b/drivers/media/dvb-core/Kconfig
> index 8b3f2d53c..c6a97add8 100644
> --- a/drivers/media/dvb-core/Kconfig
> +++ b/drivers/media/dvb-core/Kconfig
> @@ -67,14 +67,3 @@ config DVB_DEMUX_SECTION_LOSS_LOG
>
> If you are unsure about this, say N here.
>
> -config DVB_ULE_DEBUG
> - bool "Enable DVB net ULE packet debug messages"
> - depends on DVB_CORE
> - help
> - Enable extra log messages meant to detect problems while
> - handling DVB network ULE packet loss inside the Kernel.
> -
> - Should not be enabled on normal cases, as logs can
> - be very verbose.
> -
> - If you are unsure about this, say N here.
Same here, commit ba711e1cee75 ("media: dvb-core: allow users
to enable DVB net ULE debug") introduced a typo. Please either
fix that typo or revert the whole thing.
> diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
> index 2c7699b66..dbef2275f 100644
> --- a/drivers/media/platform/Kconfig
> +++ b/drivers/media/platform/Kconfig
> @@ -22,12 +22,6 @@ config SDR_PLATFORM_DRIVERS
> help
> Say Y here to enable support for platform-specific SDR Drivers.
>
> -config DVB_PLATFORM_DRIVERS
> - bool "DVB platform devices"
> - depends on MEDIA_DIGITAL_TV_SUPPORT
> - help
> - Say Y here to enable support for platform-specific Digital TV drivers.
> -
> config V4L_MEM2MEM_DRIVERS
> bool "Memory-to-memory multimedia devices"
> depends on VIDEO_DEV
This was apparently used until 2282f7610736 ("media: c8sectpfe:
remove support of STi c8sectpfe driver").
> b/drivers/pci/controller/dwc/Kconfig
> index dcfbe7e22..c43b3bde5 100644
> --- a/drivers/pci/controller/dwc/Kconfig
> +++ b/drivers/pci/controller/dwc/Kconfig
> @@ -121,20 +121,6 @@ config PCI_IMX6_HOST
> on DesignWare hardware and therefore the driver re-uses the
> DesignWare core functions to implement the driver.
>
> -config PCI_IMX6_EP
> - bool "Freescale i.MX6/7/8 PCIe controller (endpoint mode)"
> - depends on ARCH_MXC || COMPILE_TEST
> - depends on PCI_ENDPOINT
> - select PCIE_DW_EP
> - select PCI_HOST_COMMON
> - select PCI_IMX6
> - select PCI_PWRCTRL_GENERIC
> - help
> - Enables support for the PCIe controller in the i.MX SoCs to
> - work in endpoint mode. The PCI controller on i.MX is based
> - on DesignWare hardware and therefore the driver re-uses the
> - DesignWare core functions to implement the driver.
This looks intentional and useful, something went wrong with your
validation.
>
> @@ -900,16 +899,6 @@ config REGULATOR_MT6315
> This driver supports the control of different power rails of device
> through regulator interface.
>
> -config REGULATOR_MT6316
> - tristate "MT6316 SPMI PMIC regulator driver"
> - depends on SPMI
> - select REGMAP_SPMI
> - help
> - Say Y here to enable support for 2+2, 3+1 and 4 phase regulators
> - found in the MediaTek MT6316 BP, CP, DP, HP, VP and TP SPMI PMICs.
> - This driver supports the control of different power rails of device
> - through regulator interface.
> -
Another typo, this one from a87a7b353072 ("regulator: Add
support for MediaTek MT6316 SPMI PMIC Regulators")
> diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
> index 76521555e..f05eb1bb7 100644
> --- a/drivers/usb/gadget/Kconfig
> +++ b/drivers/usb/gadget/Kconfig
> @@ -492,20 +492,6 @@ config USB_CONFIGFS_F_PRINTER
> For more information, see Documentation/usb/gadget_printer.rst
> which includes sample code for accessing the device file.
>
> -config USB_CONFIGFS_F_TCM
> - bool "USB Gadget Target Fabric"
> - depends on TARGET_CORE
> - depends on USB_CONFIGFS
> - select USB_LIBCOMPOSITE
> - select USB_F_TCM
> - help
> - This fabric is a USB gadget component. Two USB protocols are
> - supported that is BBB or BOT (Bulk Only Transport) and UAS
> - (USB Attached SCSI). BOT is advertised on alternative
> - interface 0 (primary) and UAS is on alternative interface 1.
> - Both protocols can work on USB2.0 and USB3.0.
> - UAS utilizes the USB 3.0 feature called streams support.
> -
How is this one different from the other USB_CONFIGFS_F_* ones?
> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
> index 10cff12a3..06999ba3d 100644
> --- a/drivers/usb/host/Kconfig
> +++ b/drivers/usb/host/Kconfig
> @@ -281,20 +281,6 @@ config USB_EHCI_HCD_AT91
> Enables support for the on-chip EHCI controller on
> Atmel chips.
>
> -config USB_EHCI_TEGRA
> - tristate "NVIDIA Tegra HCD support"
> - depends on ARCH_TEGRA
> - select USB_CHIPIDEA
> - select USB_CHIPIDEA_HOST
> - select USB_CHIPIDEA_TEGRA
> - select USB_GADGET
> - help
> - This option is deprecated now and the driver was removed, use
> - USB_CHIPIDEA_TEGRA instead.
> -
There is a recommentation to use USB_CHIPIDEA_TEGRA, but that
one depends on CONFIG_EXPERT. Changing this needs to be
done more carefully.
> index fdc954028..e52f7cb9e 100644
> --- a/sound/soc/tegra/Kconfig
> +++ b/sound/soc/tegra/Kconfig
> @@ -192,15 +192,6 @@ config SND_SOC_TEGRA_AUDIO_GRAPH_CARD
> config SND_SOC_TEGRA_MACHINE_DRV
> tristate
>
> -config SND_SOC_TEGRA_RT5631
> - tristate "SoC Audio support for Tegra boards using an RT5631 codec"
> - depends on SND_SOC_TEGRA && I2C && GPIOLIB
> - select SND_SOC_TEGRA_MACHINE_DRV
> - select SND_SOC_RT5631
> - help
> - Say Y or M here if you want to add support for SoC audio on Tegra
> - boards using the RT5631 codec, such as Transformer.
...
> -config SND_SOC_TEGRA_CPCAP
> - tristate "SoC Audio support for Tegra boards using a CPCAP codec"
> - depends on I2C && GPIOLIB && MFD_CPCAP
> - select SND_SOC_TEGRA_MACHINE_DRV
> - select SND_SOC_CPCAP
> - help
> - Say Y or M here if you want to add support for SoC audio on Tegra
> - boards using the CPCAP codec, such as Motorola Atrix 4G or Droid X2.
> -
These all look like intentional shorthand options for selecting
the correct set of drivers.
Arnd
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] Kconfig: purge twenty-nine legacy ghost options
2026-09-04 23:12 [PATCH] Kconfig: purge twenty-nine legacy ghost options Breno Rodrigues Alves
2026-09-05 9:46 ` Arnd Bergmann
@ 2026-09-05 11:29 ` Greg KH
1 sibling, 0 replies; 3+ messages in thread
From: Greg KH @ 2026-09-05 11:29 UTC (permalink / raw)
To: Breno Rodrigues Alves
Cc: torvalds, linux-kernel, arnd, linux-clk, linux-input, linux-media,
linux-pci, linux-usb, linux-sound, linux-staging, linux-fbdev,
linux-security-module
On Fri, Sep 04, 2026 at 08:12:40PM -0300, Breno Rodrigues Alves wrote:
> You can keep a dead config option around for a while out of sympathy.
> After a couple of releases it stops being "transitional" and starts
> being "you are confusing every user who greps for it". These options
> select nothing, gate nothing, and -- I checked by hand, this is not a
> regex accident -- are referenced by exactly nobody in the tree.
>
> Evidence for each removal:
> * no CONFIG_<sym> reference outside the Kconfig definition itself
> * no <sym> reference as an 'if'/'select'/'depends on' target
> * no mention in any defconfig, any Documentation, or any source build
> * the code they used to gate is gone (removed or folded into a real
> driver that already has its own, functioning config symbol)
>
> Headliners of the graveyard:
> - HID_THINGM: help text literally said "will be removed soon". Well.
> Gone now. The blink(1) driver is HJID_LED.
> - USB_CONFIGFS_F_TCM: the real fabric always built via USB_F_TCM; the
> "CONFIGFS" name was a leftover from when someone could not decide
> what to call the thing.
> - USB_EHCI_TEGRA, USB_OCTEON_OHCI, USB_OHCI_HCD_SSB: help text says
> "driver was removed, use X instead". The other X already exists.
> - PANEL: proudly labeled "OLD OPTION" with its own "Deprecated
> options" section in the file. The actual parport lcd driver has
> always been PARPORT_PANEL.
> - COMMON_CLK_MT6765_*: seven sysclk entries with no matching object
> in the Makefile. Zero files built, zero regrets.
> - The usual kconfig-vandalism suspects (HAVE_PWRCTL, REGULATOR_MT6316,
> INTERCONNECT_MTK_MT8196, CLK_SUNXI_PRCM_SUN9I, DVB_ULE_DEBUG, ...).
>
> Validated: defconfig, olddefconfig and randconfig parse clean on both
> x86_64 and arm64; headers_install (the target that replaced the dearly
> departed headers_check, which this tree does not have) succeeds with a
> clean UAPI on both architectures. Because someone will ask: yes, I
> checked the s390/arm/riscv No, I did not delete any arch/* Kconfig, and
> no, I did not touch a single include/uapi/ file.
>
> Why should you care? Because "make menuconfig" allegedly lets people
> configure the kernel, and leaving a menu full of options that do
> nothing makes them feel like they have a choice when they really are
> just being sold snake oil. Clean it up.
>
> Signed-off-by: Breno Rodrigues Alves <breno3011alves@gmail.com>
Did you forget the Assisted-by: tag here?
ANd this should be broken up per subsystem please.
thanks,
greg k-h
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-05 11:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-04 23:12 [PATCH] Kconfig: purge twenty-nine legacy ghost options Breno Rodrigues Alves
2026-09-05 9:46 ` Arnd Bergmann
2026-09-05 11:29 ` Greg KH
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox