diff mbox

usb: dwc2: disable power_down on rockchip devices

Message ID 3c89f0fc-349d-c378-2412-fcedff10bbf0@halemmerich.com
State New, archived
Headers show

Commit Message

Hal Emmerich July 20, 2018, 3:25 a.m. UTC
From 04fbf78e4e569bf872f1ffcb0a6f9b89569dc913 Mon Sep 17 00:00:00 2001
From: Hal Emmerich <hal@halemmerich.com>
Date: Thu, 19 Jul 2018 21:48:08 -0500
Subject: [PATCH] usb: dwc2: disable power_down on rockchip devices

 The bug would let the usb controller enter partial power down,
 which was formally known as hibernate, upon boot if nothing was plugged
 in to the port. Partial power down couldn't be exited properly, so any
 usb devices plugged in after boot would not be usable.

 Before the name change, params.hibernation was false by default, so
 _dwc2_hcd_suspend() would skip entering hibernation. With the
 rename, _dwc2_hcd_suspend() was changed to use  params.power_down
 to decide whether or not to enter partial power down.

 Since params.power_down is non-zero by default, it needs to be set
 to 0 for rockchip devices to restore functionality.

 This bug was reported in the linux-usb thread:
 REGRESSION: usb: dwc2: USB device not seen after boot

 The commit that caused this regression is:
 6d23ee9caa6790aea047f9aca7f3c03cb8d96eb6

Signed-off-by: Hal Emmerich <hal@halemmerich.com>
---
 drivers/usb/dwc2/params.c | 1 +
 1 file changed, 1 insertion(+)

--
2.11.0
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Urja Rannikko Sept. 12, 2018, 3:21 p.m. UTC | #1
Hi, ping?

I just accidentally managed to replicate the work done here, though my
identification of the likely breaking commit was:
03ea6d6e9e1ff1b0222eb723eee5990d3511cc4d ("usb: dwc2: Enable power down")

If someone is wondering what I am replying to, should be this patch:
https://patchwork.kernel.org/patch/10535905/

Thanks for reading, and have a nice day.
Minas Harutyunyan Sept. 13, 2018, 6:52 a.m. UTC | #2
Hi,

On 9/12/2018 7:21 PM, Urja Rannikko wrote:
> Hi, ping?
> 
> I just accidentally managed to replicate the work done here, though my
> identification of the likely breaking commit was:
> 03ea6d6e9e1ff1b0222eb723eee5990d3511cc4d ("usb: dwc2: Enable power down")
> 
> If someone is wondering what I am replying to, should be this patch:
> https://urldefense.proofpoint.com/v2/url?u=https-3A__patchwork.kernel.org_patch_10535905_&d=DwIBAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=6z9Al9FrHR_ZqbbtSAsD16pvOL2S3XHxQnSzq8kusyI&m=1qMcBuV1NPvLIqRPr4X3Wa4Rtcs8mq-oelrWhxibR9I&s=TF8r1TbUqPJgED3XOzvMJ5429MxclO8ei7DEqcOMO7U&e=
> 
> Thanks for reading, and have a nice day.
> 

Could you please elaborate your problem with more details.
This patch "usb: dwc2: Enable power down" enabling power down features. 
Enabling this feature allow to work in hibernation mode but had side 
effect on existing partial power down mode. This is why Hal Emmerich 
<hal@halemmerich.com> by patch "[PATCH] usb: dwc2: disable power_down on 
rockchip devices" disable power down mode for rockchip.
Shortly I'll ack mentioned patch.

Thanks,
Minas
Minas Harutyunyan Sept. 13, 2018, 6:52 a.m. UTC | #3
On 7/20/2018 7:25 AM, Hal Emmerich wrote:
>  From 04fbf78e4e569bf872f1ffcb0a6f9b89569dc913 Mon Sep 17 00:00:00 2001
> From: Hal Emmerich <hal@halemmerich.com>
> Date: Thu, 19 Jul 2018 21:48:08 -0500
> Subject: [PATCH] usb: dwc2: disable power_down on rockchip devices
> 
>   The bug would let the usb controller enter partial power down,
>   which was formally known as hibernate, upon boot if nothing was plugged
>   in to the port. Partial power down couldn't be exited properly, so any
>   usb devices plugged in after boot would not be usable.
> 
>   Before the name change, params.hibernation was false by default, so
>   _dwc2_hcd_suspend() would skip entering hibernation. With the
>   rename, _dwc2_hcd_suspend() was changed to use  params.power_down
>   to decide whether or not to enter partial power down.
> 
>   Since params.power_down is non-zero by default, it needs to be set
>   to 0 for rockchip devices to restore functionality.
> 
>   This bug was reported in the linux-usb thread:
>   REGRESSION: usb: dwc2: USB device not seen after boot
> 
>   The commit that caused this regression is:
>   6d23ee9caa6790aea047f9aca7f3c03cb8d96eb6
> 
> Signed-off-by: Hal Emmerich <hal@halemmerich.com>
> ---
>   drivers/usb/dwc2/params.c | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
> index f03e41879224..492607adc506 100644
> --- a/drivers/usb/dwc2/params.c
> +++ b/drivers/usb/dwc2/params.c
> @@ -82,6 +82,7 @@ static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg)
>          p->host_perio_tx_fifo_size = 256;
>          p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 <<
>                  GAHBCFG_HBSTLEN_SHIFT;
> +       p->power_down = 0;
>   }
> 
>   static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)
> --
> 2.11.0
> --
> To unsubscribe from this list: send the line "unsubscribe linux-usb" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
Acked-by: Minas Harutyunyan <hminas@synopsys.com>
Felipe Balbi Oct. 2, 2018, 7:35 a.m. UTC | #4
Hi,

Hal Emmerich <hal@halemmerich.com> writes:

> From 04fbf78e4e569bf872f1ffcb0a6f9b89569dc913 Mon Sep 17 00:00:00 2001
> From: Hal Emmerich <hal@halemmerich.com>
> Date: Thu, 19 Jul 2018 21:48:08 -0500
> Subject: [PATCH] usb: dwc2: disable power_down on rockchip devices
>
>  The bug would let the usb controller enter partial power down,
>  which was formally known as hibernate, upon boot if nothing was plugged
>  in to the port. Partial power down couldn't be exited properly, so any
>  usb devices plugged in after boot would not be usable.
>
>  Before the name change, params.hibernation was false by default, so
>  _dwc2_hcd_suspend() would skip entering hibernation. With the
>  rename, _dwc2_hcd_suspend() was changed to use  params.power_down
>  to decide whether or not to enter partial power down.
>
>  Since params.power_down is non-zero by default, it needs to be set
>  to 0 for rockchip devices to restore functionality.
>
>  This bug was reported in the linux-usb thread:
>  REGRESSION: usb: dwc2: USB device not seen after boot
>
>  The commit that caused this regression is:
>  6d23ee9caa6790aea047f9aca7f3c03cb8d96eb6
>
> Signed-off-by: Hal Emmerich <hal@halemmerich.com>
> ---
>  drivers/usb/dwc2/params.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
> index f03e41879224..492607adc506 100644
> --- a/drivers/usb/dwc2/params.c
> +++ b/drivers/usb/dwc2/params.c
> @@ -82,6 +82,7 @@ static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg)
>         p->host_perio_tx_fifo_size = 256;
>         p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 <<
>                 GAHBCFG_HBSTLEN_SHIFT;
> +       p->power_down = 0;
>  }
>
>  static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)

can't apply, badly formatted. Please resend using git send-email. Also
collect Minas' acked-by
diff mbox

Patch

diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c
index f03e41879224..492607adc506 100644
--- a/drivers/usb/dwc2/params.c
+++ b/drivers/usb/dwc2/params.c
@@ -82,6 +82,7 @@  static void dwc2_set_rk_params(struct dwc2_hsotg *hsotg)
        p->host_perio_tx_fifo_size = 256;
        p->ahbcfg = GAHBCFG_HBSTLEN_INCR16 <<
                GAHBCFG_HBSTLEN_SHIFT;
+       p->power_down = 0;
 }

 static void dwc2_set_ltq_params(struct dwc2_hsotg *hsotg)