linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alan Stern <stern@rowland.harvard.edu>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-kernel@vger.kernel.org,
	<linux-arm-kernel@lists.infradead.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Re: [PATCH, RFC 16/22] USB: UHCI: clarify Kconfig dependencies
Date: Thu, 2 May 2013 13:30:17 -0400 (EDT)	[thread overview]
Message-ID: <Pine.LNX.4.44L0.1305021304500.1436-100000@iolanthe.rowland.org> (raw)
In-Reply-To: <1367507786-505303-17-git-send-email-arnd@arndb.de>

On Thu, 2 May 2013, Arnd Bergmann wrote:

> The UHCI driver currently gives a build error if the base driver is
> enabled but none of the three bus glues are turned on:
> 
> drivers/usb/host/uhci-hcd.c:857:2: error: #error "missing bus glue for uhci-hcd"
> 
> A better solution for this is to change the Kconfig statements to
> prevent getting into this situation. This adds a new USB_UHCI_CORE
> symbol in Kconfig, which is selected by each of the three bus glues.
> This way, the driver never gets built if all three of them are disabled.

I had already worked out a patch on my own for this (below).  It is
different from yours in several ways:

	It relies more on "depends" than "select".  I don't know how 
	important this is in the end.

	It doesn't add a new USB_UHCI_GRLIB symbol; instead it uses
	SPARC_LEON in several places.  I tend to think the new symbol
	is nicer.

	It doesn't add a new USB_UHCI_PCI symbol.

	It improves the dependency list for USB_UHCI_HCD.

	It removes the help text for USB_UHCI_PLATFORM, thereby making
	that symbol not user-configurable.  I don't see any reason why
	the user should need to worry about this -- the choice should
	be a very simple one: build UHCI support or don't build it.  If
	the user chooses to build it then it should include support for
	all the compatible bus glues.  (This last decision may need to 
	be changed if more bus glues get added.)

	It prevents situations where USB_UHCI_HCD is enabled but the
	driver doesn't get built.

	It creates a bunch of USB_UHCI_* symbols even when USB_UHCI_HCD
	is disabled.  This is a disadvantage, but I don't see any way
	around it.  Basically, we have to consider two separate but
	related questions:

		Does the supported hardware configuration allow for 
		UHCI?

		Which types of UHCI bus glue support should be included 
		in the kernel?

	If the answer to the first is Yes then creating these symbols
	seems unavoidable, even when the answer to the second is None.

Maybe the ideal solution is some sort of combination of the two
patches.

What do you think of my patch as compared to yours?  And what do you
think of the "depends" vs. "select" issue?

Alan Stern



Index: usb-3.9/drivers/usb/host/Kconfig
===================================================================
--- usb-3.9.orig/drivers/usb/host/Kconfig
+++ usb-3.9/drivers/usb/host/Kconfig
@@ -507,7 +507,7 @@ endif # USB_OHCI_HCD
 
 config USB_UHCI_HCD
 	tristate "UHCI HCD (most Intel and VIA) support"
-	depends on PCI || SPARC_LEON || ARCH_VT8500
+	depends on PCI || USB_UHCI_SUPPORT_NON_PCI_HC
 	---help---
 	  The Universal Host Controller Interface is a standard by Intel for
 	  accessing the USB hardware in the PC (which is also called the USB
@@ -524,26 +524,19 @@ config USB_UHCI_HCD
 
 config USB_UHCI_SUPPORT_NON_PCI_HC
 	bool
-	depends on USB_UHCI_HCD
-	default y if (SPARC_LEON || ARCH_VT8500)
+	default y if (SPARC_LEON || USB_UHCI_PLATFORM)
 
 config USB_UHCI_PLATFORM
-	bool "Generic UHCI Platform Driver support"
-	depends on USB_UHCI_SUPPORT_NON_PCI_HC
+	bool
 	default y if ARCH_VT8500
-	---help---
-	  Enable support for generic UHCI platform devices that require no
-	  additional configuration.
 
 config USB_UHCI_BIG_ENDIAN_MMIO
 	bool
-	depends on USB_UHCI_SUPPORT_NON_PCI_HC && SPARC_LEON
-	default y
+	default y if SPARC_LEON
 
 config USB_UHCI_BIG_ENDIAN_DESC
 	bool
-	depends on USB_UHCI_SUPPORT_NON_PCI_HC && SPARC_LEON
-	default y
+	default y if SPARC_LEON
 
 config USB_FHCI_HCD
 	tristate "Freescale QE USB Host Controller support"



  reply	other threads:[~2013-05-02 17:30 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-02 15:16 [PATCH, RFC 00/22] ARM randconfig bugs Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 01/22] can: move CONFIG_HAVE_CAN_FLEXCAN out of CAN_DEV Arnd Bergmann
2013-05-03  9:53   ` Marc Kleine-Budde
2013-05-03 15:24     ` Arnd Bergmann
2013-05-07  9:18       ` Marc Kleine-Budde
2013-05-02 15:16 ` [PATCH, RFC 02/22] cpufreq: ARM_DT_BL_CPUFREQ needs ARM_CPU_TOPOLOGY Arnd Bergmann
2013-05-03  4:51   ` Viresh Kumar
2013-05-03 12:15     ` Rafael J. Wysocki
2013-05-03 13:01       ` Viresh Kumar
2013-05-03 19:27         ` Rafael J. Wysocki
2013-05-04  6:39   ` Viresh Kumar
2013-05-08  0:26     ` Rafael J. Wysocki
2013-05-02 15:16 ` [PATCH, RFC 03/22] cpuidle: calxeda: select ARM_CPU_SUSPEND Arnd Bergmann
2013-05-02 21:31   ` Daniel Lezcano
2013-05-07 21:42   ` Rob Herring
2013-05-02 15:16 ` [PATCH, RFC 04/22] staging/drm: imx: add missing dependencies Arnd Bergmann
2013-05-03  2:16   ` Shawn Guo
2013-05-03 15:21     ` Arnd Bergmann
2013-05-04 12:35       ` Shawn Guo
2013-05-02 15:16 ` [PATCH, RFC 05/22] drm: always provide debugfs function prototypes Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 06/22] gpu/drm: host1x: add dependency on Tegra Arnd Bergmann
2013-05-03 13:45   ` Thierry Reding
2013-05-03 14:02     ` Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 07/22] drm/tilcd: select BACKLIGHT_LCD_SUPPORT Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 08/22] OMAPDSS: DPI needs DSI Arnd Bergmann
2013-05-02 15:42   ` Tomi Valkeinen
2013-05-02 16:26     ` Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 09/22] crypto: lz4: don't build on ARM Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 10/22] mfd: ab8500: debugfs code depends on gpadc Arnd Bergmann
2013-05-02 15:36   ` Lee Jones
2013-05-02 16:24     ` Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 11/22] iwlegacy: il_pm_ops is only provided for PM_SLEEP Arnd Bergmann
2013-05-05 20:29   ` Borislav Petkov
2013-05-02 15:16 ` [PATCH, RFC 12/22] thermal: cpu_cooling: fix stub function Arnd Bergmann
2013-05-02 15:46   ` Eduardo Valentin
2013-05-02 16:29     ` [PATCH v2] " Arnd Bergmann
2013-05-02 16:54       ` Eduardo Valentin
2013-05-08 12:12         ` Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 13/22] staging/logger: use kuid_t internally Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 14/22] oprofile: always enable IRQ_WORK Arnd Bergmann
2013-05-03 11:53   ` Robert Richter
2013-05-03 13:30     ` Steven Rostedt
2013-05-03 15:14     ` Steven Rostedt
2013-05-03 21:26       ` Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 15/22] USB: EHCI: remove bogus #error Arnd Bergmann
2013-05-02 17:34   ` Alan Stern
2013-05-02 17:55     ` Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 16/22] USB: UHCI: clarify Kconfig dependencies Arnd Bergmann
2013-05-02 17:30   ` Alan Stern [this message]
2013-05-02 17:52     ` Arnd Bergmann
2013-05-02 18:27       ` Alan Stern
2013-05-02 19:12         ` Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 17/22] USB: OHCI: " Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 18/22] Xen: SWIOTLB is only used on x86 Arnd Bergmann
2013-05-02 15:38   ` Stefano Stabellini
2013-05-02 18:13     ` Konrad Rzeszutek Wilk
2013-05-02 18:16       ` Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 19/22] staging/solo6x10: depend on CONFIG_FONTS Arnd Bergmann
2013-05-23 20:15   ` Geert Uytterhoeven
2013-05-23 21:47     ` Arnd Bergmann
2013-05-02 15:16 ` [PATCH, RFC 20/22] media: coda: select GENERIC_ALLOCATOR Arnd Bergmann
2013-05-02 17:20   ` Alexander Shiyan
2013-05-02 19:53     ` Arnd Bergmann
2013-05-03  2:33       ` Shawn Guo
2013-05-02 15:16 ` [PATCH, RFC 21/22] davinci: vpfe_capture needs i2c Arnd Bergmann
2013-05-03 11:00   ` Prabhakar Lad
2013-05-02 15:16 ` [PATCH, RFC 22/22] radio-si4713: depend on SND_SOC Arnd Bergmann
2013-05-02 15:24   ` edubezval
2013-05-02 16:25     ` Arnd Bergmann
2013-05-02 17:37   ` Mauro Carvalho Chehab
2013-05-02 17:57     ` Arnd Bergmann
2013-05-02 18:53 ` [PATCH, RFC 00/22] ARM randconfig bugs Rafael J. Wysocki
2013-05-02 23:52 ` Re : [PATCH, RFC 09/22] crypto: lz4: don't build on ARM Chanho Min
2013-05-03 15:29   ` Arnd Bergmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.44L0.1305021304500.1436-100000@iolanthe.rowland.org \
    --to=stern@rowland.harvard.edu \
    --cc=arnd@arndb.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).