From 8fc171318e352ae191cdf527252e9166a56851ab Mon Sep 17 00:00:00 2001 From: Lukasz Majewski Date: Tue, 29 Jul 2014 11:10:44 +0200 Subject: samsung: dfu: Provide correct Vendor and Product IDs for UMS gadget 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 Acked-by: Minkyu Kang --- board/samsung/common/Makefile | 2 +- board/samsung/common/gadget.c | 24 ++++++++++++++++++++++++ board/samsung/common/thor.c | 21 --------------------- 3 files changed, 25 insertions(+), 22 deletions(-) create mode 100644 board/samsung/common/gadget.c delete mode 100644 board/samsung/common/thor.c (limited to 'board/samsung') diff --git a/board/samsung/common/Makefile b/board/samsung/common/Makefile index 41d0cc3814..93347ef000 100644 --- a/board/samsung/common/Makefile +++ b/board/samsung/common/Makefile @@ -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 index 0000000000..6a1e57f164 --- /dev/null +++ b/board/samsung/common/gadget.c @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2013 Samsung Electronics + * Lukasz Majewski + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include + +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 index 1c7630df08..0000000000 --- a/board/samsung/common/thor.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2013 Samsung Electronics - * Lukasz Majewski - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -#include -#include - -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; -} -- cgit v1.2.1