On Thu, Feb 07, 2008 at 04:05:58PM +0000, Russell King - ARM Linux wrote:
> On Thu, Feb 07, 2008 at 04:09:34PM +0100, Marcin Juszkiewicz wrote:
> > Dnia Thursday, 7 of February 2008, Sam Ravnborg napisał:
> > > On Thu, Feb 07, 2008 at 07:58:24AM -0500, Christoph Hellwig wrote:
> > 
> > > > Any chance to make arm finally use drivers/Kconfig?  It's a bit silly
> > > > that arm still is crapping around while even s390 uses it.
> > 
> > > rmk said that it should be easy to check the amount of work needed to
> > > do so. But I have not had time to look into it yet - hopefully someone
> > > in ARM land could fix it.
> > 
> > I looked at it and 'arch/arm/Kconfig' does not source few entries: 
> 
> diff -u arch/arm/Kconfig drivers/Kconfig shows the situation.  This is
> why I insist that new entries to arch/arm/Kconfig should be in the same
> order as drivers/Kconfig.
> 
> > Including of 'drivers/mtd' depends on "ALIGNMENT_TRAP || !CPU_CP15_MMU".
> 
> It's this which is the main issue.
> 
> > Including of 'drivers/ide' depends on "PCMCIA || ARCH_CLPS7500 || 
> > ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX || ARCH_L7200 || 
> > ARCH_LH7A40X || ARCH_PXA || ARCH_RPC || ARCH_S3C2410 || ARCH_SA1100 || 
> > ARCH_SHARK || FOOTBRIDGE || ARCH_IXP23XX" but 'drivers/ata' (which can be 
> > used instead on PCMCIA enabled platforms) does not depend on such set.
> 
> IDE people insisted that we _will_ have that silly conditional for IDE.
> I personally do not want it and would be happy to see it go - but I
> don't have the authority to do that.  Take this one up with Bart.

Both situations are trivially fixable by introducing
HAVE_IDE and HAVE_MTD.
See attached patch.

My quick scan told me that only S390 and UM did not
support IDE neither MTD.
ARM is the only one where IDE and MTD support is conditional
and the rest you select them unconditionally.

Does this look acceptable?

        Sam

diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 01b10ab..46049fa 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig
@@ -5,6 +5,8 @@
 config ALPHA
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
        help
          The Alpha is a 64-bit general-purpose processor designed and
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index e19e774..58c7eb4 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -23,6 +23,16 @@ config ARM
 config SYS_SUPPORTS_APM_EMULATION
        bool
 
+# if PCMCIA is selected then we need IDE
+config ARM_PCMCIA
+       depends on PCMCIA
+       select HAVE_IDE
+
+# select MTD except in a few corner configuration cases
+config ARM_MTD
+       depends on ALIGNMENT_TRAP || !CPU_CP15_MMU
+       select HAVE_MTD
+
 config GENERIC_GPIO
        bool
        default n
@@ -219,6 +229,7 @@ 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.
 
@@ -231,6 +242,7 @@ config ARCH_CO285
        bool "Co-EBSA285"
        select FOOTBRIDGE
        select FOOTBRIDGE_ADDIN
+       select HAVE_IDE
        help
          Support for Intel's EBSA285 companion chip.
 
@@ -255,6 +267,7 @@ 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.
@@ -293,6 +306,7 @@ 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.
@@ -302,12 +316,14 @@ 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.
@@ -325,12 +341,14 @@ 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.
@@ -385,6 +403,7 @@ 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
@@ -400,6 +419,7 @@ 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.
@@ -411,12 +431,14 @@ 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
@@ -424,6 +446,7 @@ config ARCH_S3C2410
 
 config ARCH_SHARK
        bool "Shark"
+       select HAVE_IDE
        select ISA
        select ISA_DMA
        select PCI
@@ -433,6 +456,7 @@ 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
@@ -1076,9 +1100,7 @@ source "drivers/base/Kconfig"
 
 source "drivers/connector/Kconfig"
 
-if ALIGNMENT_TRAP || !CPU_CP15_MMU
 source "drivers/mtd/Kconfig"
-endif
 
 source "drivers/parport/Kconfig"
 
@@ -1090,12 +1112,7 @@ source "drivers/block/Kconfig"
 
 source "drivers/misc/Kconfig"
 
-if PCMCIA || ARCH_CLPS7500 || ARCH_IOP32X || ARCH_IOP33X || ARCH_IXP4XX \
-       || ARCH_L7200 || ARCH_LH7A40X || ARCH_PXA || ARCH_RPC \
-       || ARCH_S3C2410 || ARCH_SA1100 || ARCH_SHARK || FOOTBRIDGE \
-       || ARCH_IXP23XX
 source "drivers/ide/Kconfig"
-endif
 
 source "drivers/scsi/Kconfig"
 
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index 28e0caf..1be1893 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -10,6 +10,8 @@ config AVR32
        # With EMBEDDED=n, we get lots of stuff automatically selected
        # that we usually don't need on AVR32.
        select EMBEDDED
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
        select HAVE_KPROBES
        help
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index ba21e33..2c989e3 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -24,6 +24,8 @@ config RWSEM_XCHGADD_ALGORITHM
 config BLACKFIN
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
 
 config ZONE_DMA
diff --git a/arch/cris/Kconfig b/arch/cris/Kconfig
index 27b082a..13c40a1 100644
--- a/arch/cris/Kconfig
+++ b/arch/cris/Kconfig
@@ -54,6 +54,8 @@ config NO_IOPORT
 config CRIS
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
 
 source "init/Kconfig"
 
diff --git a/arch/frv/Kconfig b/arch/frv/Kconfig
index 96f7d70..08f4332 100644
--- a/arch/frv/Kconfig
+++ b/arch/frv/Kconfig
@@ -5,6 +5,8 @@
 config FRV
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
 
 config ZONE_DMA
        bool
diff --git a/arch/h8300/Kconfig b/arch/h8300/Kconfig
index dc61222..5f12412 100644
--- a/arch/h8300/Kconfig
+++ b/arch/h8300/Kconfig
@@ -8,6 +8,8 @@ mainmenu "uClinux/h8300 (w/o MMU) Kernel Configuration"
 config H8300
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
 
 config MMU
        bool
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index b0de113..765c17a 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -15,6 +15,8 @@ config IA64
        select ACPI if (!IA64_HP_SIM)
        select PM if (!IA64_HP_SIM)
        select ARCH_SUPPORTS_MSI
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
        select HAVE_KPROBES
        default y
diff --git a/arch/m32r/Kconfig b/arch/m32r/Kconfig
index 795180b..4615ead 100644
--- a/arch/m32r/Kconfig
+++ b/arch/m32r/Kconfig
@@ -8,6 +8,8 @@ mainmenu "Linux/M32R Kernel Configuration"
 config M32R
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
 
 config SBUS
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index ffabd01..182c798 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -5,6 +5,8 @@
 config M68K
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
 
 config MMU
        bool
diff --git a/arch/m68knommu/Kconfig b/arch/m68knommu/Kconfig
index 6abbbb8..8008f4d 100644
--- a/arch/m68knommu/Kconfig
+++ b/arch/m68knommu/Kconfig
@@ -8,6 +8,8 @@ mainmenu "uClinux/68k (w/o MMU) Kernel Configuration"
 config M68K
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
 
 config MMU
        bool
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index ec78a57..13d36c8 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1,6 +1,8 @@
 config MIPS
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
        # Horrible source of confusion.  Die, die, die ...
        select EMBEDDED
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 028d8a0..8511f43 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -7,6 +7,8 @@ mainmenu "Linux/PA-RISC Kernel Configuration"
 
 config PARISC
        def_bool y
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
        help
          The PA-RISC microprocessor is designed by Hewlett-Packard and used
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 8dcac0b..8038ab7 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -87,6 +87,8 @@ config ARCH_NO_VIRT_TO_BUS
 config PPC
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
        select HAVE_KPROBES
 
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig
index 531156f..11ea57e 100644
--- a/arch/ppc/Kconfig
+++ b/arch/ppc/Kconfig
@@ -42,6 +42,8 @@ config GENERIC_CALIBRATE_DELAY
 config PPC
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
        select HAVE_KPROBES
 
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 1c3a908..29890ac 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -8,6 +8,8 @@ mainmenu "Linux/SuperH Kernel Configuration"
 config SUPERH
        def_bool y
        select EMBEDDED
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
        help
          The SuperH is a RISC processor targeted for use in embedded systems
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 99f8971..e51bbdd 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -62,6 +62,8 @@ config NR_CPUS
 config SPARC
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
 
 # Identify this as a Sparc32 build
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index a8c6366..9d60b26 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -14,6 +14,8 @@ config SPARC
 config SPARC64
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
        help
          SPARC is a family of RISC microprocessors designed and marketed by
          Sun Microsystems, incorporated.  This port covers the newer 64-bit
diff --git a/arch/v850/Kconfig b/arch/v850/Kconfig
index ace479a..9317fd1 100644
--- a/arch/v850/Kconfig
+++ b/arch/v850/Kconfig
@@ -75,6 +75,8 @@ config MCA
 config V850
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
 
 menu "Processor type and features"
 
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index c95482b..cc20002 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -18,6 +18,8 @@ config X86_64
 ### Arch settings
 config X86
        def_bool y
+       select HAVE_IDE
+       select HAVE_MTD
        select HAVE_OPROFILE
        select HAVE_KPROBES
 
diff --git a/arch/xtensa/Kconfig b/arch/xtensa/Kconfig
index 5d5546c..e438ab2 100644
--- a/arch/xtensa/Kconfig
+++ b/arch/xtensa/Kconfig
@@ -14,6 +14,8 @@ config ZONE_DMA
 config XTENSA
        bool
        default y
+       select HAVE_IDE
+       select HAVE_MTD
        help
          Xtensa processors are 32-bit RISC machines designed by Tensilica
          primarily for embedded systems.  These processors are both
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
index ab8fb25..043c34a 100644
--- a/drivers/ide/Kconfig
+++ b/drivers/ide/Kconfig
@@ -4,10 +4,14 @@
 # Andre Hedrick <[EMAIL PROTECTED]>
 #
 
+# Select HAVE_IDE if IDE is supported
+config HAVE_IDE
+       def_bool n
+
 menuconfig IDE
        tristate "ATA/ATAPI/MFM/RLL support"
+       depends on HAVE_IDE
        depends on BLOCK
-       depends on HAS_IOMEM
        ---help---
          If you say Y here, your kernel will be able to manage low cost mass
          storage units such as ATA/(E)IDE and ATAPI units. The most common
diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
index e850334..9365d8b 100644
--- a/drivers/mtd/Kconfig
+++ b/drivers/mtd/Kconfig
@@ -1,8 +1,11 @@
 # $Id: Kconfig,v 1.11 2005/11/07 11:14:19 gleixner Exp $
 
+# select if MTD is supported
+config HAVE_MTD
+       def_bool n
+
 menuconfig MTD
        tristate "Memory Technology Device (MTD) support"
-       depends on HAS_IOMEM
        help
          Memory Technology Devices are flash, RAM and similar chips, often
          used for solid state file systems on embedded devices. This option
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to