#
 
 config MMU
-       bool
-       default y
+       def_bool y
 
 config ZONE_DMA
        def_bool y
        depends on 64BIT
 
 config LOCKDEP_SUPPORT
-       bool
-       default y
+       def_bool y
 
 config STACKTRACE_SUPPORT
-       bool
-       default y
+       def_bool y
 
 config RWSEM_GENERIC_SPINLOCK
        bool
 
 config RWSEM_XCHGADD_ALGORITHM
-       bool
-       default y
+       def_bool y
 
 config ARCH_HAS_ILOG2_U32
        bool
        default n
 
 config GENERIC_HWEIGHT
-       bool
-       default y
+       def_bool y
 
 config GENERIC_TIME
        def_bool y
 mainmenu "Linux Kernel Configuration"
 
 config S390
-       bool
-       default y
+       def_bool y
 
 source "init/Kconfig"
 
 config ARCH_POPULATES_NODE_MAP
        def_bool y
 
+comment "Kernel preemption"
+
+source "kernel/Kconfig.preempt"
+
 source "mm/Kconfig"
 
 config HOLES_IN_ZONE
 
 comment "Misc"
 
-config PREEMPT
-       bool "Preemptible Kernel"
-       help
-         This option reduces the latency of the kernel when reacting to
-         real-time or interactive events by allowing a low priority process to
-         be preempted even if it is in kernel mode executing a system call.
-         This allows applications to run more reliably even when the system is
-         under load.
-
-         Say N if you are unsure.
-
 config IPL
        bool "Builtin IPL record support"
        help
          This can also be compiled as a module, which will be called
          appldata_net_sum.o.
 
+source kernel/Kconfig.hz
+
 config NO_IDLE_HZ
        bool "No HZ timer ticks in idle"
        help
 source "net/Kconfig"
 
 config PCMCIA
-       bool
-       default n
-
-source "drivers/base/Kconfig"
+       def_bool n
 
-source "drivers/connector/Kconfig"
-
-source "drivers/scsi/Kconfig"
-
-source "drivers/s390/Kconfig"
+config CCW
+       def_bool y
 
-source "drivers/net/Kconfig"
+source "drivers/Kconfig"
 
 source "fs/Kconfig"
 
 
          this option is dangerous unless the CD-RW media is known good, as we
          don't do deferred write error handling yet.
 
-source "drivers/s390/block/Kconfig"
-
 config ATA_OVER_ETH
        tristate "ATA over Ethernet support"
        depends on NET
        This driver provides Support for ATA over Ethernet block
        devices like the Coraid EtherDrive (R) Storage Blade.
 
+source "drivers/s390/block/Kconfig"
+
 endmenu
 
 endif
 
        depends on ISA || PCI
        default y
 
+source "drivers/s390/char/Kconfig"
+
 endmenu
 
 
          To compile this driver as a module, choose M here: the module
          will be called geode-aes.
 
+config ZCRYPT
+       tristate "Support for PCI-attached cryptographic adapters"
+       depends on S390
+       select ZCRYPT_MONOLITHIC if ZCRYPT="y"
+       default "m"
+       help
+         Select this option if you want to use a PCI-attached cryptographic
+         adapter like:
+         + PCI Cryptographic Accelerator (PCICA)
+         + PCI Cryptographic Coprocessor (PCICC)
+         + PCI-X Cryptographic Coprocessor (PCIXCC)
+         + Crypto Express2 Coprocessor (CEX2C)
+         + Crypto Express2 Accelerator (CEX2A)
+
+config ZCRYPT_MONOLITHIC
+       bool "Monolithic zcrypt module"
+       depends on ZCRYPT="m"
+       help
+         Select this option if you want to have a single module z90crypt.ko
+         that contains all parts of the crypto device driver (ap bus,
+         request router and all the card drivers).
+
 endmenu
 
-if S390 && BLOCK
-
 comment "S/390 block device drivers"
-       depends on S390
+       depends on S390 && BLOCK
 
 config BLK_DEV_XPRAM
        tristate "XPRAM disk support"
-       depends on S390
+       depends on S390 && BLOCK
        help
          Select this option if you want to use your expanded storage on S/390
          or zSeries as a disk.  This is useful as a _fast_ swap device if you
 
 config DCSSBLK
        tristate "DCSSBLK support"
+       depends on S390 && BLOCK
        help
          Support for dcss block device
 
 config DASD
        tristate "Support for DASD devices"
-       depends on CCW
+       depends on CCW && BLOCK
        help
          Enable this option if you want to access DASDs directly utilizing
          S/390s channel subsystem commands. This is necessary for running
          This driver provides a character device interface to the
          DASD extended error reporting. This is only needed if you want to
          use applications written for the EER facility.
-
-endif
 
-config CCW
-       bool
-       default y
-
-source "drivers/block/Kconfig"
-
-source "drivers/md/Kconfig"
-
-
-menu "Character device drivers"
-
-config UNIX98_PTYS
-       bool "Unix98 PTY support"
-       ---help---
-         A pseudo terminal (PTY) is a software device consisting of two
-         halves: a master and a slave. The slave device behaves identical to
-         a physical terminal; the master device is used by a process to
-         read data from and write data to the slave, thereby emulating a
-         terminal. Typical programs for the master side are telnet servers
-         and xterms.
-
-         Linux has traditionally used the BSD-like names /dev/ptyxx for
-         masters and /dev/ttyxx for slaves of pseudo terminals. This scheme
-         has a number of problems. The GNU C library glibc 2.1 and later,
-         however, supports the Unix98 naming standard: in order to acquire a
-         pseudo terminal, a process opens /dev/ptmx; the number of the pseudo
-         terminal is then made available to the process and the pseudo
-         terminal slave can be accessed as /dev/pts/<number>. What was
-         traditionally /dev/ttyp2 will then be /dev/pts/2, for example.
-
-         The entries in /dev/pts/ are created on the fly by a virtual
-         file system; therefore, if you say Y here you should say Y to
-         "/dev/pts file system for Unix98 PTYs" as well.
-
-         If you want to say Y here, you need to have the C library glibc 2.1
-         or later (equal to libc-6.1, check with "ls -l /lib/libc.so.*").
-         Read the instructions in <file:Documentation/Changes> pertaining to
-         pseudo terminals. It's safe to say N.
-
-config UNIX98_PTY_COUNT
-       int "Maximum number of Unix98 PTYs in use (0-2048)"
-       depends on UNIX98_PTYS
-       default "256"
-       help
-         The maximum number of Unix98 PTYs that can be used at any one time.
-         The default is 256, and should be enough for desktop systems. Server
-         machines which support incoming telnet/rlogin/ssh connections and/or
-         serve several X terminals may want to increase this: every incoming
-         connection and every xterm uses up one PTY.
-
-         When not in use, each additional set of 256 PTYs occupy
-         approximately 8 KB of kernel memory on 32-bit architectures.
-
-config HANGCHECK_TIMER
-       tristate "Hangcheck timer"
-       help
-         The hangcheck-timer module detects when the system has gone
-         out to lunch past a certain margin.  It can reboot the system
-         or merely print a warning.
-
-source "drivers/char/watchdog/Kconfig"
-
 comment "S/390 character device drivers"
+       depends on S390
 
 config TN3270
        tristate "Support for locally attached 3270 terminals"
+       depends on CCW
        help
          Include support for IBM 3270 terminals.
 
 
 config TN3215
        bool "Support for 3215 line mode terminal"
+       depends on CCW
        help
          Include support for IBM 3215 line-mode terminals.
 
          Linux system console.
 
 config CCW_CONSOLE
-       bool
-       depends on TN3215_CONSOLE || TN3270_CONSOLE
-       default y
- 
+       bool
+       depends on TN3215_CONSOLE || TN3270_CONSOLE
+       default y
+
+config SCLP
+       bool "Support for SCLP"
+       depends on S390
+       help
+         Include support for the SCLP interface to the service element.
+
 config SCLP_TTY
        bool "Support for SCLP line mode terminal"
+       depends on SCLP
        help
          Include support for IBM SCLP line-mode terminals.
 
 
 config SCLP_VT220_TTY
        bool "Support for SCLP VT220-compatible terminal"
+       depends on SCLP
        help
          Include support for an IBM SCLP VT220-compatible terminal.
 
 
 config SCLP_CPI
        tristate "Control-Program Identification"
+       depends on SCLP
        help
          This option enables the hardware console interface for system
          identification. This is commonly used for workload management and
 
 config S390_TAPE
        tristate "S/390 tape device support"
+       depends on CCW
        help
          Select this option if you want to access channel-attached tape
          devices on IBM S/390 or zSeries.
 
 config VMCP
        tristate "Support for the z/VM CP interface (VM only)"
+       depends on S390
        help
          Select this option if you want to be able to interact with the control
          program on z/VM
 
 config MONWRITER
        tristate "API for writing z/VM monitor service records"
+       depends on S390
        default "m"
        help
          Character device driver for writing z/VM monitor service records
 
-endmenu
-
-menu "Cryptographic devices"
-
-config ZCRYPT
-       tristate "Support for PCI-attached cryptographic adapters"
-       select ZCRYPT_MONOLITHIC if ZCRYPT="y"
-       default "m"
-       help
-         Select this option if you want to use a PCI-attached cryptographic
-         adapter like:
-         + PCI Cryptographic Accelerator (PCICA)
-         + PCI Cryptographic Coprocessor (PCICC)
-         + PCI-X Cryptographic Coprocessor (PCIXCC)
-         + Crypto Express2 Coprocessor (CEX2C)
-         + Crypto Express2 Accelerator (CEX2A)
-
-config ZCRYPT_MONOLITHIC
-       bool "Monolithic zcrypt module"
-       depends on ZCRYPT="m"
-       help
-         Select this option if you want to have a single module z90crypt.ko
-         that contains all parts of the crypto device driver (ap bus,
-         request router and all the card drivers).
-
-endmenu
 
 
 config LCS
        tristate "Lan Channel Station Interface"
-       depends on NETDEVICES && (NET_ETHERNET || TR || FDDI)
+       depends on CCW && NETDEVICES && (NET_ETHERNET || TR || FDDI)
        help
           Select this option if you want to use LCS networking  on IBM S/390
           or zSeries. This device driver supports Token Ring (IEEE 802.5),
 
 config CTC
        tristate "CTC device support"
-       depends on NETDEVICES
+       depends on CCW && NETDEVICES
        help
          Select this option if you want to use channel-to-channel networking
          on IBM S/390 or zSeries. This device driver supports real CTC
 
 config CLAW
        tristate "CLAW device support"
-       depends on NETDEVICES
+       depends on CCW && NETDEVICES
        help
          This driver supports channel attached CLAW devices.
          CLAW is Common Link Access for Workstation.  Common devices
 
 config QETH
        tristate "Gigabit Ethernet device support"
-       depends on NETDEVICES && IP_MULTICAST && QDIO
+       depends on CCW && NETDEVICES && IP_MULTICAST && QDIO
        help
          This driver supports the IBM S/390 and zSeries OSA Express adapters
          in QDIO mode (all media types), HiperSockets interfaces and VM GuestLAN
 
 #define _ASMS390_PARAM_H
 
 #ifdef __KERNEL__
-# define HZ            100             /* Internal kernel timer frequency */
+# define HZ            CONFIG_HZ       /* Internal kernel timer frequency */
 # define USER_HZ       100             /* .. some user interfaces are in "ticks" */
 # define CLOCKS_PER_SEC        (USER_HZ)       /* like times() */
 #endif