* [PATCH] b44-ssb: Fix the SSB dependency hell @ 2007-08-11 0:08 Michael Buesch 2007-08-11 0:43 ` Adrian Bunk 0 siblings, 1 reply; 12+ messages in thread From: Michael Buesch @ 2007-08-11 0:08 UTC (permalink / raw) To: John Linville; +Cc: Andrew Morton, Linux Netdev List This fixes the SSB dependency hell and introduces some fake-options that only give some advice on what to select. We live with these fake options only until menuconfig is able to tell more about needed dependencies and how to resolve them. Cc: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Michael Buesch <mb@bu3sch.de> -- I think this should be merged into the ssb branch of wireless-dev, unless you plan to maintain a seperate branch for b44-ssb. But I think merging it with the ssb core is probably OK. Index: wireless-dev/drivers/net/Kconfig =================================================================== --- wireless-dev.orig/drivers/net/Kconfig 2007-08-10 13:40:34.000000000 +0200 +++ wireless-dev/drivers/net/Kconfig 2007-08-10 13:42:18.000000000 +0200 @@ -1452,10 +1452,31 @@ config APRICOT <file:Documentation/networking/net-modules.txt>. The module will be called apricot. +config B44_DEP_HACK + bool + depends on SSB && SSB_PCIHOST && SSB_DRIVER_PCICORE + default y + +config B44_ADVICE_HACK + bool "B44 for PCI not available. Read the help text of this option!" + depends on !B44_DEP_HACK + ---help--- + The Broadcom 440x/47xx driver for PCI devices can not be enabled, + because the required dependencies are not selected. + + In order to be able to select the Broadcom 440x/47xx PCI driver, you + need to enable the following options first: + + CONFIG_SSB found in menu: + Device Drivers/Sonics Silicon Backplane/Sonics Silicon Backplane support + CONFIG_SSB_PCIHOST found in menu: + Device Drivers/Sonics Silicon Backplane/Support for SSB on PCI-bus host + CONFIG_SSB_DRIVER_PCICORE found in menu: + Device Drivers/Sonics Silicon Backplane/SSB PCI core driver + config B44 tristate "Broadcom 440x/47xx ethernet support" - depends on HAS_IOMEM - select SSB + depends on SSB select MII help If you have a network (Ethernet) controller of this type, say Y @@ -1473,9 +1494,7 @@ config B44 config B44_PCI bool "Broadcom 440x PCI device support" - depends on B44 && NET_PCI - select SSB_PCIHOST - select SSB_DRIVER_PCICORE + depends on B44 && SSB_PCIHOST && SSB_DRIVER_PCICORE && NET_PCI default y help Support for Broadcom 440x PCI devices. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] b44-ssb: Fix the SSB dependency hell 2007-08-11 0:08 [PATCH] b44-ssb: Fix the SSB dependency hell Michael Buesch @ 2007-08-11 0:43 ` Adrian Bunk 2007-08-11 0:57 ` Johannes Berg 0 siblings, 1 reply; 12+ messages in thread From: Adrian Bunk @ 2007-08-11 0:43 UTC (permalink / raw) To: Michael Buesch; +Cc: John Linville, Andrew Morton, Linux Netdev List On Sat, Aug 11, 2007 at 02:08:21AM +0200, Michael Buesch wrote: > This fixes the SSB dependency hell and introduces some > fake-options that only give some advice on what to select. > > We live with these fake options only until menuconfig is able > to tell more about needed dependencies and how to resolve them. >... -ENOMENUCONFIGPATCH IOW: $t\rightarrow\infty$ > +config B44_ADVICE_HACK > + bool "B44 for PCI not available. Read the help text of this option!" > + depends on !B44_DEP_HACK > + ---help--- > + The Broadcom 440x/47xx driver for PCI devices can not be enabled, > + because the required dependencies are not selected. > + > + In order to be able to select the Broadcom 440x/47xx PCI driver, you > + need to enable the following options first: > + > + CONFIG_SSB found in menu: > + Device Drivers/Sonics Silicon Backplane/Sonics Silicon Backplane support > + CONFIG_SSB_PCIHOST found in menu: > + Device Drivers/Sonics Silicon Backplane/Support for SSB on PCI-bus host > + CONFIG_SSB_DRIVER_PCICORE found in menu: > + Device Drivers/Sonics Silicon Backplane/SSB PCI core driver > + >... That's horrible - you shouldn't force the user to manually enable three options. What is the problem you are trying to solve? The dependencies of SSB? There are less horrible solutions for this issue, e.g. [1]: drivers/ssb/Kconfig: config SSB_POSSIBLE bool depends on EXPERIMENTAL && HAS_IOMEM config SSB tristate config SSB_PCIHOST_POSSIBLE bool depends on SSB_POSSIBLE && PCI config SSB_PCIHOST bool drivers/net/Kconfig: config B44 tristate "Broadcom 440x/47xx ethernet support" depends on SSB_PCIHOST_POSSIBLE select SSB select SSB_PCIHOST I can make a complete patch for the SSB options, but I need some pieces of information before starting: Is there any extremely good reason why options like SSB or SSB_PCIHOST have to be user visible? And according to the kconfig help text, we should remove the B44_PCI option and enable the code unconditionally? (Or what was the person writing this help text smoking^Wthinking when writing it?) cu Adrian [1] incomplete example for demonstrating an idea -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] b44-ssb: Fix the SSB dependency hell 2007-08-11 0:43 ` Adrian Bunk @ 2007-08-11 0:57 ` Johannes Berg 2007-08-11 1:41 ` Adrian Bunk 0 siblings, 1 reply; 12+ messages in thread From: Johannes Berg @ 2007-08-11 0:57 UTC (permalink / raw) To: Adrian Bunk Cc: Michael Buesch, John Linville, Andrew Morton, Linux Netdev List [-- Attachment #1: Type: text/plain, Size: 1127 bytes --] On Sat, 2007-08-11 at 02:43 +0200, Adrian Bunk wrote: > -ENOMENUCONFIGPATCH Has anybody decided how it could possibly even look like anyhow? It should be fixed, but nobody has a plan. > That's horrible - you shouldn't force the user to manually enable three > options. Well, akpm says: "select is broken. do not ever use it" > config SSB_PCIHOST_POSSIBLE [...] > depends on SSB_PCIHOST_POSSIBLE > select SSB > select SSB_PCIHOST That would, indeed, be possible. But it's ... ugly ... you've now effectively pushed the information on what *SSB* depends on into each SSB *user* instead of SSB itself... > Is there any extremely good reason why options like SSB or SSB_PCIHOST > have to be user visible? Yes. Embedded systems like the small Linksys routers come with SSB as the system bus. No PCI/PCIHOST. > And according to the kconfig help text, we should remove the B44_PCI > option and enable the code unconditionally? > (Or what was the person writing this help text smoking^Wthinking when > writing it?) Same reason. They have a b44 core there but no pci. johannes [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 190 bytes --] ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] b44-ssb: Fix the SSB dependency hell 2007-08-11 0:57 ` Johannes Berg @ 2007-08-11 1:41 ` Adrian Bunk 2007-08-11 9:36 ` Michael Buesch 0 siblings, 1 reply; 12+ messages in thread From: Adrian Bunk @ 2007-08-11 1:41 UTC (permalink / raw) To: Johannes Berg Cc: Michael Buesch, John Linville, Andrew Morton, Linux Netdev List On Sat, Aug 11, 2007 at 02:57:36AM +0200, Johannes Berg wrote: > On Sat, 2007-08-11 at 02:43 +0200, Adrian Bunk wrote: > > > -ENOMENUCONFIGPATCH > > Has anybody decided how it could possibly even look like anyhow? It > should be fixed, but nobody has a plan. The simplest idea would be that an option select'ing some other option inherits the dependencies of the latter. That should fix all problems select currently has. There are for sure some problems hidden that will show up during implementation, but since noone is implementing it we'll never know... > > That's horrible - you shouldn't force the user to manually enable three > > options. > > Well, akpm says: "select is broken. do not ever use it" select works fine if you understand the pitfalls. Kconfig is a _user interface_, and making using it easy for the user is therefore important. Whenever there's a mistake in a help text or something confusing users will run into problems with the kernel they compiled. > > config SSB_PCIHOST_POSSIBLE > [...] > > > depends on SSB_PCIHOST_POSSIBLE > > select SSB > > select SSB_PCIHOST > > That would, indeed, be possible. But it's ... ugly ... you've now > effectively pushed the information on what *SSB* depends on into each > SSB *user* instead of SSB itself... No, this information is still in drivers/ssb/Kconfig. This would replace: config B44 depends on SSB_PCIHOST with: config B44 depends on SSB_PCIHOST_POSSIBLE select SSB_PCIHOST That's an easily understandable pattern without redundant information about the required dependencies of SSB_PCIHOST. > > Is there any extremely good reason why options like SSB or SSB_PCIHOST > > have to be user visible? > > Yes. Embedded systems like the small Linksys routers come with SSB as > the system bus. No PCI/PCIHOST. OK. > > And according to the kconfig help text, we should remove the B44_PCI > > option and enable the code unconditionally? > > (Or what was the person writing this help text smoking^Wthinking when > > writing it?) > > Same reason. They have a b44 core there but no pci. OK, that's understandable. But the kconfig user currently only gets: config B44_PCI bool "Broadcom 440x PCI device support" ... help Support for Broadcom 440x PCI devices. Say Y, unless you know what you are doing. If you say N here I will _not_ listen to your bugreports! An example how to make it better: config USB_OHCI_HCD_SSB bool "OHCI support for the Broadcom SSB OHCI core (embedded systems only)" ... help Support for the Sonics Silicon Backplane (SSB) attached Broadcom USB OHCI core. This device is only present in some embedded devices with Broadcom based SSB bus. If unsure, say N. That's the difference between a silly sounding help text ("I will _not_ listen to your bugreports!") and a help text that gives the kconfig user all required information ("only present in some embedded devices"). And I'm not yet convinced B44_PCI is really worth bothering the user with - what about automatically enabling PCI support in the driver if PCI support is enabled in the kernel? > johannes cu Adrian -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] b44-ssb: Fix the SSB dependency hell 2007-08-11 1:41 ` Adrian Bunk @ 2007-08-11 9:36 ` Michael Buesch 2007-08-11 14:30 ` Adrian Bunk 0 siblings, 1 reply; 12+ messages in thread From: Michael Buesch @ 2007-08-11 9:36 UTC (permalink / raw) To: Adrian Bunk Cc: Johannes Berg, John Linville, Andrew Morton, Linux Netdev List On Saturday 11 August 2007 03:41:11 Adrian Bunk wrote: > On Sat, Aug 11, 2007 at 02:57:36AM +0200, Johannes Berg wrote: > > On Sat, 2007-08-11 at 02:43 +0200, Adrian Bunk wrote: > > > > > -ENOMENUCONFIGPATCH > > > > Has anybody decided how it could possibly even look like anyhow? It > > should be fixed, but nobody has a plan. > > The simplest idea would be that an option select'ing some other option > inherits the dependencies of the latter. That should fix all problems > select currently has. > > There are for sure some problems hidden that will show up during > implementation, but since noone is implementing it we'll never know... > > > > That's horrible - you shouldn't force the user to manually enable three > > > options. > > > > Well, akpm says: "select is broken. do not ever use it" > > select works fine if you understand the pitfalls. > > Kconfig is a _user interface_, and making using it easy for the user > is therefore important. > > Whenever there's a mistake in a help text or something confusing > users will run into problems with the kernel they compiled. > > > > config SSB_PCIHOST_POSSIBLE > > [...] > > > > > depends on SSB_PCIHOST_POSSIBLE > > > select SSB > > > select SSB_PCIHOST > > > > That would, indeed, be possible. But it's ... ugly ... you've now > > effectively pushed the information on what *SSB* depends on into each > > SSB *user* instead of SSB itself... > > No, this information is still in drivers/ssb/Kconfig. > > This would replace: > > config B44 > depends on SSB_PCIHOST > > with: > > config B44 > depends on SSB_PCIHOST_POSSIBLE > select SSB_PCIHOST > > That's an easily understandable pattern without redundant information > about the required dependencies of SSB_PCIHOST. > > > > Is there any extremely good reason why options like SSB or SSB_PCIHOST > > > have to be user visible? > > > > Yes. Embedded systems like the small Linksys routers come with SSB as > > the system bus. No PCI/PCIHOST. > > OK. > > > > And according to the kconfig help text, we should remove the B44_PCI > > > option and enable the code unconditionally? > > > (Or what was the person writing this help text smoking^Wthinking when > > > writing it?) > > > > Same reason. They have a b44 core there but no pci. > > OK, that's understandable. > > But the kconfig user currently only gets: > > config B44_PCI > bool "Broadcom 440x PCI device support" > ... > help > Support for Broadcom 440x PCI devices. > > Say Y, unless you know what you are doing. > If you say N here I will _not_ listen to your > bugreports! > > An example how to make it better: > > config USB_OHCI_HCD_SSB > bool "OHCI support for the Broadcom SSB OHCI core (embedded systems only)" > ... > help > Support for the Sonics Silicon Backplane (SSB) attached > Broadcom USB OHCI core. > > This device is only present in some embedded devices with > Broadcom based SSB bus. > > If unsure, say N. > > That's the difference between a silly sounding help text ("I will _not_ > listen to your bugreports!") and a help text that gives the kconfig user > all required information ("only present in some embedded devices"). > > > And I'm not yet convinced B44_PCI is really worth bothering the user > with - what about automatically enabling PCI support in the driver if > PCI support is enabled in the kernel? That's all a silly discussion, guys. I personally do _not_ care which way we do this. BUT: My users do care. There is currently no way telling them to first enable SSB, when they want to select b44 (for example). Select _does_ introduce breakage. I did use select and I am pretty sure I got the dependencies right. And it _still_ broken on weird architectures. So, I do not care how this is implemented. I do care however, that users do get an advice (at least) on what to do. And that's what my patch does. If someone has a better idea, please provide a patch. -- Greetings Michael. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] b44-ssb: Fix the SSB dependency hell 2007-08-11 9:36 ` Michael Buesch @ 2007-08-11 14:30 ` Adrian Bunk 2007-08-11 14:42 ` Michael Buesch 0 siblings, 1 reply; 12+ messages in thread From: Adrian Bunk @ 2007-08-11 14:30 UTC (permalink / raw) To: Michael Buesch Cc: Johannes Berg, John Linville, Andrew Morton, Linux Netdev List On Sat, Aug 11, 2007 at 11:36:46AM +0200, Michael Buesch wrote: > > That's all a silly discussion, guys. > I personally do _not_ care which way we do this. > BUT: My users do care. There is currently no way telling them to first enable > SSB, when they want to select b44 (for example). The current status quo is that select handles it. You want to send the users into menus to manually enable options. That's worse for your users. > Select _does_ introduce breakage. I did use select and I am pretty sure > I got the dependencies right. And it _still_ broken on weird architectures. Have you looked at how I proposed to handle the SSB dependencies? If yes, why is this broken? > So, I do not care how this is implemented. I do care however, that users > do get an advice (at least) on what to do. And that's what my patch does. > If someone has a better idea, please provide a patch. I do care about your users. And offering more options than required or manually sending users into other menus are bad thing for your users. > Greetings Michael. cu Adrian -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] b44-ssb: Fix the SSB dependency hell 2007-08-11 14:30 ` Adrian Bunk @ 2007-08-11 14:42 ` Michael Buesch 2007-08-11 23:08 ` [RFC: -mm patch] improve the SSB dependencies Adrian Bunk 0 siblings, 1 reply; 12+ messages in thread From: Michael Buesch @ 2007-08-11 14:42 UTC (permalink / raw) To: Adrian Bunk Cc: Johannes Berg, John Linville, Andrew Morton, Linux Netdev List On Saturday 11 August 2007 16:30:02 Adrian Bunk wrote: > And offering more options than required or manually sending users into > other menus are bad thing for your users. Breaking compilations are as bad. So, does your example actually work in practice and not only in theory, too? My select stuff should have worked in theory, too. But it broke, for whatever reasons on whatever weird setups. We somehow are in an endless loop here: loop: implement it with select people complain select it bad and suggest to implement it with depends on implement it with depends on either users don't find it anymore users complain or it needs way to tell the user what to select first developers complain goto loop ;) -- Greetings Michael. ^ permalink raw reply [flat|nested] 12+ messages in thread
* [RFC: -mm patch] improve the SSB dependencies 2007-08-11 14:42 ` Michael Buesch @ 2007-08-11 23:08 ` Adrian Bunk 2007-08-12 12:00 ` Michael Buesch 0 siblings, 1 reply; 12+ messages in thread From: Adrian Bunk @ 2007-08-11 23:08 UTC (permalink / raw) To: Michael Buesch Cc: Adrian Bunk, Johannes Berg, John Linville, Andrew Morton, Linux Netdev List On Sat, Aug 11, 2007 at 04:42:39PM +0200, Michael Buesch wrote: > On Saturday 11 August 2007 16:30:02 Adrian Bunk wrote: > > And offering more options than required or manually sending users into > > other menus are bad thing for your users. > > Breaking compilations are as bad. > So, does your example actually work in practice and not only > in theory, too? My select stuff should have worked in theory, too. > But it broke, for whatever reasons on whatever weird setups. > > We somehow are in an endless loop here: > > loop: > implement it with select > people complain select it bad and suggest to implement it with depends on > implement it with depends on > either > users don't find it anymore > users complain > or > it needs way to tell the user what to select first > developers complain > goto loop > > ;) It's your fault that you base your work on an algorithm lacking the essential steps fix it properly goto out ;-) More seriously, below is a patch doing what I have in mind. > Greetings Michael. cu Adrian <-- snip --> This patch adds *_POSSIBLE helper variables for all SSB* variables that get select'ed. They indicate whether this variable can be select'ed, IOW: whether it's dependencies are fulfilled. Usage in drivers: If you need SSB support: config FOO tristate "foo" depends on SSB_POSSIBLE select SSB If you need SSB_BAZ support: config BAR tristate "bar" depends on SSB_BAZ_POSSIBLE select SSB select SSB_BAZ If your driver needs SSB and has optional functionality requiring SSB_BAZ: config FOOBAR tristate "foobar depends on SSB_POSSIBLE select SSB # due to being "bool" this suboption shouldn't directly select SSB # SSB is already select'ed by FOOBAR config FOOBAR_BAZ bool "baz support in foobar" depends on FOOBAR && SSB_BAZ_POSSIBLE select SSB_BAZ After this patch, SSB_BAZ can be one of: - SSB_PCIHOST - SSB_DRIVER_PCICORE - SSB_PCMCIAHOST - SSB_DEBUG Additional changes in this patch: - small help text changes - B44_PCI is no longer usr visible (automatically enabled when possible) - let SSB_SILENT depend on EMBEDDED (unless you are in a very space restricted environment you don't need to enable it) - make the following options no longer user visible (they are select'ed when required): - SSB_PCIHOST - SSB_DRIVER_PCICORE - SSB_PCMCIAHOST Signed-off-by: Adrian Bunk <bunk@kernel.org> --- drivers/net/Kconfig | 12 --- drivers/net/wireless/bcm43xx-mac80211/Kconfig | 10 +- drivers/ssb/Kconfig | 72 ++++++++++-------- drivers/usb/host/Kconfig | 4 - 4 files changed, 51 insertions(+), 47 deletions(-) 6ed573214282b96e7714b33b89a7221c01efbb86 diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index cea1979..a4f0c2f 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -1435,6 +1435,7 @@ config APRICOT config B44 tristate "Broadcom 440x/47xx ethernet support" depends on HAS_IOMEM + depends on SSB_POSSIBLE select SSB select MII help @@ -1452,17 +1453,10 @@ config B44 called b44. config B44_PCI - bool "Broadcom 440x PCI device support" - depends on B44 && NET_PCI - select SSB_PCIHOST + bool + depends on B44 && SSB_DRIVER_PCICORE_POSSIBLE select SSB_DRIVER_PCICORE default y - help - Support for Broadcom 440x PCI devices. - - Say Y, unless you know what you are doing. - If you say N here I will _not_ listen to your - bugreports! config FORCEDETH tristate "nForce Ethernet support" diff --git a/drivers/net/wireless/bcm43xx-mac80211/Kconfig b/drivers/net/wireless/bcm43xx-mac80211/Kconfig index 8f9df0e..8af8535 100644 --- a/drivers/net/wireless/bcm43xx-mac80211/Kconfig +++ b/drivers/net/wireless/bcm43xx-mac80211/Kconfig @@ -1,6 +1,6 @@ config BCM43XX_MAC80211 tristate "Broadcom BCM43xx wireless support (mac80211 stack)" - depends on MAC80211 && WLAN_80211 && EXPERIMENTAL + depends on MAC80211 && WLAN_80211 && SSB_POSSIBLE && EXPERIMENTAL select FW_LOADER select SSB select HW_RANDOM @@ -10,8 +10,8 @@ config BCM43XX_MAC80211 config BCM43XX_MAC80211_PCI bool "BCM43xx PCI device support" - depends on BCM43XX_MAC80211 && PCI - select SSB_PCIHOST + depends on BCM43XX_MAC80211 + depends on SSB_DRIVER_PCICORE_POSSIBLE select SSB_DRIVER_PCICORE default y ---help--- @@ -24,7 +24,7 @@ config BCM43XX_MAC80211_PCI config BCM43XX_MAC80211_PCMCIA bool "BCM43xx PCMCIA device support" - depends on BCM43XX_MAC80211 && PCMCIA + depends on BCM43XX_MAC80211 && SSB_PCMCIAHOST_POSSIBLE select SSB_PCMCIAHOST ---help--- Broadcom 43xx PCMCIA device support. @@ -45,7 +45,7 @@ config BCM43XX_MAC80211_PCMCIA config BCM43XX_MAC80211_DEBUG bool "Broadcom BCM43xx debugging (RECOMMENDED)" depends on BCM43XX_MAC80211 - select SSB_DEBUG if !SSB_SILENT + select SSB_DEBUG if SSB_DEBUG_POSSIBLE default y ---help--- Broadcom 43xx debugging messages. diff --git a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig index 094703c..366c888 100644 --- a/drivers/ssb/Kconfig +++ b/drivers/ssb/Kconfig @@ -1,37 +1,42 @@ menu "Sonics Silicon Backplane" +config SSB_POSSIBLE + bool + depends on EXPERIMENTAL && HAS_IOMEM + default y + config SSB tristate "Sonics Silicon Backplane support" - depends on EXPERIMENTAL && HAS_IOMEM + depends on SSB_POSSIBLE help - Support for the Sonics Silicon Backplane bus + Support for the Sonics Silicon Backplane bus. + You only need to enable this option if you are + configuring a kernel for an embedded system with + this bus. - The module will be called ssb + The module will be called ssb. - If unsure, say M + If unsure, say N. -config SSB_PCIHOST - bool "Support for SSB on PCI-bus host" - depends on SSB && PCI +config SSB_PCIHOST_POSSIBLE + bool + depends on SSB_POSSIBLE && PCI default y - help - Support for a Sonics Silicon Backplane on top - of a PCI device. - If unsure, say Y +config SSB_PCIHOST + bool -config SSB_PCMCIAHOST - bool "Support for SSB on PCMCIA-bus host" - depends on SSB && PCMCIA - help - Support for a Sonics Silicon Backplane on top - of a PCMCIA device. +config SSB_PCMCIAHOST_POSSIBLE + bool + depends on SSB_POSSIBLE && PCMCIA + default y - If unsure, say N +config SSB_PCMCIAHOST + bool config SSB_SILENT bool "No SSB kernel messages" - depends on SSB + depends on SSB && EMBEDDED help This option turns off all Sonics Silicon Backplane printks. Note that you won't be able to identify problems, once @@ -39,30 +44,35 @@ config SSB_SILENT This might only be desired for production kernels on embedded devices to reduce the kernel size. - Say N + If unsure, say N. + +config SSB_DEBUG_POSSIBLE + bool + depends on SSB && !SSB_SILENT + default y config SSB_DEBUG bool "SSB debugging" - depends on SSB && !SSB_SILENT + depends on SSB_DEBUG_POSSIBLE help This turns on additional runtime checks and debugging messages. Turn this on for SSB troubleshooting. - If unsure, say N + If unsure, say N. config SSB_SERIAL bool depends on SSB # ChipCommon and ExtIf serial support routines. -config SSB_DRIVER_PCICORE - bool "SSB PCI core driver" - depends on SSB && SSB_PCIHOST - help - Driver for the Sonics Silicon Backplane attached - Broadcom PCI core. +config SSB_DRIVER_PCICORE_POSSIBLE + bool + depends on SSB_PCIHOST_POSSIBLE + default y - If unsure, say Y +config SSB_DRIVER_PCICORE + bool + select SSB_PCIHOST config SSB_PCICORE_HOSTMODE bool "Hostmode support for SSB PCI core" @@ -78,7 +88,7 @@ config SSB_DRIVER_MIPS Driver for the Sonics Silicon Backplane attached Broadcom MIPS core. - If unsure, say N + If unsure, say N. config SSB_DRIVER_EXTIF bool "SSB Broadcom EXTIF core driver" @@ -87,6 +97,6 @@ config SSB_DRIVER_EXTIF Driver for the Sonics Silicon Backplane attached Broadcom EXTIF core. - If unsure, say N + If unsure, say N. endmenu diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig index dc3b7fe..d7f5328 100644 --- a/drivers/usb/host/Kconfig +++ b/drivers/usb/host/Kconfig @@ -101,6 +101,7 @@ config USB_OHCI_HCD depends on USB && USB_ARCH_HAS_OHCI select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 select I2C if ARCH_PNX4008 + select SSB if USB_OHCI_HCD_SSB ---help--- The Open Host Controller Interface (OHCI) is a standard for accessing USB 1.1 host controller hardware. It does more in hardware than Intel's @@ -156,8 +157,7 @@ config USB_OHCI_HCD_PCI config USB_OHCI_HCD_SSB bool "OHCI support for the Broadcom SSB OHCI core (embedded systems only)" - depends on USB_OHCI_HCD && ((USB_OHCI_HCD=m && SSB) || (USB_OHCI_HCD=y && SSB=y)) && EXPERIMENTAL - default n + depends on USB_OHCI_HCD && SSB_POSSIBLE && EXPERIMENTAL ---help--- Support for the Sonics Silicon Backplane (SSB) attached Broadcom USB OHCI core. ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [RFC: -mm patch] improve the SSB dependencies 2007-08-11 23:08 ` [RFC: -mm patch] improve the SSB dependencies Adrian Bunk @ 2007-08-12 12:00 ` Michael Buesch 2007-08-12 22:44 ` Adrian Bunk 0 siblings, 1 reply; 12+ messages in thread From: Michael Buesch @ 2007-08-12 12:00 UTC (permalink / raw) To: Adrian Bunk Cc: Adrian Bunk, Johannes Berg, John Linville, Andrew Morton, Linux Netdev List Ok, I'll give it a try, with small modifications. On Sunday 12 August 2007, Adrian Bunk wrote: > Additional changes in this patch: > - small help text changes > - B44_PCI is no longer usr visible (automatically enabled when possible) I think we want that to be selectable, as it's not needed on some embedded devices. And we need to save memory there. > - let SSB_SILENT depend on EMBEDDED (unless you are in a very > space restricted environment you don't need to enable it) Good idea. > - make the following options no longer user visible > (they are select'ed when required): > - SSB_PCIHOST > - SSB_DRIVER_PCICORE No, we need that to be selectable. > - SSB_PCMCIAHOST > > > Signed-off-by: Adrian Bunk <bunk@kernel.org> > > --- > > drivers/net/Kconfig | 12 --- > drivers/net/wireless/bcm43xx-mac80211/Kconfig | 10 +- > drivers/ssb/Kconfig | 72 ++++++++++-------- > drivers/usb/host/Kconfig | 4 - > 4 files changed, 51 insertions(+), 47 deletions(-) > > 6ed573214282b96e7714b33b89a7221c01efbb86 > diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig > index cea1979..a4f0c2f 100644 > --- a/drivers/net/Kconfig > +++ b/drivers/net/Kconfig > @@ -1435,6 +1435,7 @@ config APRICOT > config B44 > tristate "Broadcom 440x/47xx ethernet support" > depends on HAS_IOMEM > + depends on SSB_POSSIBLE > select SSB > select MII > help > @@ -1452,17 +1453,10 @@ config B44 > called b44. > > config B44_PCI > - bool "Broadcom 440x PCI device support" > - depends on B44 && NET_PCI > - select SSB_PCIHOST > + bool > + depends on B44 && SSB_DRIVER_PCICORE_POSSIBLE > select SSB_DRIVER_PCICORE > default y > - help > - Support for Broadcom 440x PCI devices. > - > - Say Y, unless you know what you are doing. > - If you say N here I will _not_ listen to your > - bugreports! > > config FORCEDETH > tristate "nForce Ethernet support" > diff --git a/drivers/net/wireless/bcm43xx-mac80211/Kconfig b/drivers/net/wireless/bcm43xx-mac80211/Kconfig > index 8f9df0e..8af8535 100644 > --- a/drivers/net/wireless/bcm43xx-mac80211/Kconfig > +++ b/drivers/net/wireless/bcm43xx-mac80211/Kconfig > @@ -1,6 +1,6 @@ > config BCM43XX_MAC80211 > tristate "Broadcom BCM43xx wireless support (mac80211 stack)" > - depends on MAC80211 && WLAN_80211 && EXPERIMENTAL > + depends on MAC80211 && WLAN_80211 && SSB_POSSIBLE && EXPERIMENTAL > select FW_LOADER > select SSB > select HW_RANDOM > @@ -10,8 +10,8 @@ config BCM43XX_MAC80211 > > config BCM43XX_MAC80211_PCI > bool "BCM43xx PCI device support" > - depends on BCM43XX_MAC80211 && PCI > - select SSB_PCIHOST > + depends on BCM43XX_MAC80211 > + depends on SSB_DRIVER_PCICORE_POSSIBLE > select SSB_DRIVER_PCICORE > default y > ---help--- > @@ -24,7 +24,7 @@ config BCM43XX_MAC80211_PCI > > config BCM43XX_MAC80211_PCMCIA > bool "BCM43xx PCMCIA device support" > - depends on BCM43XX_MAC80211 && PCMCIA > + depends on BCM43XX_MAC80211 && SSB_PCMCIAHOST_POSSIBLE > select SSB_PCMCIAHOST > ---help--- > Broadcom 43xx PCMCIA device support. > @@ -45,7 +45,7 @@ config BCM43XX_MAC80211_PCMCIA > config BCM43XX_MAC80211_DEBUG > bool "Broadcom BCM43xx debugging (RECOMMENDED)" > depends on BCM43XX_MAC80211 > - select SSB_DEBUG if !SSB_SILENT > + select SSB_DEBUG if SSB_DEBUG_POSSIBLE > default y > ---help--- > Broadcom 43xx debugging messages. > diff --git a/drivers/ssb/Kconfig b/drivers/ssb/Kconfig > index 094703c..366c888 100644 > --- a/drivers/ssb/Kconfig > +++ b/drivers/ssb/Kconfig > @@ -1,37 +1,42 @@ > menu "Sonics Silicon Backplane" > > +config SSB_POSSIBLE > + bool > + depends on EXPERIMENTAL && HAS_IOMEM > + default y > + > config SSB > tristate "Sonics Silicon Backplane support" > - depends on EXPERIMENTAL && HAS_IOMEM > + depends on SSB_POSSIBLE > help > - Support for the Sonics Silicon Backplane bus > + Support for the Sonics Silicon Backplane bus. > + You only need to enable this option if you are > + configuring a kernel for an embedded system with > + this bus. > > - The module will be called ssb > + The module will be called ssb. > > - If unsure, say M > + If unsure, say N. > > -config SSB_PCIHOST > - bool "Support for SSB on PCI-bus host" > - depends on SSB && PCI > +config SSB_PCIHOST_POSSIBLE > + bool > + depends on SSB_POSSIBLE && PCI > default y > - help > - Support for a Sonics Silicon Backplane on top > - of a PCI device. > > - If unsure, say Y > +config SSB_PCIHOST > + bool > > -config SSB_PCMCIAHOST > - bool "Support for SSB on PCMCIA-bus host" > - depends on SSB && PCMCIA > - help > - Support for a Sonics Silicon Backplane on top > - of a PCMCIA device. > +config SSB_PCMCIAHOST_POSSIBLE > + bool > + depends on SSB_POSSIBLE && PCMCIA > + default y > > - If unsure, say N > +config SSB_PCMCIAHOST > + bool > > config SSB_SILENT > bool "No SSB kernel messages" > - depends on SSB > + depends on SSB && EMBEDDED > help > This option turns off all Sonics Silicon Backplane printks. > Note that you won't be able to identify problems, once > @@ -39,30 +44,35 @@ config SSB_SILENT > This might only be desired for production kernels on > embedded devices to reduce the kernel size. > > - Say N > + If unsure, say N. > + > +config SSB_DEBUG_POSSIBLE > + bool > + depends on SSB && !SSB_SILENT > + default y > > config SSB_DEBUG > bool "SSB debugging" > - depends on SSB && !SSB_SILENT > + depends on SSB_DEBUG_POSSIBLE > help > This turns on additional runtime checks and debugging > messages. Turn this on for SSB troubleshooting. > > - If unsure, say N > + If unsure, say N. > > config SSB_SERIAL > bool > depends on SSB > # ChipCommon and ExtIf serial support routines. > > -config SSB_DRIVER_PCICORE > - bool "SSB PCI core driver" > - depends on SSB && SSB_PCIHOST > - help > - Driver for the Sonics Silicon Backplane attached > - Broadcom PCI core. > +config SSB_DRIVER_PCICORE_POSSIBLE > + bool > + depends on SSB_PCIHOST_POSSIBLE > + default y > > - If unsure, say Y > +config SSB_DRIVER_PCICORE > + bool > + select SSB_PCIHOST > > config SSB_PCICORE_HOSTMODE > bool "Hostmode support for SSB PCI core" > @@ -78,7 +88,7 @@ config SSB_DRIVER_MIPS > Driver for the Sonics Silicon Backplane attached > Broadcom MIPS core. > > - If unsure, say N > + If unsure, say N. > > config SSB_DRIVER_EXTIF > bool "SSB Broadcom EXTIF core driver" > @@ -87,6 +97,6 @@ config SSB_DRIVER_EXTIF > Driver for the Sonics Silicon Backplane attached > Broadcom EXTIF core. > > - If unsure, say N > + If unsure, say N. > > endmenu > diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig > index dc3b7fe..d7f5328 100644 > --- a/drivers/usb/host/Kconfig > +++ b/drivers/usb/host/Kconfig > @@ -101,6 +101,7 @@ config USB_OHCI_HCD > depends on USB && USB_ARCH_HAS_OHCI > select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3 > select I2C if ARCH_PNX4008 > + select SSB if USB_OHCI_HCD_SSB > ---help--- > The Open Host Controller Interface (OHCI) is a standard for accessing > USB 1.1 host controller hardware. It does more in hardware than Intel's > @@ -156,8 +157,7 @@ config USB_OHCI_HCD_PCI > > config USB_OHCI_HCD_SSB > bool "OHCI support for the Broadcom SSB OHCI core (embedded systems only)" > - depends on USB_OHCI_HCD && ((USB_OHCI_HCD=m && SSB) || (USB_OHCI_HCD=y && SSB=y)) && EXPERIMENTAL > - default n > + depends on USB_OHCI_HCD && SSB_POSSIBLE && EXPERIMENTAL > ---help--- > Support for the Sonics Silicon Backplane (SSB) attached > Broadcom USB OHCI core. > > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [RFC: -mm patch] improve the SSB dependencies 2007-08-12 12:00 ` Michael Buesch @ 2007-08-12 22:44 ` Adrian Bunk 2007-08-15 0:40 ` John W. Linville 0 siblings, 1 reply; 12+ messages in thread From: Adrian Bunk @ 2007-08-12 22:44 UTC (permalink / raw) To: Michael Buesch Cc: Johannes Berg, John Linville, Andrew Morton, Linux Netdev List On Sun, Aug 12, 2007 at 02:00:26PM +0200, Michael Buesch wrote: > Ok, I'll give it a try, with small modifications. Thanks. > On Sunday 12 August 2007, Adrian Bunk wrote: > > Additional changes in this patch: > > - small help text changes > > - B44_PCI is no longer usr visible (automatically enabled when possible) > > I think we want that to be selectable, as it's not needed > on some embedded devices. And we need to save memory there. >... Makes sense, but then: config B44_PCI bool "Broadcom 440x PCI device support" if EMBEDDED ... default y ... I don't care about how many options we present if CONFIG_EMBEDDED=y, but for the normal CONFIG_EMBEDDED=n case we should not bother the user with this option. cu Adrian -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [RFC: -mm patch] improve the SSB dependencies 2007-08-12 22:44 ` Adrian Bunk @ 2007-08-15 0:40 ` John W. Linville 2007-08-15 12:47 ` Michael Buesch 0 siblings, 1 reply; 12+ messages in thread From: John W. Linville @ 2007-08-15 0:40 UTC (permalink / raw) To: Adrian Bunk Cc: Michael Buesch, Johannes Berg, Andrew Morton, Linux Netdev List On Mon, Aug 13, 2007 at 12:44:02AM +0200, Adrian Bunk wrote: > On Sun, Aug 12, 2007 at 02:00:26PM +0200, Michael Buesch wrote: > > Ok, I'll give it a try, with small modifications. > > Thanks. > > > On Sunday 12 August 2007, Adrian Bunk wrote: > > > Additional changes in this patch: > > > - small help text changes > > > - B44_PCI is no longer usr visible (automatically enabled when possible) > > > > I think we want that to be selectable, as it's not needed > > on some embedded devices. And we need to save memory there. > >... > > Makes sense, but then: > > config B44_PCI > bool "Broadcom 440x PCI device support" if EMBEDDED > ... > default y > ... > > I don't care about how many options we present if CONFIG_EMBEDDED=y, but > for the normal CONFIG_EMBEDDED=n case we should not bother the user with > this option. Was all this resolved? Was there another patch? If so, I missed it... John -- John W. Linville linville@tuxdriver.com ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [RFC: -mm patch] improve the SSB dependencies 2007-08-15 0:40 ` John W. Linville @ 2007-08-15 12:47 ` Michael Buesch 0 siblings, 0 replies; 12+ messages in thread From: Michael Buesch @ 2007-08-15 12:47 UTC (permalink / raw) To: John W. Linville Cc: Adrian Bunk, Johannes Berg, Andrew Morton, Linux Netdev List On Wednesday 15 August 2007 02:40:35 John W. Linville wrote: > On Mon, Aug 13, 2007 at 12:44:02AM +0200, Adrian Bunk wrote: > > On Sun, Aug 12, 2007 at 02:00:26PM +0200, Michael Buesch wrote: > > > Ok, I'll give it a try, with small modifications. > > > > Thanks. > > > > > On Sunday 12 August 2007, Adrian Bunk wrote: > > > > Additional changes in this patch: > > > > - small help text changes > > > > - B44_PCI is no longer usr visible (automatically enabled when possible) > > > > > > I think we want that to be selectable, as it's not needed > > > on some embedded devices. And we need to save memory there. > > >... > > > > Makes sense, but then: > > > > config B44_PCI > > bool "Broadcom 440x PCI device support" if EMBEDDED > > ... > > default y > > ... > > > > I don't care about how many options we present if CONFIG_EMBEDDED=y, but > > for the normal CONFIG_EMBEDDED=n case we should not bother the user with > > this option. > > Was all this resolved? Was there another patch? If so, I missed it... I am going to send one, soon. -- Greetings Michael. ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2007-08-15 12:48 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-08-11 0:08 [PATCH] b44-ssb: Fix the SSB dependency hell Michael Buesch 2007-08-11 0:43 ` Adrian Bunk 2007-08-11 0:57 ` Johannes Berg 2007-08-11 1:41 ` Adrian Bunk 2007-08-11 9:36 ` Michael Buesch 2007-08-11 14:30 ` Adrian Bunk 2007-08-11 14:42 ` Michael Buesch 2007-08-11 23:08 ` [RFC: -mm patch] improve the SSB dependencies Adrian Bunk 2007-08-12 12:00 ` Michael Buesch 2007-08-12 22:44 ` Adrian Bunk 2007-08-15 0:40 ` John W. Linville 2007-08-15 12:47 ` Michael Buesch
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).