diff mbox

[U-Boot] samsung: dfu: Provide correct Vendor and Product IDs for UMS gadget

Message ID 1406625044-11637-1-git-send-email-l.majewski@samsung.com
State Accepted
Delegated to: Marek Vasut
Headers show

Commit Message

Łukasz Majewski July 29, 2014, 9:10 a.m. UTC
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>
---
 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

Comments

Łukasz Majewski Aug. 14, 2014, 6:56 a.m. UTC | #1
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@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@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@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 */
Minkyu Kang Aug. 18, 2014, 7:44 a.m. UTC | #2
Dear Lukasz Majewski,

On 14/08/14 15:56, Lukasz Majewski wrote:
> 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?
> 

How you think?
If you want to take this patch to dfu, I'm OK.
If not, please let me know. I'll take it.

Thanks,
Minkyu Kang.
Łukasz Majewski Aug. 18, 2014, 8:19 a.m. UTC | #3
Hi Minkyu,

> Dear Lukasz Majewski,
> 
> On 14/08/14 15:56, Lukasz Majewski wrote:
> > 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?
> > 
> 
> How you think?
> If you want to take this patch to dfu, I'm OK.
> If not, please let me know. I'll take it.

It would be best for me if I'd take it directly to u-boot-dfu tree. 
Please, just add Acked-by to this patch.

> 
> Thanks,
> Minkyu Kang.
Minkyu Kang Aug. 18, 2014, 8:22 a.m. UTC | #4
On 29/07/14 18:10, Lukasz Majewski wrote:
> 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>
> ---
>  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
> 

Acked-by: Minkyu Kang <mk7.kang@samsung.com>

Thanks,
Minkyu Kang.
Łukasz Majewski Aug. 18, 2014, 10:29 a.m. UTC | #5
Hi Minkyu,

> On 29/07/14 18:10, Lukasz Majewski wrote:
> > 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>
> > ---
> >  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
> > 
> 
> Acked-by: Minkyu Kang <mk7.kang@samsung.com>

Applied to u-boot-dfu tree.

Thanks!

> 
> Thanks,
> Minkyu Kang.
>
Vasili Galka Aug. 25, 2014, 4:12 p.m. UTC | #6
Hi,

On Tue, Jul 29, 2014 at 12:10 PM, Lukasz Majewski
<l.majewski@samsung.com> wrote:
> 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>
> ---
>  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

This patch breaks the build of the "s5p_goni" board as it also uses
"board/samsung/common/gadget.c"

Best,
Vasili
Lukasz Majewski Aug. 25, 2014, 7:54 p.m. UTC | #7
On Mon, 25 Aug 2014 19:12:19 +0300
Vasili Galka <vvv444@gmail.com> wrote:

> 
> Hi,
> 
> On Tue, Jul 29, 2014 at 12:10 PM, Lukasz Majewski
> <l.majewski@samsung.com> wrote:
> > 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>
> > ---
> >  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
> 
> This patch breaks the build of the "s5p_goni" board as it also uses
> "board/samsung/common/gadget.c"
> 

Yes, I know.

The patch has been already prepared, sent to ML, Acked-by GONI
maintainer and now I hope, that Tom will add this fix to u-boot-master
repository.

Thanks for spotting, sorry for error.

> Best,
> Vasili
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
diff mbox

Patch

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@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@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 */