mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 1/6] usb: dwc3: USB_DWC3 should depend on HAS_DMA
@ 2013-07-11 13:54 Geert Uytterhoeven
  2013-07-11 13:54 ` [PATCH 2/6] usb: chipidea: USB_CHIPIDEA_UDC " Geert Uytterhoeven
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Geert Uytterhoeven @ 2013-07-11 13:54 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman
  Cc: Alan Stern, Alexander Shishkin, Felipe Balbi, linux-usb,
	linux-kernel, Geert Uytterhoeven

If NO_DMA=y:

drivers/built-in.o: In function `dwc3_free_one_event_buffer':
drivers/usb/dwc3/core.c:132: undefined reference to `dma_free_coherent'
drivers/built-in.o: In function `dwc3_alloc_one_event_buffer':
drivers/usb/dwc3/core.c:154: undefined reference to `dma_alloc_coherent'
drivers/built-in.o: In function `dma_set_coherent_mask':
include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
drivers/built-in.o: In function `dwc3_free_trb_pool':
drivers/usb/dwc3/gadget.c:407: undefined reference to `dma_free_coherent'
drivers/built-in.o: In function `dwc3_gadget_exit':
drivers/usb/dwc3/gadget.c:2693: undefined reference to `dma_free_coherent'
drivers/built-in.o: In function `dwc3_alloc_trb_pool':
drivers/usb/dwc3/gadget.c:391: undefined reference to `dma_alloc_coherent'
drivers/built-in.o: In function `dwc3_gadget_init':
drivers/usb/dwc3/gadget.c:2598: undefined reference to `dma_alloc_coherent'
drivers/usb/dwc3/gadget.c:2667: undefined reference to `dma_free_coherent'
drivers/usb/dwc3/gadget.c:2674: undefined reference to `dma_free_coherent'
drivers/usb/dwc3/gadget.c:2678: undefined reference to `dma_free_coherent'

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 drivers/usb/dwc3/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig
index 757aa18..2378958 100644
--- a/drivers/usb/dwc3/Kconfig
+++ b/drivers/usb/dwc3/Kconfig
@@ -1,6 +1,6 @@
 config USB_DWC3
 	tristate "DesignWare USB3 DRD Core Support"
-	depends on (USB || USB_GADGET) && GENERIC_HARDIRQS
+	depends on (USB || USB_GADGET) && GENERIC_HARDIRQS && HAS_DMA
 	select USB_XHCI_PLATFORM if USB_SUPPORT && USB_XHCI_HCD
 	help
 	  Say Y or M here if your system has a Dual Role SuperSpeed
-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 2/6] usb: chipidea: USB_CHIPIDEA_UDC should depend on HAS_DMA
  2013-07-11 13:54 [PATCH 1/6] usb: dwc3: USB_DWC3 should depend on HAS_DMA Geert Uytterhoeven
@ 2013-07-11 13:54 ` Geert Uytterhoeven
  2013-07-11 13:54 ` [PATCH 3/6] usb: gadget: USB_MV_UDC " Geert Uytterhoeven
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Geert Uytterhoeven @ 2013-07-11 13:54 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman
  Cc: Alan Stern, Alexander Shishkin, Felipe Balbi, linux-usb,
	linux-kernel, Geert Uytterhoeven

If NO_DMA=y:

drivers/built-in.o: In function `dma_set_coherent_mask':
include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
drivers/built-in.o: In function `destroy_eps':
drivers/usb/chipidea/udc.c:1598: undefined reference to `dma_pool_free'
drivers/built-in.o: In function `free_pending_td':
drivers/usb/chipidea/udc.c:540: undefined reference to `dma_pool_free'
drivers/built-in.o: In function `add_td_to_list':
drivers/usb/chipidea/udc.c:383: undefined reference to `dma_pool_alloc'
drivers/built-in.o: In function `_ep_nuke':
drivers/usb/chipidea/udc.c:639: undefined reference to `dma_pool_free'
drivers/built-in.o: In function `udc_stop':
drivers/usb/chipidea/udc.c:1855: undefined reference to `dma_pool_destroy'
drivers/built-in.o: In function `init_eps':
drivers/usb/chipidea/udc.c:1564: undefined reference to `dma_pool_alloc'
drivers/built-in.o: In function `udc_start':
drivers/usb/chipidea/udc.c:1766: undefined reference to `dma_pool_create'
drivers/usb/chipidea/udc.c:1835: undefined reference to `dma_pool_destroy'
drivers/usb/chipidea/udc.c:1837: undefined reference to `dma_pool_destroy'
drivers/built-in.o: In function `ep_free_request':
drivers/usb/chipidea/udc.c:1268: undefined reference to `dma_pool_free'

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 drivers/usb/chipidea/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/chipidea/Kconfig b/drivers/usb/chipidea/Kconfig
index eb2aa2e..189dbc6 100644
--- a/drivers/usb/chipidea/Kconfig
+++ b/drivers/usb/chipidea/Kconfig
@@ -12,7 +12,7 @@ if USB_CHIPIDEA
 
 config USB_CHIPIDEA_UDC
 	bool "ChipIdea device controller"
-	depends on USB_GADGET=y || USB_CHIPIDEA=m
+	depends on (USB_GADGET=y || USB_CHIPIDEA=m) && HAS_DMA
 	help
 	  Say Y here to enable device controller functionality of the
 	  ChipIdea driver.
-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 3/6] usb: gadget: USB_MV_UDC should depend on HAS_DMA
  2013-07-11 13:54 [PATCH 1/6] usb: dwc3: USB_DWC3 should depend on HAS_DMA Geert Uytterhoeven
  2013-07-11 13:54 ` [PATCH 2/6] usb: chipidea: USB_CHIPIDEA_UDC " Geert Uytterhoeven
@ 2013-07-11 13:54 ` Geert Uytterhoeven
  2013-07-11 13:54 ` [PATCH 4/6] usb: gadget: USB_FOTG210_UDC " Geert Uytterhoeven
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 10+ messages in thread
From: Geert Uytterhoeven @ 2013-07-11 13:54 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman
  Cc: Alan Stern, Alexander Shishkin, Felipe Balbi, linux-usb,
	linux-kernel, Geert Uytterhoeven

If NO_DMA=y:

drivers/built-in.o: In function `done':
drivers/usb/gadget/mv_udc_core.c:239: undefined reference to `dma_pool_free'
drivers/built-in.o: In function `build_dtd':
drivers/usb/gadget/mv_udc_core.c:371: undefined reference to `dma_pool_alloc'
drivers/built-in.o: In function `udc_prime_status':
drivers/usb/gadget/mv_udc_core.c:1465: undefined reference to `dma_map_single'
drivers/built-in.o: In function `mv_udc_remove':
drivers/usb/gadget/mv_udc_core.c:2087: undefined reference to `dma_pool_destroy'
drivers/usb/gadget/mv_udc_core.c:2090: undefined reference to `dma_free_coherent'
drivers/built-in.o: In function `mv_udc_probe':
drivers/usb/gadget/mv_udc_core.c:2190: undefined reference to `dma_alloc_coherent'
drivers/usb/gadget/mv_udc_core.c:2201: undefined reference to `dma_pool_create'
drivers/usb/gadget/mv_udc_core.c:2315: undefined reference to `dma_pool_destroy'
drivers/usb/gadget/mv_udc_core.c:2317: undefined reference to `dma_free_coherent'

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 drivers/usb/gadget/Kconfig |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 62f6802..95375d1 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -328,7 +328,7 @@ config USB_S3C_HSUDC
 
 config USB_MV_UDC
 	tristate "Marvell USB2.0 Device Controller"
-	depends on GENERIC_HARDIRQS
+	depends on GENERIC_HARDIRQS && HAS_DMA
 	help
 	  Marvell Socs (including PXA and MMP series) include a high speed
 	  USB2.0 OTG controller, which can be configured as high speed or
-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 4/6] usb: gadget: USB_FOTG210_UDC should depend on HAS_DMA
  2013-07-11 13:54 [PATCH 1/6] usb: dwc3: USB_DWC3 should depend on HAS_DMA Geert Uytterhoeven
  2013-07-11 13:54 ` [PATCH 2/6] usb: chipidea: USB_CHIPIDEA_UDC " Geert Uytterhoeven
  2013-07-11 13:54 ` [PATCH 3/6] usb: gadget: USB_MV_UDC " Geert Uytterhoeven
@ 2013-07-11 13:54 ` Geert Uytterhoeven
  2013-07-11 13:54 ` [PATCH 5/6] usb: gadget: USB_MV_U3D " Geert Uytterhoeven
  2013-07-11 13:54 ` [PATCH 6/6] [RFC] usb: gadget: USB_GADGET " Geert Uytterhoeven
  4 siblings, 0 replies; 10+ messages in thread
From: Geert Uytterhoeven @ 2013-07-11 13:54 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman
  Cc: Alan Stern, Alexander Shishkin, Felipe Balbi, linux-usb,
	linux-kernel, Geert Uytterhoeven

If NO_DMA=y:

drivers/built-in.o: In function `fotg210_start_dma':
drivers/usb/gadget/fotg210-udc.c:354: undefined reference to `dma_map_single'
drivers/usb/gadget/fotg210-udc.c:357: undefined reference to `dma_mapping_error'
drivers/usb/gadget/fotg210-udc.c:362: undefined reference to `dma_sync_single_for_cpu'
drivers/usb/gadget/fotg210-udc.c:376: undefined reference to `dma_unmap_single'

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 drivers/usb/gadget/Kconfig |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 95375d1..8743742 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -193,6 +193,7 @@ config USB_FUSB300
 	   Faraday usb device controller FUSB300 driver
 
 config USB_FOTG210_UDC
+	depends on HAS_DMA
 	tristate "Faraday FOTG210 USB Peripheral Controller"
 	help
 	   Faraday USB2.0 OTG controller which can be configured as
-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 5/6] usb: gadget: USB_MV_U3D should depend on HAS_DMA
  2013-07-11 13:54 [PATCH 1/6] usb: dwc3: USB_DWC3 should depend on HAS_DMA Geert Uytterhoeven
                   ` (2 preceding siblings ...)
  2013-07-11 13:54 ` [PATCH 4/6] usb: gadget: USB_FOTG210_UDC " Geert Uytterhoeven
@ 2013-07-11 13:54 ` Geert Uytterhoeven
  2013-07-11 13:54 ` [PATCH 6/6] [RFC] usb: gadget: USB_GADGET " Geert Uytterhoeven
  4 siblings, 0 replies; 10+ messages in thread
From: Geert Uytterhoeven @ 2013-07-11 13:54 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman
  Cc: Alan Stern, Alexander Shishkin, Felipe Balbi, linux-usb,
	linux-kernel, Geert Uytterhoeven

If NO_DMA=y:

drivers/built-in.o: In function `mv_u3d_done':
drivers/usb/gadget/mv_u3d_core.c:206: undefined reference to `dma_pool_free'
drivers/usb/gadget/mv_u3d_core.c:209: undefined reference to `dma_unmap_single'
drivers/built-in.o: In function `mv_u3d_build_trb_one':
drivers/usb/gadget/mv_u3d_core.c:311: undefined reference to `dma_pool_alloc'
drivers/built-in.o: In function `mv_u3d_req_to_trb':
drivers/usb/gadget/mv_u3d_core.c:480: undefined reference to `dma_map_single'
drivers/built-in.o: In function `mv_u3d_remove':
drivers/usb/gadget/mv_u3d_core.c:1770: undefined reference to `dma_pool_destroy'
drivers/usb/gadget/mv_u3d_core.c:1773: undefined reference to `dma_free_coherent'
drivers/built-in.o: In function `mv_u3d_probe':
drivers/usb/gadget/mv_u3d_core.c:1880: undefined reference to `dma_alloc_coherent'
drivers/usb/gadget/mv_u3d_core.c:1890: undefined reference to `dma_pool_create'
drivers/usb/gadget/mv_u3d_core.c:1984: undefined reference to `dma_pool_destroy'
drivers/usb/gadget/mv_u3d_core.c:1986: undefined reference to `dma_free_coherent'

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
 drivers/usb/gadget/Kconfig |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 8743742..3f8df56 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -336,6 +336,7 @@ config USB_MV_UDC
 	  full speed USB peripheral.
 
 config USB_MV_U3D
+	depends on HAS_DMA
 	tristate "MARVELL PXA2128 USB 3.0 controller"
 	help
 	  MARVELL PXA2128 Processor series include a super speed USB3.0 device
-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 6/6] [RFC] usb: gadget: USB_GADGET should depend on HAS_DMA
  2013-07-11 13:54 [PATCH 1/6] usb: dwc3: USB_DWC3 should depend on HAS_DMA Geert Uytterhoeven
                   ` (3 preceding siblings ...)
  2013-07-11 13:54 ` [PATCH 5/6] usb: gadget: USB_MV_U3D " Geert Uytterhoeven
@ 2013-07-11 13:54 ` Geert Uytterhoeven
  2013-07-11 15:51   ` Alan Stern
  4 siblings, 1 reply; 10+ messages in thread
From: Geert Uytterhoeven @ 2013-07-11 13:54 UTC (permalink / raw)
  To: Arnd Bergmann, Greg Kroah-Hartman
  Cc: Alan Stern, Alexander Shishkin, Felipe Balbi, linux-usb,
	linux-kernel, Geert Uytterhoeven

If NO_DMA=y:

drivers/built-in.o: In function `dma_set_coherent_mask':
include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
drivers/built-in.o: In function `usb_gadget_unmap_request':
drivers/usb/gadget/udc-core.c:91: undefined reference to `dma_unmap_sg'
drivers/usb/gadget/udc-core.c:96: undefined reference to `dma_unmap_single'
drivers/built-in.o: In function `usb_gadget_map_request':
drivers/usb/gadget/udc-core.c:62: undefined reference to `dma_map_sg'
drivers/usb/gadget/udc-core.c:71: undefined reference to `dma_map_single'
drivers/usb/gadget/udc-core.c:74: undefined reference to `dma_mapping_error'

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
---
This one is very debatable: probably the parts using the DMA API should
be factored out, instead of disabling the whole USB gadget subsystem.

 drivers/usb/gadget/Kconfig |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 3f8df56..a88fc47 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -15,6 +15,7 @@
 
 menuconfig USB_GADGET
 	tristate "USB Gadget Support"
+	depends on HAS_DMA
 	select NLS
 	help
 	   USB is a master/slave protocol, organized with one master
-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 6/6] [RFC] usb: gadget: USB_GADGET should depend on HAS_DMA
  2013-07-11 13:54 ` [PATCH 6/6] [RFC] usb: gadget: USB_GADGET " Geert Uytterhoeven
@ 2013-07-11 15:51   ` Alan Stern
  2013-07-12  7:21     ` Geert Uytterhoeven
  2013-07-12  7:39     ` [PATCH 6/6] [RFC] usb: gadget: USB_GADGET should depend on HAS_DMA Alexander Shishkin
  0 siblings, 2 replies; 10+ messages in thread
From: Alan Stern @ 2013-07-11 15:51 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Arnd Bergmann, Greg Kroah-Hartman, Alexander Shishkin,
	Felipe Balbi, linux-usb, linux-kernel

On Thu, 11 Jul 2013, Geert Uytterhoeven wrote:

> If NO_DMA=y:
> 
> drivers/built-in.o: In function `dma_set_coherent_mask':
> include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
> include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
> drivers/built-in.o: In function `usb_gadget_unmap_request':
> drivers/usb/gadget/udc-core.c:91: undefined reference to `dma_unmap_sg'
> drivers/usb/gadget/udc-core.c:96: undefined reference to `dma_unmap_single'
> drivers/built-in.o: In function `usb_gadget_map_request':
> drivers/usb/gadget/udc-core.c:62: undefined reference to `dma_map_sg'
> drivers/usb/gadget/udc-core.c:71: undefined reference to `dma_map_single'
> drivers/usb/gadget/udc-core.c:74: undefined reference to `dma_mapping_error'
> 
> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
> ---
> This one is very debatable: probably the parts using the DMA API should
> be factored out, instead of disabling the whole USB gadget subsystem.

Indeed.  How does this look instead?

Alan Stern



Index: usb-3.10/drivers/usb/gadget/udc-core.c
===================================================================
--- usb-3.10.orig/drivers/usb/gadget/udc-core.c
+++ usb-3.10/drivers/usb/gadget/udc-core.c
@@ -50,6 +50,8 @@ static DEFINE_MUTEX(udc_lock);
 
 /* ------------------------------------------------------------------------- */
 
+#ifdef	CONFIG_HAS_DMA
+
 int usb_gadget_map_request(struct usb_gadget *gadget,
 		struct usb_request *req, int is_in)
 {
@@ -99,6 +101,8 @@ void usb_gadget_unmap_request(struct usb
 }
 EXPORT_SYMBOL_GPL(usb_gadget_unmap_request);
 
+#endif	/* CONFIG_HAS_DMA */
+
 /* ------------------------------------------------------------------------- */
 
 void usb_gadget_set_state(struct usb_gadget *gadget,
@@ -194,9 +198,11 @@ int usb_add_gadget_udc_release(struct de
 	dev_set_name(&gadget->dev, "gadget");
 	gadget->dev.parent = parent;
 
+#ifdef	CONFIG_HAS_DMA
 	dma_set_coherent_mask(&gadget->dev, parent->coherent_dma_mask);
 	gadget->dev.dma_parms = parent->dma_parms;
 	gadget->dev.dma_mask = parent->dma_mask;
+#endif
 
 	if (release)
 		gadget->dev.release = release;


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 6/6] [RFC] usb: gadget: USB_GADGET should depend on HAS_DMA
  2013-07-11 15:51   ` Alan Stern
@ 2013-07-12  7:21     ` Geert Uytterhoeven
  2013-07-12 15:06       ` [PATCH] USB: GADGET: don't fail when DMA isn't present Alan Stern
  2013-07-12  7:39     ` [PATCH 6/6] [RFC] usb: gadget: USB_GADGET should depend on HAS_DMA Alexander Shishkin
  1 sibling, 1 reply; 10+ messages in thread
From: Geert Uytterhoeven @ 2013-07-12  7:21 UTC (permalink / raw)
  To: Alan Stern
  Cc: Arnd Bergmann, Greg Kroah-Hartman, Alexander Shishkin,
	Felipe Balbi, USB list, linux-kernel

Hi Alan,

On Thu, Jul 11, 2013 at 5:51 PM, Alan Stern <stern@rowland.harvard.edu> wrote:
> On Thu, 11 Jul 2013, Geert Uytterhoeven wrote:
>
>> If NO_DMA=y:
>>
>> drivers/built-in.o: In function `dma_set_coherent_mask':
>> include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
>> include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
>> drivers/built-in.o: In function `usb_gadget_unmap_request':
>> drivers/usb/gadget/udc-core.c:91: undefined reference to `dma_unmap_sg'
>> drivers/usb/gadget/udc-core.c:96: undefined reference to `dma_unmap_single'
>> drivers/built-in.o: In function `usb_gadget_map_request':
>> drivers/usb/gadget/udc-core.c:62: undefined reference to `dma_map_sg'
>> drivers/usb/gadget/udc-core.c:71: undefined reference to `dma_map_single'
>> drivers/usb/gadget/udc-core.c:74: undefined reference to `dma_mapping_error'
>>
>> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
>> ---
>> This one is very debatable: probably the parts using the DMA API should
>> be factored out, instead of disabling the whole USB gadget subsystem.
>
> Indeed.  How does this look instead?
>
> Alan Stern
>
>
>
> Index: usb-3.10/drivers/usb/gadget/udc-core.c
> ===================================================================
> --- usb-3.10.orig/drivers/usb/gadget/udc-core.c
> +++ usb-3.10/drivers/usb/gadget/udc-core.c
> @@ -50,6 +50,8 @@ static DEFINE_MUTEX(udc_lock);
>
>  /* ------------------------------------------------------------------------- */
>
> +#ifdef CONFIG_HAS_DMA
> +
>  int usb_gadget_map_request(struct usb_gadget *gadget,
>                 struct usb_request *req, int is_in)
>  {
> @@ -99,6 +101,8 @@ void usb_gadget_unmap_request(struct usb
>  }
>  EXPORT_SYMBOL_GPL(usb_gadget_unmap_request);
>
> +#endif /* CONFIG_HAS_DMA */
> +
>  /* ------------------------------------------------------------------------- */
>
>  void usb_gadget_set_state(struct usb_gadget *gadget,
> @@ -194,9 +198,11 @@ int usb_add_gadget_udc_release(struct de
>         dev_set_name(&gadget->dev, "gadget");
>         gadget->dev.parent = parent;
>
> +#ifdef CONFIG_HAS_DMA
>         dma_set_coherent_mask(&gadget->dev, parent->coherent_dma_mask);
>         gadget->dev.dma_parms = parent->dma_parms;
>         gadget->dev.dma_mask = parent->dma_mask;
> +#endif
>
>         if (release)
>                 gadget->dev.release = release;

Thanks, that works!

(after adding a few more dependencies on HAS_DMA for drivers that call
into usb_gadget_{,un}map_request() and/or dma_set_coherent_mask(),
for which I'll send separate patches).

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 6/6] [RFC] usb: gadget: USB_GADGET should depend on HAS_DMA
  2013-07-11 15:51   ` Alan Stern
  2013-07-12  7:21     ` Geert Uytterhoeven
@ 2013-07-12  7:39     ` Alexander Shishkin
  1 sibling, 0 replies; 10+ messages in thread
From: Alexander Shishkin @ 2013-07-12  7:39 UTC (permalink / raw)
  To: Alan Stern, Geert Uytterhoeven
  Cc: Arnd Bergmann, Greg Kroah-Hartman, Felipe Balbi, linux-usb, linux-kernel

Alan Stern <stern@rowland.harvard.edu> writes:

> On Thu, 11 Jul 2013, Geert Uytterhoeven wrote:
>
>> If NO_DMA=y:
>> 
>> drivers/built-in.o: In function `dma_set_coherent_mask':
>> include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
>> include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
>> drivers/built-in.o: In function `usb_gadget_unmap_request':
>> drivers/usb/gadget/udc-core.c:91: undefined reference to `dma_unmap_sg'
>> drivers/usb/gadget/udc-core.c:96: undefined reference to `dma_unmap_single'
>> drivers/built-in.o: In function `usb_gadget_map_request':
>> drivers/usb/gadget/udc-core.c:62: undefined reference to `dma_map_sg'
>> drivers/usb/gadget/udc-core.c:71: undefined reference to `dma_map_single'
>> drivers/usb/gadget/udc-core.c:74: undefined reference to `dma_mapping_error'
>> 
>> Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
>> ---
>> This one is very debatable: probably the parts using the DMA API should
>> be factored out, instead of disabling the whole USB gadget subsystem.
>
> Indeed.  How does this look instead?

This one is much better. FWIW,

Acked-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>

Regards,
--
Alex

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH] USB: GADGET: don't fail when DMA isn't present
  2013-07-12  7:21     ` Geert Uytterhoeven
@ 2013-07-12 15:06       ` Alan Stern
  0 siblings, 0 replies; 10+ messages in thread
From: Alan Stern @ 2013-07-12 15:06 UTC (permalink / raw)
  To: Felipe Balbi, Geert Uytterhoeven
  Cc: Arnd Bergmann, Greg Kroah-Hartman, Alexander Shishkin, USB list,
	linux-kernel

When CONFIG_HAS_DMA isn't enabled, the UDC core gets build errors:

drivers/built-in.o: In function `dma_set_coherent_mask':
include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
include/linux/dma-mapping.h:93: undefined reference to `dma_supported'
drivers/built-in.o: In function `usb_gadget_unmap_request':
drivers/usb/gadget/udc-core.c:91: undefined reference to `dma_unmap_sg'
drivers/usb/gadget/udc-core.c:96: undefined reference to `dma_unmap_single'
drivers/built-in.o: In function `usb_gadget_map_request':
drivers/usb/gadget/udc-core.c:62: undefined reference to `dma_map_sg'
drivers/usb/gadget/udc-core.c:71: undefined reference to `dma_map_single'
drivers/usb/gadget/udc-core.c:74: undefined reference to `dma_mapping_error'

Prevent this by protecting the DMA API routines with preprocessor tests.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
CC: Geert Uytterhoeven <geert@linux-m68k.org>
Acked-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>

---


[as1693]

 drivers/usb/gadget/udc-core.c |    6 ++++++
 1 file changed, 6 insertions(+)

Index: usb-3.10/drivers/usb/gadget/udc-core.c
===================================================================
--- usb-3.10.orig/drivers/usb/gadget/udc-core.c
+++ usb-3.10/drivers/usb/gadget/udc-core.c
@@ -50,6 +50,8 @@ static DEFINE_MUTEX(udc_lock);
 
 /* ------------------------------------------------------------------------- */
 
+#ifdef	CONFIG_HAS_DMA
+
 int usb_gadget_map_request(struct usb_gadget *gadget,
 		struct usb_request *req, int is_in)
 {
@@ -99,6 +101,8 @@ void usb_gadget_unmap_request(struct usb
 }
 EXPORT_SYMBOL_GPL(usb_gadget_unmap_request);
 
+#endif	/* CONFIG_HAS_DMA */
+
 /* ------------------------------------------------------------------------- */
 
 void usb_gadget_set_state(struct usb_gadget *gadget,
@@ -194,9 +198,11 @@ int usb_add_gadget_udc_release(struct de
 	dev_set_name(&gadget->dev, "gadget");
 	gadget->dev.parent = parent;
 
+#ifdef	CONFIG_HAS_DMA
 	dma_set_coherent_mask(&gadget->dev, parent->coherent_dma_mask);
 	gadget->dev.dma_parms = parent->dma_parms;
 	gadget->dev.dma_mask = parent->dma_mask;
+#endif
 
 	if (release)
 		gadget->dev.release = release;


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2013-07-12 15:06 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-07-11 13:54 [PATCH 1/6] usb: dwc3: USB_DWC3 should depend on HAS_DMA Geert Uytterhoeven
2013-07-11 13:54 ` [PATCH 2/6] usb: chipidea: USB_CHIPIDEA_UDC " Geert Uytterhoeven
2013-07-11 13:54 ` [PATCH 3/6] usb: gadget: USB_MV_UDC " Geert Uytterhoeven
2013-07-11 13:54 ` [PATCH 4/6] usb: gadget: USB_FOTG210_UDC " Geert Uytterhoeven
2013-07-11 13:54 ` [PATCH 5/6] usb: gadget: USB_MV_U3D " Geert Uytterhoeven
2013-07-11 13:54 ` [PATCH 6/6] [RFC] usb: gadget: USB_GADGET " Geert Uytterhoeven
2013-07-11 15:51   ` Alan Stern
2013-07-12  7:21     ` Geert Uytterhoeven
2013-07-12 15:06       ` [PATCH] USB: GADGET: don't fail when DMA isn't present Alan Stern
2013-07-12  7:39     ` [PATCH 6/6] [RFC] usb: gadget: USB_GADGET should depend on HAS_DMA Alexander Shishkin

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®