Skip to contentSkip to conversation

Kconfig: unwanted menus for s390.

PATCH In review Martin Schwidefsky 2 participants 5 messages Apr 20, 2007 – Apr 22, 2007

Subsystems (28)
lore
Share & tools
lore
#0 lore raw

PATCH 2/8 Kconfig: unwanted menus for s390.

From: Martin Schwidefsky <[email protected]>

Disable all menus in the configuration that are of no interest to a s390 machine. There are quite a few of them..

---

 drivers/ata/Kconfig        |    1 +
 drivers/char/ipmi/Kconfig  |    2 ++
 drivers/char/tpm/Kconfig   |    1 +
 drivers/dma/Kconfig        |    1 +
 drivers/edac/Kconfig       |    1 +
 drivers/hwmon/Kconfig      |    1 +
 drivers/i2c/Kconfig        |    1 +
 drivers/ide/Kconfig        |    1 +
 drivers/infiniband/Kconfig |    1 +
 drivers/input/Kconfig      |    1 +
 drivers/isdn/Kconfig       |    1 +
 drivers/leds/Kconfig       |    1 +
 drivers/media/Kconfig      |    1 +
 drivers/mfd/Kconfig        |    1 +
 drivers/misc/Kconfig       |    1 +
 drivers/mmc/Kconfig        |    1 +
 drivers/mtd/Kconfig        |    1 +
 drivers/net/phy/Kconfig    |    1 +
 drivers/parport/Kconfig    |    1 +
 drivers/pnp/Kconfig        |    1 +
 drivers/rtc/Kconfig        |    1 +
 drivers/serial/Kconfig     |    1 +
 drivers/spi/Kconfig        |    1 +
 drivers/telephony/Kconfig  |    1 +
 drivers/usb/Kconfig        |    1 +
 drivers/video/Kconfig      |    1 +
 drivers/w1/Kconfig         |    1 +
 net/ax25/Kconfig           |    2 +-
 net/bluetooth/Kconfig      |    2 +-
 net/irda/Kconfig           |    2 +-
 sound/Kconfig              |    1 +
 31 files changed, 32 insertions(+), 3 deletions(-)
drivers/ata/Kconfig +1 -0
diff -urpN linux-2.6/drivers/ata/Kconfig linux-2.6-patched/drivers/ata/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "Serial ATA (prod) and Parallel ATA (experimental) drivers"
+	depends on !S390
 
 config ATA
 	tristate "ATA device support"
drivers/char/ipmi/Kconfig +2 -0
diff -urpN linux-2.6/drivers/char/ipmi/Kconfig linux-2.6-patched/drivers/char/ipmi/Kconfig
@@ -3,6 +3,8 @@
 #
 
 menu "IPMI"
+	depends on !S390
+
 config IPMI_HANDLER
        tristate 'IPMI top-level message handler'
        help
drivers/char/tpm/Kconfig +1 -0
diff -urpN linux-2.6/drivers/char/tpm/Kconfig linux-2.6-patched/drivers/char/tpm/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "TPM devices"
+	depends on !S390
 
 config TCG_TPM
 	tristate "TPM Hardware Support"
drivers/dma/Kconfig +1 -0
diff -urpN linux-2.6/drivers/dma/Kconfig linux-2.6-patched/drivers/dma/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "DMA Engine support"
+	depends on !S390
 
 config DMA_ENGINE
 	bool "Support for DMA engines"
drivers/edac/Kconfig +1 -0
diff -urpN linux-2.6/drivers/edac/Kconfig linux-2.6-patched/drivers/edac/Kconfig
@@ -7,6 +7,7 @@
 #
 
 menu 'EDAC - error detection and reporting (RAS) (EXPERIMENTAL)'
+	depends on !S390
 
 config EDAC
 	tristate "EDAC core system error reporting (EXPERIMENTAL)"
drivers/hwmon/Kconfig +1 -0
diff -urpN linux-2.6/drivers/hwmon/Kconfig linux-2.6-patched/drivers/hwmon/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "Hardware Monitoring support"
+	depends on !S390
 
 config HWMON
 	tristate "Hardware Monitoring support"
drivers/i2c/Kconfig +1 -0
diff -urpN linux-2.6/drivers/i2c/Kconfig linux-2.6-patched/drivers/i2c/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "I2C support"
+	depends on !S390
 
 config I2C
 	tristate "I2C support"
drivers/ide/Kconfig +1 -0
diff -urpN linux-2.6/drivers/ide/Kconfig linux-2.6-patched/drivers/ide/Kconfig
@@ -7,6 +7,7 @@
 if BLOCK
 
 menu "ATA/ATAPI/MFM/RLL support"
+	depends on !S390
 
 config IDE
 	tristate "ATA/ATAPI/MFM/RLL support"
drivers/infiniband/Kconfig +1 -0
diff -urpN linux-2.6/drivers/infiniband/Kconfig linux-2.6-patched/drivers/infiniband/Kconfig
@@ -1,4 +1,5 @@
 menu "InfiniBand support"
+	depends on !S390
 
 config INFINIBAND
 	depends on PCI || BROKEN
drivers/input/Kconfig +1 -0
diff -urpN linux-2.6/drivers/input/Kconfig linux-2.6-patched/drivers/input/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "Input device support"
+	depends on !S390
 
 config INPUT
 	tristate "Generic input layer (needed for keyboard, mouse, ...)" if EMBEDDED
drivers/isdn/Kconfig +1 -0
diff -urpN linux-2.6/drivers/isdn/Kconfig linux-2.6-patched/drivers/isdn/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "ISDN subsystem"
+	depends on !S390
 
 config ISDN
 	tristate "ISDN support"
drivers/leds/Kconfig +1 -0
diff -urpN linux-2.6/drivers/leds/Kconfig linux-2.6-patched/drivers/leds/Kconfig
@@ -1,5 +1,6 @@
 
 menu "LED devices"
+	depends on !S390
 
 config NEW_LEDS
 	bool "LED Support"
drivers/media/Kconfig +1 -0
diff -urpN linux-2.6/drivers/media/Kconfig linux-2.6-patched/drivers/media/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "Multimedia devices"
+	depends on !S390
 
 config VIDEO_DEV
 	tristate "Video For Linux"
drivers/mfd/Kconfig +1 -0
diff -urpN linux-2.6/drivers/mfd/Kconfig linux-2.6-patched/drivers/mfd/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "Multifunction device drivers"
+	depends on !S390
 
 config MFD_SM501
 	tristate "Support for Silicon Motion SM501"
drivers/misc/Kconfig +1 -0
diff -urpN linux-2.6/drivers/misc/Kconfig linux-2.6-patched/drivers/misc/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "Misc devices"
+	depends on !S390
 
 config IBM_ASM
 	tristate "Device driver for IBM RSA service processor"
drivers/mmc/Kconfig +1 -0
diff -urpN linux-2.6/drivers/mmc/Kconfig linux-2.6-patched/drivers/mmc/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "MMC/SD Card support"
+	depends on !S390
 
 config MMC
 	tristate "MMC support"
drivers/mtd/Kconfig +1 -0
diff -urpN linux-2.6/drivers/mtd/Kconfig linux-2.6-patched/drivers/mtd/Kconfig
@@ -1,6 +1,7 @@
 # $Id: Kconfig,v 1.11 2005/11/07 11:14:19 gleixner Exp $
 
 menu "Memory Technology Devices (MTD)"
+	depends on !S390
 
 config MTD
 	tristate "Memory Technology Device (MTD) support"
drivers/net/phy/Kconfig +1 -0
diff -urpN linux-2.6/drivers/net/phy/Kconfig linux-2.6-patched/drivers/net/phy/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "PHY device support"
+	depends on !S390
 
 config PHYLIB
 	tristate "PHY Device support and infrastructure"
drivers/parport/Kconfig +1 -0
diff -urpN linux-2.6/drivers/parport/Kconfig linux-2.6-patched/drivers/parport/Kconfig
@@ -6,6 +6,7 @@
 #
 
 menu "Parallel port support"
+	depends on !S390
 
 config PARPORT
 	tristate "Parallel port support"
drivers/pnp/Kconfig +1 -0
diff -urpN linux-2.6/drivers/pnp/Kconfig linux-2.6-patched/drivers/pnp/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "Plug and Play support"
+	depends on !S390
 
 config PNP
 	bool "Plug and Play support"
drivers/rtc/Kconfig +1 -0
diff -urpN linux-2.6/drivers/rtc/Kconfig linux-2.6-patched/drivers/rtc/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "Real Time Clock"
+	depends on !S390
 
 config RTC_LIB
 	tristate
drivers/serial/Kconfig +1 -0
diff -urpN linux-2.6/drivers/serial/Kconfig linux-2.6-patched/drivers/serial/Kconfig
@@ -5,6 +5,7 @@
 #
 
 menu "Serial drivers"
+	depends on !S390
 
 #
 # The new 8250/16550 serial drivers
drivers/spi/Kconfig +1 -0
diff -urpN linux-2.6/drivers/spi/Kconfig linux-2.6-patched/drivers/spi/Kconfig
@@ -6,6 +6,7 @@
 # fully appropriate there, so it'd need some thought to do well.
 #
 menu "SPI support"
+	depends on !S390
 
 config SPI
 	bool "SPI support"
drivers/telephony/Kconfig +1 -0
diff -urpN linux-2.6/drivers/telephony/Kconfig linux-2.6-patched/drivers/telephony/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "Telephony Support"
+	depends on !S390
 
 config PHONE
 	tristate "Linux telephony support"
drivers/usb/Kconfig +1 -0
diff -urpN linux-2.6/drivers/usb/Kconfig linux-2.6-patched/drivers/usb/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "USB support"
+	depends on !S390
 
 # Host-side USB depends on having a host controller
 # NOTE:  dummy_hcd is always an option, but it's ignored here ...
drivers/video/Kconfig +1 -0
diff -urpN linux-2.6/drivers/video/Kconfig linux-2.6-patched/drivers/video/Kconfig
@@ -3,6 +3,7 @@
 #
 
 menu "Graphics support"
+	depends on !S390
 
 source "drivers/video/backlight/Kconfig"
 source "drivers/video/display/Kconfig"
drivers/w1/Kconfig +1 -0
diff -urpN linux-2.6/drivers/w1/Kconfig linux-2.6-patched/drivers/w1/Kconfig
@@ -1,4 +1,5 @@
 menu "Dallas's 1-wire bus"
+	depends on !S390
 
 config W1
 	tristate "Dallas's 1-wire support"
net/ax25/Kconfig +1 -1
diff -urpN linux-2.6/net/ax25/Kconfig linux-2.6-patched/net/ax25/Kconfig
@@ -3,7 +3,7 @@
 #
 
 menuconfig HAMRADIO
-	depends on NET
+	depends on NET && !S390
 	bool "Amateur Radio support"
 	help
 	  If you want to connect your Linux box to an amateur radio, answer Y
net/bluetooth/Kconfig +1 -1
diff -urpN linux-2.6/net/bluetooth/Kconfig linux-2.6-patched/net/bluetooth/Kconfig
@@ -3,7 +3,7 @@
 #
 
 menuconfig BT
-	depends on NET
+	depends on NET && !S390
 	tristate "Bluetooth subsystem support"
 	help
 	  Bluetooth is low-cost, low-power, short-range wireless technology.
net/irda/Kconfig +1 -1
diff -urpN linux-2.6/net/irda/Kconfig linux-2.6-patched/net/irda/Kconfig
@@ -3,7 +3,7 @@
 #
 
 menuconfig IRDA
-	depends on NET
+	depends on NET && !S390
 	tristate "IrDA (infrared) subsystem support"
 	select CRC_CCITT
 	---help---
sound/Kconfig +1 -0
diff -urpN linux-2.6/sound/Kconfig linux-2.6-patched/sound/Kconfig
@@ -2,6 +2,7 @@
 #
 
 menu "Sound"
+	depends on !S390
 
 config SOUND
 	tristate "Sound card support"
maintainer
#1 lore raw
Quoted 5 lines · Martin Schwidefsky

diff -urpN linux-2.6/drivers/char/ipmi/Kconfig linux-2.6-patched/drivers/char/ipmi/Kconfig

drivers/char/ipmi/Kconfig 2007-04-19 15:49:55.000000000 +0200 renamed from drivers/char/ipmi/Kconfig 2007-02-04 19:44:54.000000000 +0100 +0 -0
@@ -3,6 +3,8 @@
  #
Quoted 7 lines


 menu "IPMI"
+       depends on !S390
+
 config IPMI_HANDLER
        tristate 'IPMI top-level message handler'
        help

I think I made this comment the last time we discussed this topic, but don't remember the exact outcome.

I would prefer to not have 'depends on !S390' but rather 'depends on MMIO', because that is what really drives stuff like IPMI: they expect the device to be reachable through the use of ioremap or inX/outX instructions, which don't exist on s390.

While it's unlikely that another architecture has the same restriction, it expresses much clearer what you mean.

In drivers/Kconfig, you can then simply add a

config MMIO

	def_bool !S390

There are a few exceptions though, that I think should not depend on MMIO:

drivers/dma/Kconfig line 9

Quoted 10 lines
drivers/dma/Kconfig +1 -0
@@ -3,6 +3,7 @@
 #
 
 menu "DMA Engine support"
+	depends on !S390
 
 config DMA_ENGINE
 	bool "Support for DMA engines"

I'd leave the menu enabled. If the DMA engine infrastructure becomes more widely used, you may want to add an implementation for s390 using milicoded instructions like xor-string or copy-page.

drivers/input/Kconfig line 9

Quoted 11 lines

diff -urpN linux-2.6/drivers/input/Kconfig linux-2.6-patched/drivers/input/Kconfig

drivers/input/Kconfig +1 -0
@@ -3,6 +3,7 @@
 #
 
 menu "Input device support"
+	depends on !S390
 
 config INPUT
 	tristate "Generic input layer (needed for keyboard, mouse, ...)" if EMBEDDED

Probably leave this as !S390. One could imagine channel-attached input devices or the idea of intepreting a terminal as an input device, but no driver currently does and probably never will.

drivers/isdn/Kconfig line 9

Quoted 11 lines

diff -urpN linux-2.6/drivers/isdn/Kconfig linux-2.6-patched/drivers/isdn/Kconfig

drivers/isdn/Kconfig +1 -0
@@ -3,6 +3,7 @@
 #
 
 menu "ISDN subsystem"
+	depends on !S390
 
 config ISDN
 	tristate "ISDN support"

Same here, actually there was an IBM 2216 ISDN adapter with channel attachment, but I don't think anybody wants to add a driver for that one.

drivers/misc/Kconfig line 9

Quoted 11 lines

diff -urpN linux-2.6/drivers/misc/Kconfig linux-2.6-patched/drivers/misc/Kconfig

drivers/misc/Kconfig +1 -0
@@ -3,6 +3,7 @@
 #
 
 menu "Misc devices"
+	depends on !S390
 
 config IBM_ASM
 	tristate "Device driver for IBM RSA service processor"

Maybe just leave the menu open, all drivers in it are already depending on PCI or similar and someone might add a driver that does work on s390 here.

drivers/net/phy/Kconfig line 9

Quoted 11 lines

diff -urpN linux-2.6/drivers/net/phy/Kconfig linux-2.6-patched/drivers/net/phy/Kconfig

drivers/net/phy/Kconfig +1 -0
@@ -3,6 +3,7 @@
 #
 
 menu "PHY device support"
+	depends on !S390
 
 config PHYLIB
 	tristate "PHY Device support and infrastructure"

Also depends on !S390, not MMIO. A future network adapter might give you access to the phy device through other means than MMIO.

drivers/rtc/Kconfig line 9

Quoted 11 lines

diff -urpN linux-2.6/drivers/rtc/Kconfig linux-2.6-patched/drivers/rtc/Kconfig

drivers/rtc/Kconfig +1 -0
@@ -3,6 +3,7 @@
 #
 
 menu "Real Time Clock"
+	depends on !S390
 
 config RTC_LIB
 	tristate

Applications might actually want to use the RTC interface to access the system time or get accurate timers, but the rtc drivers are all very dependant on either MMIO or I2C. Not sure what would be best here.

	Arnd <><
maintainer
#2 lore raw
Quoted 5 lines · Arnd Bergmann

I would prefer to not have 'depends on !S390' but rather 'depends on MMIO', because that is what really drives stuff like IPMI: they expect the device to be reachable through the use of ioremap or inX/outX instructions, which don't exist on s390.

Quoted 7 lines

While it's unlikely that another architecture has the same restriction, it expresses much clearer what you mean.

In drivers/Kconfig, you can then simply add a

config MMIO
        def_bool !S390

I just saw that we already have an option like that, with a slightly different name.

arch/s390/Kconfig contains

config NO_IOMEM
def_bool y

and lib/Kconfig contains

config HAS_IOMEM
boolean
depends on !NO_IOMEM
default y

You should probably just use one of these two to disable any driver that uses ioremap or similar.

	Arnd <><
#3 lore raw
Quoted 8 lines · Arnd Bergmann

I just saw that we already have an option like that, with a slightly different name.

arch/s390/Kconfig contains

config NO_IOMEM
def_bool y

Quoted 6 lines

and lib/Kconfig contains

config HAS_IOMEM
boolean
depends on !NO_IOMEM
default y

Now that is a good idea, I should be able to replace quite a few !S390 with HAS_IOMEM. It much better reflects WHY things don't work. Just !S390 is so negative ..

Signature · 8 lines
blue skies,              IBM Deutschland Entwicklung GmbH
   Martin                Vorsitzender des Aufsichtsrats: Johann Weihen
                         Geschäftsführung: Herbert Kircher
Martin Schwidefsky       Sitz der Gesellschaft: Böblingen
Linux on zSeries         Registergericht: Amtsgericht Stuttgart,
   Development           HRB 243294

"Reality continues to ruin my life." - Calvin.
#4 lore raw
In reply to Arnd Bergmann
Quoted 8 lines · Arnd Bergmann
Quoted 8 lines
drivers/dma/Kconfig +1 -0
@@ -3,6 +3,7 @@
 #
 
 menu "DMA Engine support"
+	depends on !S390
 
Quoted 6 lines

drivers/dma/Kconfig line 9

Quoted 2 lines
drivers/dma/Kconfig +0 -0
 config DMA_ENGINE
 	bool "Support for DMA engines"

I'd leave the menu enabled. If the DMA engine infrastructure becomes more widely used, you may want to add an implementation for s390 using milicoded instructions like xor-string or copy-page.

If we ever add an implementation for s390 we can rmeove the depends line again. The current situation is that we don't support it.

Quoted 9 lines
Quoted 9 lines

diff -urpN linux-2.6/drivers/input/Kconfig linux-2.6-patched/drivers/input/Kconfig

drivers/input/Kconfig +1 -0
@@ -3,6 +3,7 @@
 #
 
 menu "Input device support"
+	depends on !S390
 
Quoted 6 lines

drivers/input/Kconfig line 9

Quoted 2 lines
drivers/input/Kconfig +0 -0
 config INPUT
 	tristate "Generic input layer (needed for keyboard, mouse, ...)" if EMBEDDED

Probably leave this as !S390. One could imagine channel-attached input devices or the idea of intepreting a terminal as an input device, but no driver currently does and probably never will.

We don't have support and it is VERY unlikely we will get it. I would prefer to hide the menu.

Quoted 6 lines
Quoted 6 lines

diff -urpN linux-2.6/drivers/isdn/Kconfig linux-2.6-patched/drivers/isdn/Kconfig

drivers/isdn/Kconfig +0 -0
@@ -3,6 +3,7 @@
 #
 
Quoted 8 lines

drivers/isdn/Kconfig line 9

Quoted 5 lines
drivers/isdn/Kconfig +1 -0
 menu "ISDN subsystem"
+	depends on !S390
 
 config ISDN
 	tristate "ISDN support"

Same here, actually there was an IBM 2216 ISDN adapter with channel attachment, but I don't think anybody wants to add a driver for that one.

Without a driver is it mute to have the menu.

Quoted 6 lines
Quoted 6 lines

diff -urpN linux-2.6/drivers/misc/Kconfig linux-2.6-patched/drivers/misc/Kconfig

drivers/misc/Kconfig +0 -0
@@ -3,6 +3,7 @@
 #
 
Quoted 8 lines

drivers/misc/Kconfig line 9

Quoted 5 lines
drivers/misc/Kconfig +1 -0
 menu "Misc devices"
+	depends on !S390
 
 config IBM_ASM
 	tristate "Device driver for IBM RSA service processor"

Maybe just leave the menu open, all drivers in it are already depending on PCI or similar and someone might add a driver that does work on s390 here.

This is a border-case. Someone might add a driver that actually works. Currently it is an empty menu.

Quoted 9 lines
Quoted 9 lines

diff -urpN linux-2.6/drivers/rtc/Kconfig linux-2.6-patched/drivers/rtc/Kconfig

drivers/rtc/Kconfig +1 -0
@@ -3,6 +3,7 @@
 #
 
 menu "Real Time Clock"
+	depends on !S390
 
Quoted 6 lines

drivers/rtc/Kconfig line 9

Quoted 2 lines
drivers/rtc/Kconfig +0 -0
 config RTC_LIB
 	tristate

Applications might actually want to use the RTC interface to access the system time or get accurate timers, but the rtc drivers are all very dependant on either MMIO or I2C. Not sure what would be best here.

If we ever come up with an implementation for RTC we can remove the depends statement again. Until we do it is another empty menu.

Thanks Arnd for the review.

Signature · 8 lines
blue skies,              IBM Deutschland Entwicklung GmbH
   Martin                Vorsitzender des Aufsichtsrats: Johann Weihen
                         Geschäftsführung: Herbert Kircher
Martin Schwidefsky       Sitz der Gesellschaft: Böblingen
Linux on zSeries         Registergericht: Amtsgericht Stuttgart,
   Development           HRB 243294

"Reality continues to ruin my life." - Calvin.