Patchwork [U-Boot,1/3] usb:g_dnl:ums: Conditional compilation for mass storage function (f_mass_storage)

login
register
mail settings
Submitter Łukasz Majewski
Date Sept. 17, 2013, 1:58 p.m.
Message ID <1379426303-16111-1-git-send-email-l.majewski@samsung.com>
Download mbox | patch
Permalink /patch/275478/
State Awaiting Upstream
Delegated to: Marek Vasut
Headers show

Comments

Łukasz Majewski - Sept. 17, 2013, 1:58 p.m.
The mass storage composite function is now compiled in only when
CONFIG_USB_GADGET_MASS_STORAGE is defined.
Such change provides binary size reduction for boards which use USB
download gadget (like am335x_evm) with DFU, but don't use UMS.

For example at am335x_evm board reduction is more than 2KiB for
text and around 120B for data.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Cc: Marek Vasut <marex@denx.de>
---
 drivers/usb/gadget/Makefile |    1 +
 drivers/usb/gadget/g_dnl.c  |    2 +-
 include/usb_mass_storage.h  |    9 +++++++++
 3 files changed, 11 insertions(+), 1 deletion(-)
Łukasz Majewski - Sept. 24, 2013, 8:11 a.m.
Hi Marek,

> The mass storage composite function is now compiled in only when
> CONFIG_USB_GADGET_MASS_STORAGE is defined.
> Such change provides binary size reduction for boards which use USB
> download gadget (like am335x_evm) with DFU, but don't use UMS.
> 
> For example at am335x_evm board reduction is more than 2KiB for
> text and around 120B for data.
> 

Any comments on those patches (from patch 1 to 3)?

> Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
> Cc: Marek Vasut <marex@denx.de>
> ---
>  drivers/usb/gadget/Makefile |    1 +
>  drivers/usb/gadget/g_dnl.c  |    2 +-
>  include/usb_mass_storage.h  |    9 +++++++++
>  3 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile
> index 4d51f59..1590c4a 100644
> --- a/drivers/usb/gadget/Makefile
> +++ b/drivers/usb/gadget/Makefile
> @@ -23,6 +23,7 @@ COBJS-$(CONFIG_USB_GADGET_S3C_UDC_OTG) +=
> s3c_udc_otg.o COBJS-$(CONFIG_USB_GADGET_FOTG210) += fotg210.o
>  COBJS-$(CONFIG_USBDOWNLOAD_GADGET) += g_dnl.o
>  COBJS-$(CONFIG_DFU_FUNCTION) += f_dfu.o
> +COBJS-$(CONFIG_USB_GADGET_MASS_STORAGE) += f_mass_storage.o
>  endif
>  ifdef CONFIG_USB_ETHER
>  COBJS-y += ether.o
> diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
> index a3e05a8..19011bf 100644
> --- a/drivers/usb/gadget/g_dnl.c
> +++ b/drivers/usb/gadget/g_dnl.c
> @@ -15,11 +15,11 @@
>  #include <part.h>
>  
>  #include <g_dnl.h>
> +#include <usb_mass_storage.h>
>  #include "f_dfu.h"
>  
>  #include "gadget_chips.h"
>  #include "composite.c"
> -#include "f_mass_storage.c"
>  
>  /*
>   * One needs to define the following:
> diff --git a/include/usb_mass_storage.h b/include/usb_mass_storage.h
> index 35cdcc3..e08deb4 100644
> --- a/include/usb_mass_storage.h
> +++ b/include/usb_mass_storage.h
> @@ -11,6 +11,7 @@
>  #define SECTOR_SIZE		0x200
>  
>  #include <mmc.h>
> +#include <linux/usb/composite.h>
>  
>  struct ums_device {
>  	struct mmc *mmc;
> @@ -39,4 +40,12 @@ extern struct ums_board_info
> *board_ums_init(unsigned int, extern int
> usb_gadget_handle_interrupts(void); extern int fsg_main_thread(void
> *); 
> +#ifdef CONFIG_USB_GADGET_MASS_STORAGE
> +int fsg_add(struct usb_configuration *c);
> +#else
> +int fsg_add(struct usb_configuration *c)
> +{
> +	return 0;
> +}
> +#endif
>  #endif /* __USB_MASS_STORAGE_H__ */
Marek Vasut - Sept. 24, 2013, 8:47 a.m.
Dear Lukasz Majewski,

> Hi Marek,
> 
> > The mass storage composite function is now compiled in only when
> > CONFIG_USB_GADGET_MASS_STORAGE is defined.
> > Such change provides binary size reduction for boards which use USB
> > download gadget (like am335x_evm) with DFU, but don't use UMS.
> > 
> > For example at am335x_evm board reduction is more than 2KiB for
> > text and around 120B for data.
> 
> Any comments on those patches (from patch 1 to 3)?

Will push them up in a bit.

Best regards,
Marek Vasut
Łukasz Majewski - Sept. 27, 2013, 11:34 a.m.
Hi Marek,

> Dear Lukasz Majewski,
> 
> > Hi Marek,
> > 
> > > The mass storage composite function is now compiled in only when
> > > CONFIG_USB_GADGET_MASS_STORAGE is defined.
> > > Such change provides binary size reduction for boards which use
> > > USB download gadget (like am335x_evm) with DFU, but don't use UMS.
> > > 
> > > For example at am335x_evm board reduction is more than 2KiB for
> > > text and around 120B for data.
> > 
> > Any comments on those patches (from patch 1 to 3)?
> 
> Will push them up in a bit.

Is there any problem with pulling those patches?

> 
> Best regards,
> Marek Vasut
Marek Vasut - Sept. 27, 2013, 2:29 p.m.
Dear Lukasz Majewski,

> Hi Marek,
> 
> > Dear Lukasz Majewski,
> > 
> > > Hi Marek,
> > > 
> > > > The mass storage composite function is now compiled in only when
> > > > CONFIG_USB_GADGET_MASS_STORAGE is defined.
> > > > Such change provides binary size reduction for boards which use
> > > > USB download gadget (like am335x_evm) with DFU, but don't use UMS.
> > > > 
> > > > For example at am335x_evm board reduction is more than 2KiB for
> > > > text and around 120B for data.
> > > 
> > > Any comments on those patches (from patch 1 to 3)?
> > 
> > Will push them up in a bit.
> 
> Is there any problem with pulling those patches?

PR tonight.

Best regards,
Marek Vasut

Patch

diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile
index 4d51f59..1590c4a 100644
--- a/drivers/usb/gadget/Makefile
+++ b/drivers/usb/gadget/Makefile
@@ -23,6 +23,7 @@  COBJS-$(CONFIG_USB_GADGET_S3C_UDC_OTG) += s3c_udc_otg.o
 COBJS-$(CONFIG_USB_GADGET_FOTG210) += fotg210.o
 COBJS-$(CONFIG_USBDOWNLOAD_GADGET) += g_dnl.o
 COBJS-$(CONFIG_DFU_FUNCTION) += f_dfu.o
+COBJS-$(CONFIG_USB_GADGET_MASS_STORAGE) += f_mass_storage.o
 endif
 ifdef CONFIG_USB_ETHER
 COBJS-y += ether.o
diff --git a/drivers/usb/gadget/g_dnl.c b/drivers/usb/gadget/g_dnl.c
index a3e05a8..19011bf 100644
--- a/drivers/usb/gadget/g_dnl.c
+++ b/drivers/usb/gadget/g_dnl.c
@@ -15,11 +15,11 @@ 
 #include <part.h>
 
 #include <g_dnl.h>
+#include <usb_mass_storage.h>
 #include "f_dfu.h"
 
 #include "gadget_chips.h"
 #include "composite.c"
-#include "f_mass_storage.c"
 
 /*
  * One needs to define the following:
diff --git a/include/usb_mass_storage.h b/include/usb_mass_storage.h
index 35cdcc3..e08deb4 100644
--- a/include/usb_mass_storage.h
+++ b/include/usb_mass_storage.h
@@ -11,6 +11,7 @@ 
 #define SECTOR_SIZE		0x200
 
 #include <mmc.h>
+#include <linux/usb/composite.h>
 
 struct ums_device {
 	struct mmc *mmc;
@@ -39,4 +40,12 @@  extern struct ums_board_info *board_ums_init(unsigned int,
 extern int usb_gadget_handle_interrupts(void);
 extern int fsg_main_thread(void *);
 
+#ifdef CONFIG_USB_GADGET_MASS_STORAGE
+int fsg_add(struct usb_configuration *c);
+#else
+int fsg_add(struct usb_configuration *c)
+{
+	return 0;
+}
+#endif
 #endif /* __USB_MASS_STORAGE_H__ */