samsung: dfu: Provide correct Vendor and Product IDs for UMS gadget
authorLukasz Majewski <l.majewski@samsung.com>
Tue, 29 Jul 2014 09:10:44 +0000 (11:10 +0200)
committerMarek Vasut <marex@denx.de>
Wed, 20 Aug 2014 11:10:32 +0000 (13:10 +0200)
It is necessary to provide the same Vendor and Product IDs as the one in
the original Linux kernel code.

Without this change the USB mass storage gadget is not working with Windows7.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Acked-by: Minkyu Kang <mk7.kang@samsung.com>
board/samsung/common/Makefile
board/samsung/common/gadget.c [new file with mode: 0644]
board/samsung/common/thor.c [deleted file]
include/configs/exynos4-dt.h

index 41d0cc38149444da2a2bf743c515f16b7d237a17..93347ef00031e9b424e8114546fbe01aaa2c8b8d 100644 (file)
@@ -6,7 +6,7 @@
 #
 
 obj-$(CONFIG_SOFT_I2C_MULTI_BUS) += multi_i2c.o
-obj-$(CONFIG_THOR_FUNCTION) += thor.o
+obj-$(CONFIG_USBDOWNLOAD_GADGET) += gadget.o
 obj-$(CONFIG_MISC_COMMON) += misc.o
 
 ifndef CONFIG_SPL_BUILD
diff --git a/board/samsung/common/gadget.c b/board/samsung/common/gadget.c
new file mode 100644 (file)
index 0000000..6a1e57f
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ *  Copyright (C) 2013 Samsung Electronics
+ *  Lukasz Majewski <l.majewski@samsung.com>
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+#include <common.h>
+#include <linux/usb/ch9.h>
+
+int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name)
+{
+       if (!strcmp(name, "usb_dnl_thor")) {
+               put_unaligned(CONFIG_G_DNL_THOR_VENDOR_NUM, &dev->idVendor);
+               put_unaligned(CONFIG_G_DNL_THOR_PRODUCT_NUM, &dev->idProduct);
+       } else if (!strcmp(name, "usb_dnl_ums")) {
+               put_unaligned(CONFIG_G_DNL_UMS_VENDOR_NUM, &dev->idVendor);
+               put_unaligned(CONFIG_G_DNL_UMS_PRODUCT_NUM, &dev->idProduct);
+       } else {
+               put_unaligned(CONFIG_G_DNL_VENDOR_NUM, &dev->idVendor);
+               put_unaligned(CONFIG_G_DNL_PRODUCT_NUM, &dev->idProduct);
+       }
+       return 0;
+}
diff --git a/board/samsung/common/thor.c b/board/samsung/common/thor.c
deleted file mode 100644 (file)
index 1c7630d..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- *  Copyright (C) 2013 Samsung Electronics
- *  Lukasz Majewski <l.majewski@samsung.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-
-#include <common.h>
-#include <linux/usb/ch9.h>
-
-int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name)
-{
-       if (!strcmp(name, "usb_dnl_thor")) {
-               put_unaligned(CONFIG_G_DNL_THOR_VENDOR_NUM, &dev->idVendor);
-               put_unaligned(CONFIG_G_DNL_THOR_PRODUCT_NUM, &dev->idProduct);
-       } else {
-               put_unaligned(CONFIG_G_DNL_VENDOR_NUM, &dev->idVendor);
-               put_unaligned(CONFIG_G_DNL_PRODUCT_NUM, &dev->idProduct);
-       }
-       return 0;
-}
index 44e6ab4ef3304a121ce0a7242d4d04654aec9eb4..7dac1a3717564db3ba1f1dea9679c01cd0fbff19 100644 (file)
 #define CONFIG_G_DNL_PRODUCT_NUM 0x6601
 #define CONFIG_G_DNL_THOR_VENDOR_NUM CONFIG_G_DNL_VENDOR_NUM
 #define CONFIG_G_DNL_THOR_PRODUCT_NUM 0x685D
+#define CONFIG_G_DNL_UMS_VENDOR_NUM 0x0525
+#define CONFIG_G_DNL_UMS_PRODUCT_NUM 0xA4A5
 #define CONFIG_G_DNL_MANUFACTURER "Samsung"
 
 /* Miscellaneous configurable options */