public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] usb: dwc2: Init desc_before_addr
@ 2016-04-26  1:08 Marek Vasut
  2016-04-26  1:10 ` Marek Vasut
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Marek Vasut @ 2016-04-26  1:08 UTC (permalink / raw)
  To: u-boot

Initialize desc_before_addr, otherwise the USB core won't send the
first 64B Get Device Descriptor request in common/usb.c function
usb_setup_descriptor() . There are some USB devices which expect
this sequence and otherwise can misbehave.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
Cc: Tom Rini <trini@konsulko.com>
---
 drivers/usb/host/dwc2.c | 3 +++
 1 file changed, 3 insertions(+)
---
NOTE: I checked this with TotalPhase Beagle USB480 and it does what it is
      supposed to do now. It would be wonderful to get this into rc3.

diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c
index b2f4bc6..559c43f 100644
--- a/drivers/usb/host/dwc2.c
+++ b/drivers/usb/host/dwc2.c
@@ -1182,6 +1182,9 @@ static int dwc2_usb_ofdata_to_platdata(struct udevice *dev)
 static int dwc2_usb_probe(struct udevice *dev)
 {
 	struct dwc2_priv *priv = dev_get_priv(dev);
+	struct usb_bus_priv *bus_priv = dev_get_uclass_priv(dev);
+
+	bus_priv->desc_before_addr = true;
 
 	return dwc2_init_common(priv);
 }
-- 
2.7.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH] usb: dwc2: Init desc_before_addr
  2016-04-26  1:08 [U-Boot] [PATCH] usb: dwc2: Init desc_before_addr Marek Vasut
@ 2016-04-26  1:10 ` Marek Vasut
  2016-04-27 17:15 ` Dinh Nguyen
  2016-04-28  6:16 ` Stefan Roese
  2 siblings, 0 replies; 6+ messages in thread
From: Marek Vasut @ 2016-04-26  1:10 UTC (permalink / raw)
  To: u-boot

On 04/26/2016 03:08 AM, Marek Vasut wrote:
> Initialize desc_before_addr, otherwise the USB core won't send the
> first 64B Get Device Descriptor request in common/usb.c function
> usb_setup_descriptor() . There are some USB devices which expect
> this sequence and otherwise can misbehave.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> Cc: Tom Rini <trini@konsulko.com>
> ---
>  drivers/usb/host/dwc2.c | 3 +++
>  1 file changed, 3 insertions(+)
> ---
> NOTE: I checked this with TotalPhase Beagle USB480 and it does what it is
>       supposed to do now. It would be wonderful to get this into rc3.

Oh, before anyone asks if this fixes USB problem on SoCFPGA, no, it does
not. There is more weird stuff to go, I have certain hypothesis,
but let's see.

> diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c
> index b2f4bc6..559c43f 100644
> --- a/drivers/usb/host/dwc2.c
> +++ b/drivers/usb/host/dwc2.c
> @@ -1182,6 +1182,9 @@ static int dwc2_usb_ofdata_to_platdata(struct udevice *dev)
>  static int dwc2_usb_probe(struct udevice *dev)
>  {
>  	struct dwc2_priv *priv = dev_get_priv(dev);
> +	struct usb_bus_priv *bus_priv = dev_get_uclass_priv(dev);
> +
> +	bus_priv->desc_before_addr = true;
>  
>  	return dwc2_init_common(priv);
>  }
> 


-- 
Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH] usb: dwc2: Init desc_before_addr
  2016-04-26  1:08 [U-Boot] [PATCH] usb: dwc2: Init desc_before_addr Marek Vasut
  2016-04-26  1:10 ` Marek Vasut
@ 2016-04-27 17:15 ` Dinh Nguyen
  2016-04-27 20:40   ` Marek Vasut
  2016-04-28  6:16 ` Stefan Roese
  2 siblings, 1 reply; 6+ messages in thread
From: Dinh Nguyen @ 2016-04-27 17:15 UTC (permalink / raw)
  To: u-boot

On 04/25/2016 08:08 PM, Marek Vasut wrote:
> Initialize desc_before_addr, otherwise the USB core won't send the
> first 64B Get Device Descriptor request in common/usb.c function
> usb_setup_descriptor() . There are some USB devices which expect
> this sequence and otherwise can misbehave.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> Cc: Tom Rini <trini@konsulko.com>
> ---
>  drivers/usb/host/dwc2.c | 3 +++
>  1 file changed, 3 insertions(+)
> ---
> NOTE: I checked this with TotalPhase Beagle USB480 and it does what it is
>       supposed to do now. It would be wonderful to get this into rc3.
> 
> diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c
> index b2f4bc6..559c43f 100644
> --- a/drivers/usb/host/dwc2.c
> +++ b/drivers/usb/host/dwc2.c
> @@ -1182,6 +1182,9 @@ static int dwc2_usb_ofdata_to_platdata(struct udevice *dev)
>  static int dwc2_usb_probe(struct udevice *dev)
>  {
>  	struct dwc2_priv *priv = dev_get_priv(dev);
> +	struct usb_bus_priv *bus_priv = dev_get_uclass_priv(dev);
> +
> +	bus_priv->desc_before_addr = true;
>  
>  	return dwc2_init_common(priv);
>  }
> 

With this patch, I no longer have to revert commit "c998da0d67091 usb:
Change power-on / scanning timeout handling" for my problematic Kingston
USB stick to work.

So feel free to add:

Tested-by: Dinh Nguyen <dinguyen@opensource.altera.com>

Dinh

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH] usb: dwc2: Init desc_before_addr
  2016-04-27 17:15 ` Dinh Nguyen
@ 2016-04-27 20:40   ` Marek Vasut
  0 siblings, 0 replies; 6+ messages in thread
From: Marek Vasut @ 2016-04-27 20:40 UTC (permalink / raw)
  To: u-boot

On 04/27/2016 07:15 PM, Dinh Nguyen wrote:
> On 04/25/2016 08:08 PM, Marek Vasut wrote:
>> Initialize desc_before_addr, otherwise the USB core won't send the
>> first 64B Get Device Descriptor request in common/usb.c function
>> usb_setup_descriptor() . There are some USB devices which expect
>> this sequence and otherwise can misbehave.
>>
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
>> Cc: Tom Rini <trini@konsulko.com>
>> ---
>>  drivers/usb/host/dwc2.c | 3 +++
>>  1 file changed, 3 insertions(+)
>> ---
>> NOTE: I checked this with TotalPhase Beagle USB480 and it does what it is
>>       supposed to do now. It would be wonderful to get this into rc3.
>>
>> diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c
>> index b2f4bc6..559c43f 100644
>> --- a/drivers/usb/host/dwc2.c
>> +++ b/drivers/usb/host/dwc2.c
>> @@ -1182,6 +1182,9 @@ static int dwc2_usb_ofdata_to_platdata(struct udevice *dev)
>>  static int dwc2_usb_probe(struct udevice *dev)
>>  {
>>  	struct dwc2_priv *priv = dev_get_priv(dev);
>> +	struct usb_bus_priv *bus_priv = dev_get_uclass_priv(dev);
>> +
>> +	bus_priv->desc_before_addr = true;
>>  
>>  	return dwc2_init_common(priv);
>>  }
>>
> 
> With this patch, I no longer have to revert commit "c998da0d67091 usb:
> Change power-on / scanning timeout handling" for my problematic Kingston
> USB stick to work.
> 
> So feel free to add:
> 
> Tested-by: Dinh Nguyen <dinguyen@opensource.altera.com>

Good for you, bad for me ;-) If we don't fix this USB horror before
ELCE, you can expect a nice gift :)

> Dinh
> 


-- 
Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH] usb: dwc2: Init desc_before_addr
  2016-04-26  1:08 [U-Boot] [PATCH] usb: dwc2: Init desc_before_addr Marek Vasut
  2016-04-26  1:10 ` Marek Vasut
  2016-04-27 17:15 ` Dinh Nguyen
@ 2016-04-28  6:16 ` Stefan Roese
  2016-04-28 12:42   ` Marek Vasut
  2 siblings, 1 reply; 6+ messages in thread
From: Stefan Roese @ 2016-04-28  6:16 UTC (permalink / raw)
  To: u-boot

On 26.04.2016 03:08, Marek Vasut wrote:
> Initialize desc_before_addr, otherwise the USB core won't send the
> first 64B Get Device Descriptor request in common/usb.c function
> usb_setup_descriptor() . There are some USB devices which expect
> this sequence and otherwise can misbehave.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
> Cc: Tom Rini <trini@konsulko.com>

Tested-by: Stefan Roese <sr@denx.de>

Thanks,
Stefan

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH] usb: dwc2: Init desc_before_addr
  2016-04-28  6:16 ` Stefan Roese
@ 2016-04-28 12:42   ` Marek Vasut
  0 siblings, 0 replies; 6+ messages in thread
From: Marek Vasut @ 2016-04-28 12:42 UTC (permalink / raw)
  To: u-boot

On 04/28/2016 08:16 AM, Stefan Roese wrote:
> On 26.04.2016 03:08, Marek Vasut wrote:
>> Initialize desc_before_addr, otherwise the USB core won't send the
>> first 64B Get Device Descriptor request in common/usb.c function
>> usb_setup_descriptor() . There are some USB devices which expect
>> this sequence and otherwise can misbehave.
>>
>> Signed-off-by: Marek Vasut <marex@denx.de>
>> Cc: Dinh Nguyen <dinguyen@opensource.altera.com>
>> Cc: Tom Rini <trini@konsulko.com>
> 
> Tested-by: Stefan Roese <sr@denx.de>
> 
> Thanks,
> Stefan

Applied.

-- 
Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-04-28 12:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-26  1:08 [U-Boot] [PATCH] usb: dwc2: Init desc_before_addr Marek Vasut
2016-04-26  1:10 ` Marek Vasut
2016-04-27 17:15 ` Dinh Nguyen
2016-04-27 20:40   ` Marek Vasut
2016-04-28  6:16 ` Stefan Roese
2016-04-28 12:42   ` Marek Vasut

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox