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

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.

Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/usb/host/Kconfig    | 36 +++++++++++++++++++++++++++---------
 drivers/usb/host/Makefile   |  2 +-
 drivers/usb/host/uhci-hcd.c |  4 ++--
 3 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index 7b176bc..656af4d 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -525,28 +525,46 @@ config USB_UHCI_HCD
 	  To compile this driver as a module, choose M here: the
 	  module will be called uhci-hcd.
 
-config USB_UHCI_SUPPORT_NON_PCI_HC
-	bool
-	depends on USB_UHCI_HCD
-	default y if (SPARC_LEON || ARCH_VT8500)
+if USB_UHCI_HCD
+
+config USB_UHCI_PCI
+	tristate
+	default USB_UHCI_HCD
+	depends on PCI
+	select USB_UHCI_CORE
+
+config USB_UHCI_GRLIB
+	tristate
+	default USB_UHCI_HCD
+	depends on SPARC_LEON
+	select USB_UHCI_CORE
+	select USB_UHCI_SUPPORT_NON_PCI_HC
+	select USB_UHCI_BIG_ENDIAN_MMIO
+	select USB_UHCI_BIG_ENDIAN_DESC
 
 config USB_UHCI_PLATFORM
 	bool "Generic UHCI Platform Driver support"
-	depends on USB_UHCI_SUPPORT_NON_PCI_HC
 	default y if ARCH_VT8500
+	select USB_UHCI_SUPPORT_NON_PCI_HC
+	select USB_UHCI_CORE
 	---help---
 	  Enable support for generic UHCI platform devices that require no
 	  additional configuration.
 
+config USB_UHCI_CORE
+	tristate
+	depends on USB_UHCI_HCD
+
+config USB_UHCI_SUPPORT_NON_PCI_HC
+	bool
+
 config USB_UHCI_BIG_ENDIAN_MMIO
 	bool
-	depends on USB_UHCI_SUPPORT_NON_PCI_HC && SPARC_LEON
-	default y
 
 config USB_UHCI_BIG_ENDIAN_DESC
 	bool
-	depends on USB_UHCI_SUPPORT_NON_PCI_HC && SPARC_LEON
-	default y
+
+endif
 
 config USB_FHCI_HCD
 	tristate "Freescale QE USB Host Controller support"
diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile
index 4fb73c1..1441d42 100644
--- a/drivers/usb/host/Makefile
+++ b/drivers/usb/host/Makefile
@@ -38,7 +38,7 @@ obj-$(CONFIG_USB_OXU210HP_HCD)	+= oxu210hp-hcd.o
 obj-$(CONFIG_USB_ISP116X_HCD)	+= isp116x-hcd.o
 obj-$(CONFIG_USB_ISP1362_HCD)	+= isp1362-hcd.o
 obj-$(CONFIG_USB_OHCI_HCD)	+= ohci-hcd.o
-obj-$(CONFIG_USB_UHCI_HCD)	+= uhci-hcd.o
+obj-$(CONFIG_USB_UHCI_CORE)	+= uhci-hcd.o
 obj-$(CONFIG_USB_FHCI_HCD)	+= fhci.o
 obj-$(CONFIG_USB_XHCI_HCD)	+= xhci-hcd.o
 obj-$(CONFIG_USB_SL811_HCD)	+= sl811-hcd.o
diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
index 4a86b63..612b792 100644
--- a/drivers/usb/host/uhci-hcd.c
+++ b/drivers/usb/host/uhci-hcd.c
@@ -838,12 +838,12 @@ static int uhci_count_ports(struct usb_hcd *hcd)
 
 static const char hcd_name[] = "uhci_hcd";
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_UHCI_PCI
 #include "uhci-pci.c"
 #define	PCI_DRIVER		uhci_pci_driver
 #endif
 
-#ifdef CONFIG_SPARC_LEON
+#ifdef CONFIG_USB_UHCI_GRLIB
 #include "uhci-grlib.c"
 #define PLATFORM_DRIVER		uhci_grlib_driver
 #endif
-- 
1.8.1.2


  parent reply	other threads:[~2013-05-02 15:18 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 ` Arnd Bergmann [this message]
2013-05-02 17:30   ` [PATCH, RFC 16/22] USB: UHCI: clarify Kconfig dependencies Alan Stern
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=1367507786-505303-17-git-send-email-arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stern@rowland.harvard.edu \
    /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).