From: Arnd Bergmann <arnd@arndb.de>
To: Tony Lindgren <tony@atomide.com>
Cc: linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
Felipe Balbi <balbi@ti.com>
Subject: [PATCH 15/30] usb/musb: use a Kconfig choice to pick the right DMA method
Date: Sun, 2 Oct 2011 16:45:45 +0200 [thread overview]
Message-ID: <1317566760-25681-16-git-send-email-arnd@arndb.de> (raw)
In-Reply-To: <1317566760-25681-1-git-send-email-arnd@arndb.de>
The logic to allow only one DMA driver in MUSB is currently
flawed, because it also allows picking no DMA driver at all
and also not selecting PIO mode.
Using a choice statement makes this foolproof for now and
also simplifies the Makefile.
Unfortunately, we will have to revisit this when we start
supporting multiple ARM platforms in a single kernel binary,
because at that point we will actually need to select
multiple DMA drivers and pick the right one at run-time.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Felipe Balbi <balbi@ti.com>
---
drivers/usb/musb/Kconfig | 57 ++++++++++++++++++++++++++------------------
drivers/usb/musb/Makefile | 26 +++-----------------
2 files changed, 38 insertions(+), 45 deletions(-)
diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
index fc34b8b..d596fb2 100644
--- a/drivers/usb/musb/Kconfig
+++ b/drivers/usb/musb/Kconfig
@@ -64,46 +64,57 @@ config USB_MUSB_UX500
endchoice
-config MUSB_PIO_ONLY
- bool 'Disable DMA (always use PIO)'
- depends on USB_MUSB_HDRC
- default USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X
+choice
+ prompt 'MUSB DMA mode'
+ default USB_UX500_DMA if USB_MUSB_UX500
+ default USB_INVENTRA_DMA if USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
+ default USB_TI_CPPI_DMA if USB_MUSB_DAVINCI
+ default USB_TUSB_OMAP_DMA if USB_MUSB_TUSB6010
+ default MUSB_PIO_ONLY if USB_MUSB_TUSB6010 || USB_MUSB_DA8XX || USB_MUSB_AM35X
help
- All data is copied between memory and FIFO by the CPU.
- DMA controllers are ignored.
-
- Do not select 'n' here unless DMA support for your SOC or board
- is unavailable (or unstable). When DMA is enabled at compile time,
- you can still disable it at run time using the "use_dma=n" module
- parameter.
+ Unfortunately, only one option can be enabled here. Ideally one
+ should be able to build all these drivers into one kernel to
+ allow using DMA on multiplatform kernels.
config USB_UX500_DMA
- bool
- depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
- default USB_MUSB_UX500
+ bool 'ST Ericsson U8500 and U5500'
+ depends on USB_MUSB_HDRC
+ depends on USB_MUSB_UX500
help
Enable DMA transfers on UX500 platforms.
config USB_INVENTRA_DMA
- bool
- depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
- default USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
+ bool 'Inventra'
+ depends on USB_MUSB_HDRC
+ depends on USB_MUSB_OMAP2PLUS || USB_MUSB_BLACKFIN
help
Enable DMA transfers using Mentor's engine.
config USB_TI_CPPI_DMA
- bool
- depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
- default USB_MUSB_DAVINCI
+ bool 'TI CPPI (Davinci)'
+ depends on USB_MUSB_HDRC
+ depends on USB_MUSB_DAVINCI
help
Enable DMA transfers when TI CPPI DMA is available.
config USB_TUSB_OMAP_DMA
- bool
- depends on USB_MUSB_HDRC && !MUSB_PIO_ONLY
+ bool 'TUSB 6010'
+ depends on USB_MUSB_HDRC
depends on USB_MUSB_TUSB6010
depends on ARCH_OMAP
- default y
help
Enable DMA transfers on TUSB 6010 when OMAP DMA is available.
+config MUSB_PIO_ONLY
+ bool 'Disable DMA (always use PIO)'
+ depends on USB_MUSB_HDRC
+ help
+ All data is copied between memory and FIFO by the CPU.
+ DMA controllers are ignored.
+
+ Do not choose this unless DMA support for your SOC or board
+ is unavailable (or unstable). When DMA is enabled at compile time,
+ you can still disable it at run time using the "use_dma=n" module
+ parameter.
+
+endchoice
diff --git a/drivers/usb/musb/Makefile b/drivers/usb/musb/Makefile
index d8fd9d0..88bfb9d 100644
--- a/drivers/usb/musb/Makefile
+++ b/drivers/usb/musb/Makefile
@@ -24,25 +24,7 @@ obj-$(CONFIG_USB_MUSB_UX500) += ux500.o
# PIO only, or DMA (several potential schemes).
# though PIO is always there to back up DMA, and for ep0
-ifneq ($(CONFIG_MUSB_PIO_ONLY),y)
-
- ifeq ($(CONFIG_USB_INVENTRA_DMA),y)
- musb_hdrc-y += musbhsdma.o
-
- else
- ifeq ($(CONFIG_USB_TI_CPPI_DMA),y)
- musb_hdrc-y += cppi_dma.o
-
- else
- ifeq ($(CONFIG_USB_TUSB_OMAP_DMA),y)
- musb_hdrc-y += tusb6010_omap.o
-
- else
- ifeq ($(CONFIG_USB_UX500_DMA),y)
- musb_hdrc-y += ux500_dma.o
-
- endif
- endif
- endif
- endif
-endif
+musb_hdrc-$(CONFIG_USB_INVENTRA_DMA) += musbhsdma.o
+musb_hdrc-$(CONFIG_USB_TI_CPPI_DMA) += cppi_dma.o
+musb_hdrc-$(CONFIG_USB_TUSB_OMAP_DMA) += tusb6010_omap.o
+musb_hdrc-$(CONFIG_USB_UX500_DMA) += ux500_dma.o
--
1.7.5.4
next prev parent reply other threads:[~2011-10-02 14:50 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-02 14:45 [PATCH 00/30] ARM/omap: omap specific randconfig fixes Arnd Bergmann
2011-10-02 14:45 ` [PATCH 01/30] sound/omap: omap_mcpdm_remove cannot be __devexit Arnd Bergmann
2011-10-02 19:24 ` Mark Brown
2011-10-02 14:45 ` [PATCH 02/30] video/omap: fix dependencies Arnd Bergmann
2011-10-03 6:53 ` Tomi Valkeinen
2011-10-03 9:51 ` Arnd Bergmann
2011-10-02 14:45 ` [PATCH 03/30] video/omap: fix build dependencies Arnd Bergmann
2011-10-03 6:59 ` Tomi Valkeinen
2011-10-03 9:51 ` Arnd Bergmann
2011-10-02 14:45 ` [PATCH 04/30] ARM: omap: add missing __devexit_p() annotations Arnd Bergmann
2011-10-02 15:56 ` Bjarne Steinsbo
2011-10-02 16:09 ` Russell King - ARM Linux
2011-10-03 17:46 ` Tony Lindgren
2011-10-03 17:48 ` Tony Lindgren
2011-10-03 4:59 ` Santosh Shilimkar
2011-10-02 14:45 ` [PATCH 05/30] ARM: omap: enable building omap2 without omap2420/2430 Arnd Bergmann
2011-10-03 5:07 ` Santosh Shilimkar
2011-10-03 17:53 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 06/30] ARM: omap: fix build with CONFIG_I2C_OMAP disabled Arnd Bergmann
2011-10-03 5:06 ` Santosh Shilimkar
2011-10-02 14:45 ` [PATCH 07/30] ARM: omap: fix visibility of omap2_mbox_iva_priv Arnd Bergmann
2011-10-03 5:08 ` Santosh Shilimkar
2011-10-02 14:45 ` [PATCH 08/30] ARM: omap2+: fix building without i2c Arnd Bergmann
2011-10-03 1:31 ` Paul Walmsley
2011-10-03 9:49 ` Arnd Bergmann
2011-10-03 17:56 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 09/30] ARM: omap2: export functions used by nand driver Arnd Bergmann
2011-10-03 17:56 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 10/30] ARM: omap/iommu: always provide iommu debug code Arnd Bergmann
2011-10-02 16:34 ` Ohad Ben-Cohen
2011-10-02 18:01 ` Arnd Bergmann
2011-10-02 18:21 ` Ohad Ben-Cohen
2011-10-03 17:57 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 11/30] ARM: omap2/n8x0: work around modular omap mmc Arnd Bergmann
2011-10-02 15:53 ` Russell King - ARM Linux
2011-10-02 18:54 ` Arnd Bergmann
2011-10-03 18:03 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 12/30] ARM: omap4: always build omap_phy_internal Arnd Bergmann
2011-10-03 18:04 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 13/30] ARM: omap2+: fix omap_hdq_init compilation Arnd Bergmann
2011-10-03 5:11 ` Santosh Shilimkar
2011-10-03 18:06 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 14/30] ARM: omap2: irq.c is always needed Arnd Bergmann
2011-10-03 5:14 ` Santosh Shilimkar
2011-10-02 14:45 ` Arnd Bergmann [this message]
2011-10-02 16:14 ` [PATCH 15/30] usb/musb: use a Kconfig choice to pick the right DMA method Russell King - ARM Linux
2011-10-02 18:00 ` Arnd Bergmann
2011-10-02 18:56 ` Felipe Balbi
2011-10-02 19:44 ` Arnd Bergmann
2011-10-02 22:10 ` Felipe Balbi
2011-10-03 9:40 ` Arnd Bergmann
2011-10-03 10:07 ` Felipe Balbi
2011-10-10 6:10 ` Felipe Balbi
2011-10-02 14:45 ` [PATCH 16/30] usb/musb: HDRC depends on TWL4030_CORE for OMAP3/4 Arnd Bergmann
2011-10-02 18:59 ` Felipe Balbi
2011-10-02 14:45 ` [PATCH 17/30] usb/musb: allow building USB_MUSB_TUSB6010 as a module Arnd Bergmann
2011-10-03 18:14 ` Tony Lindgren
2011-10-10 6:10 ` Felipe Balbi
2011-10-02 14:45 ` [PATCH 18/30] omap-usb: automatically select MFD_OMAP_USB_HOST Arnd Bergmann
2011-10-04 11:00 ` Samuel Ortiz
2011-10-02 14:45 ` [PATCH 19/30] tty/serial/omap: console can only be built-in Arnd Bergmann
2011-10-03 4:53 ` Govindraj
2011-10-02 14:45 ` [PATCH 20/30] media/omap_vout: disable driver for now Arnd Bergmann
2011-10-03 6:09 ` Archit Taneja
2011-10-03 9:16 ` Arnd Bergmann
2011-10-02 14:45 ` [PATCH 21/30] sound/soc/omap: limit to omap2plus Arnd Bergmann
2011-10-02 17:40 ` Jarkko Nikula
2011-10-02 18:03 ` Arnd Bergmann
2011-10-02 18:24 ` Jarkko Nikula
2011-10-02 18:30 ` Arnd Bergmann
2011-10-02 19:18 ` Mark Brown
2011-10-02 14:45 ` [PATCH 22/30] mfd: build twl6030 only on omap2 Arnd Bergmann
2011-10-04 10:47 ` Samuel Ortiz
2011-10-04 14:47 ` Arnd Bergmann
2011-10-02 14:45 ` [PATCH 23/30] ARM: omap2: select twl4030 support on boards that need it Arnd Bergmann
2011-10-03 5:19 ` Santosh Shilimkar
2011-10-03 11:03 ` Arnd Bergmann
2011-10-03 18:18 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 24/30] ARM: omap2+: ensure that one of omap2/3/4 is selected Arnd Bergmann
2011-10-03 5:20 ` Santosh Shilimkar
2011-10-03 18:21 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 25/30] ARM: OMAP depends on MMU Arnd Bergmann
2011-10-03 5:21 ` Santosh Shilimkar
2011-10-03 18:22 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 26/30] ARM: omap: add board autoselection Arnd Bergmann
2011-10-03 5:28 ` Santosh Shilimkar
2011-10-03 9:11 ` Arnd Bergmann
2011-10-03 9:19 ` Santosh Shilimkar
2011-10-03 9:27 ` Cousson, Benoit
2011-10-03 9:54 ` Arnd Bergmann
2011-10-03 18:26 ` Tony Lindgren
2011-10-04 7:44 ` Arnd Bergmann
2011-10-04 15:57 ` Tony Lindgren
2011-10-04 19:29 ` Arnd Bergmann
2011-10-05 1:05 ` [GIT PULL] initial omap DT support for v3.2 merge window (Re: [PATCH 26/30] ARM: omap: add board autoselection) Tony Lindgren
2011-10-14 16:02 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 27/30] ARM: omap: select L2X0 cache on omap4 Arnd Bergmann
2011-10-03 5:29 ` Santosh Shilimkar
2011-10-03 18:27 ` Tony Lindgren
2011-10-02 14:45 ` [PATCH 28/30] ARM: omap: select CPU_FREQ_TABLE where needed Arnd Bergmann
2011-10-03 5:39 ` Santosh Shilimkar
2011-10-03 9:15 ` Arnd Bergmann
2011-10-03 9:33 ` Santosh Shilimkar
2011-10-02 14:45 ` [PATCH 29/30] ARM: omap: select USB_ARCH_HAS_EHCI only when USB is enabled Arnd Bergmann
2011-10-03 18:27 ` Tony Lindgren
2011-10-02 14:46 ` [PATCH 30/30] ARM: omap2: select ARM_AMBA for OMAP3_EMU Arnd Bergmann
2011-10-03 5:31 ` Santosh Shilimkar
2011-10-03 18:28 ` Tony Lindgren
2011-10-03 5:05 ` [PATCH 00/30] ARM/omap: omap specific randconfig fixes Santosh Shilimkar
2011-10-03 9:22 ` Arnd Bergmann
2011-10-03 9:42 ` Santosh Shilimkar
2011-10-03 18:29 ` Tony Lindgren
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=1317566760-25681-16-git-send-email-arnd@arndb.de \
--to=arnd@arndb.de \
--cc=balbi@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=tony@atomide.com \
/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
all inboxes | Powered by JetHome®