[2.6 patch] ARM: always select HAVE_IDE

Adrian Bunk bunk at kernel.org
Thu Apr 17 05:37:53 EDT 2008


On Wed, Apr 16, 2008 at 01:26:10AM +0200, Bartlomiej Zolnierkiewicz wrote:
> On Wednesday 16 April 2008, Russell King wrote:
> > On Wed, Apr 16, 2008 at 01:10:02AM +0300, Adrian Bunk wrote:
> > > On Tue, Apr 15, 2008 at 11:03:45PM +0100, Russell King wrote:
> > > > On Wed, Apr 16, 2008 at 12:52:23AM +0300, Adrian Bunk wrote:
> > > >...
> > > > So this is a only impacting ARM wrt. PCMCIA, and given that ARM supplies
> > > > an asm/ide.h, it's _entirely_ reasonable that if a platform has PCMCIA
> > > > then it supports IDE.
> > > > 
> > > > > We could simply always select HAVE_IDE on arm instead of manually 
> > > > > setting which platforms could possibly get IDE support (e.g. are there
> > > > > any boards with PCI slots for which HAVE_IDE is currently not 
> > > > > selected?).
> > > > 
> > > > You could, if there was a demand for it.  As no one has added that,
> > > > I conclude that its less common for people to stick an IDE controller
> > > > into a PCI backplane.
> > > 
> > > People can always enable code for stuff they don't use.
> > > 
> > > But instead of having 14 ARM platforms plus PCMCIA (which is offered 
> > > unconditionally on all ARM platforms...) select HAVE_IDE it's simpler
> > > to select it once for all ARM platforms.
> 
> Please send me a patch doing this, it should be safe for current IDE tree.
> 
> > That would seem logical, but Bart objects to that idea.
> 
> I don't remember the background but I think it was needed because of badly
> perplexed ide_init_hwif_ports() and friends in <asm/ide.h> vs <linux/ide.h>
> (almost all this stuff is gone in IDE tree for 2.6.26)...
> 
> Ok, I found the patch:
> 
> http://git.kernel.org/?p=linux/kernel/git/tglx/history.git;a=commitdiff;h=4b3b8ee5db374b76608537e061f2efd90e21179d
> 
> [ tglx's history tree since it is from May 2004. ]
> 
> > However, consider that we're gradually transitioning over to being
> > exclusively libata only.
> > 
> > > > In fact, there are only three classes of ARM platforms which have PCI
> > > > selected but not HAVE_IDE - IOP13xx, IXP2000, and Orion.  I suspect
> > > > the only reason they don't select it because they now use the ATA code
> > > > rather than the old IDE code - that's certainly true of Orion.
> > > 
> > > The libata options are offered unconditionally on all platforms...
> > 
> > It wasn't *my* choice to restrict IDE on ARM.  See Bart for that
> > decision.
> 
> It could be that I did the poor job of explaining things back then
> but I also didn't like the fact that I needed to restrict the IDE
> choice on ARM - the change in question was _necessary_ to start
> converting IDE drivers to become real, independent, modular host
> drivers and as a preparation for adding proper warm-plug support.

Any objections against the patch below?

> Thanks,
> Bart

cu
Adrian


<--  snip  -->


It's plain wrong for PCMCIA to select HAVE_IDE that implies e.g. the
availability of an asm/ide.h

It turns out this was done for ARM, and we can simply always select 
HAVE_IDE on ARM instead of manually tracking which platforms might 
possible have an IDE controller directly or indirectly.

Signed-off-by: Adrian Bunk <bunk at kernel.org>

---

 arch/arm/Kconfig       |   15 +--------------
 drivers/pcmcia/Kconfig |    1 -
 2 files changed, 1 insertion(+), 15 deletions(-)

40d8b054ee277ee1d66e4379621e26d18926ed9d diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4039a13..6808136 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -8,6 +8,7 @@ mainmenu "Linux Kernel Configuration"
 config ARM
 	bool
 	default y
+	select HAVE_IDE
 	select RTC_LIB
 	select SYS_SUPPORTS_APM_EMULATION
 	select HAVE_OPROFILE
@@ -223,7 +224,6 @@ config ARCH_CLPS7500
 	select TIMER_ACORN
 	select ISA
 	select NO_IOPORT
-	select HAVE_IDE
 	help
 	  Support for the Cirrus Logic PS7500FE system-on-a-chip.
 
@@ -236,7 +236,6 @@ config ARCH_CO285
 	bool "Co-EBSA285"
 	select FOOTBRIDGE
 	select FOOTBRIDGE_ADDIN
-	select HAVE_IDE
 	help
 	  Support for Intel's EBSA285 companion chip.
 
@@ -261,7 +260,6 @@ config ARCH_EP93XX
 config ARCH_FOOTBRIDGE
 	bool "FootBridge"
 	select FOOTBRIDGE
-	select HAVE_IDE
 	help
 	  Support for systems based on the DC21285 companion chip
 	  ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.
@@ -300,7 +298,6 @@ config ARCH_IOP32X
 	depends on MMU
 	select PLAT_IOP
 	select PCI
-	select HAVE_IDE
 	help
 	  Support for Intel's 80219 and IOP32X (XScale) family of
 	  processors.
@@ -310,14 +307,12 @@ config ARCH_IOP33X
 	depends on MMU
 	select PLAT_IOP
 	select PCI
-	select HAVE_IDE
 	help
 	  Support for Intel's IOP33X (XScale) family of processors.
 
 config ARCH_IXP23XX
  	bool "IXP23XX-based"
 	depends on MMU
-	select HAVE_IDE
  	select PCI
 	help
 	  Support for Intel's IXP23xx (XScale) family of processors.
@@ -335,14 +330,12 @@ config ARCH_IXP4XX
 	select GENERIC_GPIO
 	select GENERIC_TIME
 	select GENERIC_CLOCKEVENTS
-	select HAVE_IDE
 	help
 	  Support for Intel's IXP4XX (XScale) family of processors.
 
 config ARCH_L7200
 	bool "LinkUp-L7200"
 	select FIQ
-	select HAVE_IDE
 	help
 	  Say Y here if you intend to run this kernel on a LinkUp Systems
 	  L7200 Software Development Board which uses an ARM720T processor.
@@ -397,7 +390,6 @@ config ARCH_PXA
 	depends on MMU
 	select ARCH_MTD_XIP
 	select GENERIC_GPIO
-	select HAVE_IDE
 	select HAVE_GPIO_LIB
 	select GENERIC_TIME
 	select GENERIC_CLOCKEVENTS
@@ -413,7 +405,6 @@ config ARCH_RPC
 	select ARCH_MAY_HAVE_PC_FDC
 	select ISA_DMA_API
 	select NO_IOPORT
-	select HAVE_IDE
 	help
 	  On the Acorn Risc-PC, Linux can support the internal IDE disk and
 	  CD-ROM interface, serial and parallel port, and the floppy drive.
@@ -425,14 +416,12 @@ config ARCH_SA1100
 	select ARCH_MTD_XIP
 	select GENERIC_GPIO
 	select GENERIC_TIME
-	select HAVE_IDE
 	help
 	  Support for StrongARM 11x0 based boards.
 
 config ARCH_S3C2410
 	bool "Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443"
 	select GENERIC_GPIO
-	select HAVE_IDE
 	help
 	  Samsung S3C2410X CPU based systems, such as the Simtec Electronics
 	  BAST (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or
@@ -440,7 +429,6 @@ config ARCH_S3C2410
 
 config ARCH_SHARK
 	bool "Shark"
-	select HAVE_IDE
 	select ISA
 	select ISA_DMA
 	select PCI
@@ -450,7 +438,6 @@ config ARCH_SHARK
 
 config ARCH_LH7A40X
 	bool "Sharp LH7A40X"
-	select HAVE_IDE
 	help
 	  Say Y here for systems based on one of the Sharp LH7A40X
 	  System on a Chip processors.  These CPUs include an ARM922T
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
index 8b22281..519b4ff 100644
--- a/drivers/pcmcia/Kconfig
+++ b/drivers/pcmcia/Kconfig
@@ -38,7 +38,6 @@ config PCMCIA_DEBUG
 config PCMCIA
 	tristate "16-bit PCMCIA support"
 	select CRC32
-	select HAVE_IDE
 	default y
 	---help---
 	   This option enables support for 16-bit PCMCIA cards. Most older




More information about the linux-pcmcia mailing list