[2.6 patch] select ATA_SFF

From: Adrian Bunk
Date: Mon Apr 21 2008 - 17:33:29 EST


Making ATA_SFF a user-visible option with the drivers needing it
depending on it caused the following problems:
- people lose their driver when accidentally disabling it
- people not requiring it needlessly enable it

Fortunately, we don't have to bother the user with this option at all
since we can simply select it when it's required.

Signed-off-by: Adrian Bunk <bunk@xxxxxxxxxx>

---

This patch has been sent on:
- 13 Apr 2008

drivers/ata/Kconfig | 90 ++++++++++++++++++++++++++++++++++----------
1 file changed, 71 insertions(+), 19 deletions(-)

c845cb43fdd7d61130fb838132be961cae104bfc diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 292aa9a..7b8c80b 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -74,28 +74,12 @@ config SATA_FSL
If unsure, say N.

config ATA_SFF
- bool "ATA SFF support"
- default y
- help
- This option adds support for ATA controllers with SFF
- compliant or similar programming interface.
-
- SFF is the legacy IDE interface that has been around since
- the dawn of time. Almost all PATA controllers have an
- SFF interface. Many SATA controllers have an SFF interface
- when configured into a legacy compatibility mode.
-
- For users with exclusively modern controllers like AHCI,
- Silicon Image 3124, or Marvell 6440, you may choose to
- disable this uneeded SFF support.
-
- If unsure, say Y.
-
-if ATA_SFF
+ bool

config SATA_SVW
tristate "ServerWorks Frodo / Apple K2 SATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for Broadcom/Serverworks/Apple K2
SATA support.
@@ -105,6 +89,7 @@ config SATA_SVW
config ATA_PIIX
tristate "Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for ICH5/6/7/8 Serial ATA
and support for PATA on the Intel ESB/ICH/PIIX3/PIIX4 series
@@ -115,6 +100,7 @@ config ATA_PIIX
config SATA_MV
tristate "Marvell SATA support (HIGHLY EXPERIMENTAL)"
depends on EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the Marvell Serial ATA family.
Currently supports 88SX[56]0[48][01] chips.
@@ -124,6 +110,7 @@ config SATA_MV
config SATA_NV
tristate "NVIDIA SATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for NVIDIA Serial ATA.

@@ -132,6 +119,7 @@ config SATA_NV
config PDC_ADMA
tristate "Pacific Digital ADMA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for Pacific Digital ADMA controllers

@@ -140,6 +128,7 @@ config PDC_ADMA
config SATA_QSTOR
tristate "Pacific Digital SATA QStor support"
depends on PCI
+ select ATA_SFF
help
This option enables support for Pacific Digital Serial ATA QStor.

@@ -148,6 +137,7 @@ config SATA_QSTOR
config SATA_PROMISE
tristate "Promise SATA TX2/TX4 support"
depends on PCI
+ select ATA_SFF
help
This option enables support for Promise Serial ATA TX2/TX4.

@@ -156,6 +146,7 @@ config SATA_PROMISE
config SATA_SX4
tristate "Promise SATA SX4 support"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for Promise Serial ATA SX4.

@@ -164,6 +155,7 @@ config SATA_SX4
config SATA_SIL
tristate "Silicon Image SATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for Silicon Image Serial ATA.

@@ -173,6 +165,7 @@ config SATA_SIS
tristate "SiS 964/965/966/180 SATA support"
depends on PCI
select PATA_SIS
+ select ATA_SFF
help
This option enables support for SiS Serial ATA on
SiS 964/965/966/180 and Parallel ATA on SiS 180.
@@ -183,6 +176,7 @@ config SATA_SIS
config SATA_ULI
tristate "ULi Electronics SATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for ULi Electronics SATA.

@@ -191,6 +185,7 @@ config SATA_ULI
config SATA_VIA
tristate "VIA SATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for VIA Serial ATA.

@@ -199,6 +194,7 @@ config SATA_VIA
config SATA_VITESSE
tristate "VITESSE VSC-7174 / INTEL 31244 SATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for Vitesse VSC7174 and Intel 31244 Serial ATA.

@@ -207,12 +203,14 @@ config SATA_VITESSE
config SATA_INIC162X
tristate "Initio 162x SATA support (HIGHLY EXPERIMENTAL)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for Initio 162x Serial ATA.

config PATA_ACPI
tristate "ACPI firmware driver for PATA"
depends on ATA_ACPI
+ select ATA_SFF
help
This option enables an ACPI method driver which drives
motherboard PATA controller interfaces through the ACPI
@@ -222,6 +220,7 @@ config PATA_ACPI
config PATA_ALI
tristate "ALi PATA support (Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the ALi ATA interfaces
found on the many ALi chipsets.
@@ -231,6 +230,7 @@ config PATA_ALI
config PATA_AMD
tristate "AMD/NVidia PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for the AMD and NVidia PATA
interfaces found on the chipsets for Athlon/Athlon64.
@@ -240,6 +240,7 @@ config PATA_AMD
config PATA_ARTOP
tristate "ARTOP 6210/6260 PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for ARTOP PATA controllers.

@@ -248,6 +249,7 @@ config PATA_ARTOP
config PATA_AT32
tristate "Atmel AVR32 PATA support (Experimental)"
depends on AVR32 && PLATFORM_AT32AP && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the IDE devices on the
Atmel AT32AP platform.
@@ -257,6 +259,7 @@ config PATA_AT32
config PATA_ATIIXP
tristate "ATI PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for the ATI ATA interfaces
found on the many ATI chipsets.
@@ -266,6 +269,7 @@ config PATA_ATIIXP
config PATA_CMD640_PCI
tristate "CMD640 PCI PATA support (Very Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the CMD640 PCI IDE
interface chip. Only the primary channel is currently
@@ -276,6 +280,7 @@ config PATA_CMD640_PCI
config PATA_CMD64X
tristate "CMD64x PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for the CMD64x series chips
except for the CMD640.
@@ -285,6 +290,7 @@ config PATA_CMD64X
config PATA_CS5520
tristate "CS5510/5520 PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for the Cyrix 5510/5520
companion chip used with the MediaGX/Geode processor family.
@@ -294,6 +300,7 @@ config PATA_CS5520
config PATA_CS5530
tristate "CS5530 PATA support (Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the Cyrix/NatSemi/AMD CS5530
companion chip used with the MediaGX/Geode processor family.
@@ -303,6 +310,7 @@ config PATA_CS5530
config PATA_CS5535
tristate "CS5535 PATA support (Experimental)"
depends on PCI && X86 && !X86_64 && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the NatSemi/AMD CS5535
companion chip used with the Geode processor family.
@@ -312,6 +320,7 @@ config PATA_CS5535
config PATA_CS5536
tristate "CS5536 PATA support (Experimental)"
depends on PCI && X86 && !X86_64 && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the AMD CS5536
companion chip used with the Geode LX processor family.
@@ -321,6 +330,7 @@ config PATA_CS5536
config PATA_CYPRESS
tristate "Cypress CY82C693 PATA support (Very Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the Cypress/Contaq CY82C693
chipset found in some Alpha systems
@@ -330,6 +340,7 @@ config PATA_CYPRESS
config PATA_EFAR
tristate "EFAR SLC90E66 support"
depends on PCI
+ select ATA_SFF
help
This option enables support for the EFAR SLC90E66
IDE controller found on some older machines.
@@ -339,6 +350,7 @@ config PATA_EFAR
config ATA_GENERIC
tristate "Generic ATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for generic BIOS configured
ATA controllers via the new ATA layer
@@ -348,6 +360,7 @@ config ATA_GENERIC
config PATA_HPT366
tristate "HPT 366/368 PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for the HPT 366 and 368
PATA controllers via the new ATA layer.
@@ -357,6 +370,7 @@ config PATA_HPT366
config PATA_HPT37X
tristate "HPT 370/370A/371/372/374/302 PATA support (Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the majority of the later HPT
PATA controllers via the new ATA layer.
@@ -366,6 +380,7 @@ config PATA_HPT37X
config PATA_HPT3X2N
tristate "HPT 372N/302N PATA support (Very Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the N variant HPT PATA
controllers via the new ATA layer
@@ -375,6 +390,7 @@ config PATA_HPT3X2N
config PATA_HPT3X3
tristate "HPT 343/363 PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for the HPT 343/363
PATA controllers via the new ATA layer
@@ -384,6 +400,7 @@ config PATA_HPT3X3
config PATA_HPT3X3_DMA
bool "HPT 343/363 DMA support (Experimental)"
depends on PATA_HPT3X3
+ select ATA_SFF
help
This option enables DMA support for the HPT343/363
controllers. Enable with care as there are still some
@@ -392,6 +409,7 @@ config PATA_HPT3X3_DMA
config PATA_ISAPNP
tristate "ISA Plug and Play PATA support (Experimental)"
depends on EXPERIMENTAL && ISAPNP
+ select ATA_SFF
help
This option enables support for ISA plug & play ATA
controllers such as those found on old soundcards.
@@ -401,6 +419,7 @@ config PATA_ISAPNP
config PATA_IT821X
tristate "IT8211/2 PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for the ITE 8211 and 8212
PATA controllers via the new ATA layer, including RAID
@@ -411,6 +430,7 @@ config PATA_IT821X
config PATA_IT8213
tristate "IT8213 PATA support (Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the ITE 821 PATA
controllers via the new ATA layer.
@@ -420,6 +440,7 @@ config PATA_IT8213
config PATA_JMICRON
tristate "JMicron PATA support"
depends on PCI
+ select ATA_SFF
help
Enable support for the JMicron IDE controller, via the new
ATA layer.
@@ -429,6 +450,7 @@ config PATA_JMICRON
config PATA_LEGACY
tristate "Legacy ISA PATA support (Experimental)"
depends on ISA && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for ISA/VLB bus legacy PATA
ports and allows them to be accessed via the new ATA layer.
@@ -438,6 +460,7 @@ config PATA_LEGACY
config PATA_TRIFLEX
tristate "Compaq Triflex PATA support"
depends on PCI
+ select ATA_SFF
help
Enable support for the Compaq 'Triflex' IDE controller as found
on many Compaq Pentium-Pro systems, via the new ATA layer.
@@ -447,6 +470,7 @@ config PATA_TRIFLEX
config PATA_MARVELL
tristate "Marvell PATA support via legacy mode"
depends on PCI
+ select ATA_SFF
help
This option enables limited support for the Marvell 88SE6145 ATA
controller.
@@ -456,6 +480,7 @@ config PATA_MARVELL
config PATA_MPC52xx
tristate "Freescale MPC52xx SoC internal IDE"
depends on PPC_MPC52xx
+ select ATA_SFF
help
This option enables support for integrated IDE controller
of the Freescale MPC52xx SoC.
@@ -465,6 +490,7 @@ config PATA_MPC52xx
config PATA_MPIIX
tristate "Intel PATA MPIIX support"
depends on PCI
+ select ATA_SFF
help
This option enables support for MPIIX PATA support.

@@ -473,6 +499,7 @@ config PATA_MPIIX
config PATA_OLDPIIX
tristate "Intel PATA old PIIX support"
depends on PCI
+ select ATA_SFF
help
This option enables support for early PIIX PATA support.

@@ -481,6 +508,7 @@ config PATA_OLDPIIX
config PATA_NETCELL
tristate "NETCELL Revolution RAID support"
depends on PCI
+ select ATA_SFF
help
This option enables support for the Netcell Revolution RAID
PATA controller.
@@ -490,6 +518,7 @@ config PATA_NETCELL
config PATA_NINJA32
tristate "Ninja32/Delkin Cardbus ATA support (Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the Ninja32, Delkin and
possibly other brands of Cardbus ATA adapter
@@ -499,6 +528,7 @@ config PATA_NINJA32
config PATA_NS87410
tristate "Nat Semi NS87410 PATA support (Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the National Semiconductor
NS87410 PCI-IDE controller.
@@ -508,6 +538,7 @@ config PATA_NS87410
config PATA_NS87415
tristate "Nat Semi NS87415 PATA support (Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the National Semiconductor
NS87415 PCI-IDE controller.
@@ -517,6 +548,7 @@ config PATA_NS87415
config PATA_OPTI
tristate "OPTI621/6215 PATA support (Very Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables full PIO support for the early Opti ATA
controllers found on some old motherboards.
@@ -526,6 +558,7 @@ config PATA_OPTI
config PATA_OPTIDMA
tristate "OPTI FireStar PATA support (Very Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables DMA/PIO support for the later OPTi
controllers found on some old motherboards and in some
@@ -536,6 +569,7 @@ config PATA_OPTIDMA
config PATA_PCMCIA
tristate "PCMCIA PATA support"
depends on PCMCIA
+ select ATA_SFF
help
This option enables support for PCMCIA ATA interfaces, including
compact flash card adapters via the new ATA layer.
@@ -545,6 +579,7 @@ config PATA_PCMCIA
config PATA_PDC_OLD
tristate "Older Promise PATA controller support (Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the Promise 20246, 20262, 20263,
20265 and 20267 adapters.
@@ -554,12 +589,14 @@ config PATA_PDC_OLD
config PATA_QDI
tristate "QDI VLB PATA support"
depends on ISA
+ select ATA_SFF
help
Support for QDI 6500 and 6580 PATA controllers on VESA local bus.

config PATA_RADISYS
tristate "RADISYS 82600 PATA support (Very Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the RADISYS 82600
PATA controllers via the new ATA layer
@@ -569,6 +606,7 @@ config PATA_RADISYS
config PATA_RB500
tristate "RouterBoard 500 PATA CompactFlash support"
depends on MIKROTIK_RB500
+ select ATA_SFF
help
This option enables support for the RouterBoard 500
PATA CompactFlash controller.
@@ -578,6 +616,7 @@ config PATA_RB500
config PATA_RZ1000
tristate "PC Tech RZ1000 PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables basic support for the PC Tech RZ1000/1
PATA controllers via the new ATA layer
@@ -587,6 +626,7 @@ config PATA_RZ1000
config PATA_SC1200
tristate "SC1200 PATA support (Very Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for the NatSemi/AMD SC1200 SoC
companion chip used with the Geode processor family.
@@ -596,6 +636,7 @@ config PATA_SC1200
config PATA_SERVERWORKS
tristate "SERVERWORKS OSB4/CSB5/CSB6/HT1000 PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for the Serverworks OSB4/CSB5/CSB6 and
HT1000 PATA controllers, via the new ATA layer.
@@ -605,6 +646,7 @@ config PATA_SERVERWORKS
config PATA_PDC2027X
tristate "Promise PATA 2027x support"
depends on PCI
+ select ATA_SFF
help
This option enables support for Promise PATA pdc20268 to pdc20277 host adapters.

@@ -613,6 +655,7 @@ config PATA_PDC2027X
config PATA_SIL680
tristate "CMD / Silicon Image 680 PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for CMD / Silicon Image 680 PATA.

@@ -621,6 +664,7 @@ config PATA_SIL680
config PATA_SIS
tristate "SiS PATA support (Experimental)"
depends on PCI && EXPERIMENTAL
+ select ATA_SFF
help
This option enables support for SiS PATA controllers

@@ -629,6 +673,7 @@ config PATA_SIS
config PATA_VIA
tristate "VIA PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for the VIA PATA interfaces
found on the many VIA chipsets.
@@ -638,6 +683,7 @@ config PATA_VIA
config PATA_WINBOND
tristate "Winbond SL82C105 PATA support"
depends on PCI
+ select ATA_SFF
help
This option enables support for SL82C105 PATA devices found in the
Netwinder and some other systems
@@ -647,6 +693,7 @@ config PATA_WINBOND
config PATA_WINBOND_VLB
tristate "Winbond W83759A VLB PATA support (Experimental)"
depends on ISA && EXPERIMENTAL
+ select ATA_SFF
help
Support for the Winbond W83759A controller on Vesa Local Bus
systems.
@@ -654,6 +701,7 @@ config PATA_WINBOND_VLB
config PATA_PLATFORM
tristate "Generic platform device PATA support"
depends on EMBEDDED || ARCH_RPC || PPC
+ select ATA_SFF
help
This option enables support for generic directly connected ATA
devices commonly found on embedded systems.
@@ -663,6 +711,7 @@ config PATA_PLATFORM
config PATA_OF_PLATFORM
tristate "OpenFirmware platform device PATA support"
depends on PATA_PLATFORM && PPC_OF
+ select ATA_SFF
help
This option enables support for generic directly connected ATA
devices commonly found on embedded systems with OpenFirmware
@@ -673,6 +722,7 @@ config PATA_OF_PLATFORM
config PATA_ICSIDE
tristate "Acorn ICS PATA support"
depends on ARM && ARCH_ACORN
+ select ATA_SFF
help
On Acorn systems, say Y here if you wish to use the ICS PATA
interface card. This is not required for ICS partition support.
@@ -681,6 +731,7 @@ config PATA_ICSIDE
config PATA_IXP4XX_CF
tristate "IXP4XX Compact Flash support"
depends on ARCH_IXP4XX
+ select ATA_SFF
help
This option enables support for a Compact Flash connected on
the ixp4xx expansion bus. This driver had been written for
@@ -691,6 +742,7 @@ config PATA_IXP4XX_CF
config PATA_SCC
tristate "Toshiba's Cell Reference Set IDE support"
depends on PCI && PPC_CELLEB
+ select ATA_SFF
help
This option enables support for the built-in IDE controller on
Toshiba Cell Reference Board.
@@ -700,11 +752,11 @@ config PATA_SCC
config PATA_BF54X
tristate "Blackfin 54x ATAPI support"
depends on BF542 || BF548 || BF549
+ select ATA_SFF
help
This option enables support for the built-in ATAPI controller on
Blackfin 54x family chips.

If unsure, say N.

-endif # ATA_SFF
endif # ATA

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/