[U-Boot] [PATCH] samsung: dfu: Provide correct Vendor and Product IDs for UMS gadget
Lukasz Majewski
l.majewski at samsung.com
Thu Aug 14 08:56:33 CEST 2014
Hi Minkyu,
> 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.
Do you have any comments to this patch?
Would you consider taking this patch to u-boot-samsung tree or should I
take it to u-boot-dfu since it fixes things related to UMS gadget?
>
> Signed-off-by: Lukasz Majewski <l.majewski at samsung.com>
> ---
> board/samsung/common/Makefile | 2 +-
> board/samsung/common/gadget.c | 24 ++++++++++++++++++++++++
> board/samsung/common/thor.c | 21 ---------------------
> include/configs/exynos4-dt.h | 2 ++
> 4 files changed, 27 insertions(+), 22 deletions(-)
> create mode 100644 board/samsung/common/gadget.c
> delete mode 100644 board/samsung/common/thor.c
>
> diff --git a/board/samsung/common/Makefile
> b/board/samsung/common/Makefile index 41d0cc3..93347ef 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 0000000..6a1e57f
> --- /dev/null
> +++ b/board/samsung/common/gadget.c
> @@ -0,0 +1,24 @@
> +/*
> + * Copyright (C) 2013 Samsung Electronics
> + * Lukasz Majewski <l.majewski at 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
> index 1c7630d..0000000
> --- a/board/samsung/common/thor.c
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -/*
> - * Copyright (C) 2013 Samsung Electronics
> - * Lukasz Majewski <l.majewski at 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;
> -}
> diff --git a/include/configs/exynos4-dt.h
> b/include/configs/exynos4-dt.h index 44e6ab4..7dac1a3 100644
> --- a/include/configs/exynos4-dt.h
> +++ b/include/configs/exynos4-dt.h
> @@ -105,6 +105,8 @@
> #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 */
--
Best regards,
Lukasz Majewski
Samsung R&D Institute Poland (SRPOL) | Linux Platform Group
More information about the U-Boot
mailing list