[2.6 patch] ARM: always select HAVE_IDE

From: Adrian Bunk
Date: Thu Apr 17 2008 - 06:04:15 EST


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@xxxxxxxxxx>

---

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

--
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/