summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukasz Majewski <l.majewski@samsung.com>2013-09-17 15:58:21 +0200
committerMarek Vasut <marex@denx.de>2013-09-24 17:51:35 +0200
commitba4e95c9f0e18ddeff55ef1b94be650d7b653d3f (patch)
tree8097f878fba79928a25e821797e86a4d7a7fe846
parente473b8b65b5c12a840e71939ed9fa243959ec5f2 (diff)
downloadu-boot-ba4e95c9f0e18ddeff55ef1b94be650d7b653d3f.tar.gz
u-boot-ba4e95c9f0e18ddeff55ef1b94be650d7b653d3f.tar.xz
u-boot-ba4e95c9f0e18ddeff55ef1b94be650d7b653d3f.zip
usb:g_dnl:ums: Conditional compilation for mass storage function (f_mass_storage)
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>
-rw-r--r--drivers/usb/gadget/Makefile1
-rw-r--r--drivers/usb/gadget/g_dnl.c2
-rw-r--r--include/usb_mass_storage.h9
3 files changed, 11 insertions, 1 deletions
diff --git a/drivers/usb/gadget/Makefile b/drivers/usb/gadget/Makefile
index 4d51f5991b..1590c4a750 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 a3e05a872a..19011bf9fc 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 35cdcc3d8c..e08deb4ddf 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__ */