RE: [PATCH] USB: dummy-hcd: fix power budget for SuperSpeed mode

From: Kobayashi, Kento (Sony)
Date: Wed Sep 04 2019 - 02:12:23 EST


My company's member, Mr.Jacky, sent patch in June 26th.
But we didn't receive comment about our patch.
Could you confirm and tell us this patch is needed or not?

Kento Kobayashi

From: Cao, Jacky <Jacky.Cao@xxxxxxxx>
Sent: Monday, July 15, 2019 10:05 AM
To: balbi@xxxxxxxxxx; gregkh@xxxxxxxxxxxxxxxxxxx
Cc: linux-usb@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Kobayashi, Kento (Sony) <Kento.A.Kobayashi@xxxxxxxx>; Cao, Jacky <Jacky.Cao@xxxxxxxx>
Subject: RE: [PATCH] USB: dummy-hcd: fix power budget for SuperSpeed mode


Since around half month past, let me confirm the status of this issue.
If any comment about the fix patch, would you kind to share with us?
Thank you.

Best Regards

From: Cao, Jacky
Sent: Wednesday, June 26, 2019 1:48 PM
To: mailto:balbi@xxxxxxxxxx; mailto:gregkh@xxxxxxxxxxxxxxxxxxx; mailto:linux-usb@xxxxxxxxxxxxxxx; mailto:linux-kernel@xxxxxxxxxxxxxxx
Cc: Kobayashi, Kento (Sony) <mailto:Kento.A.Kobayashi@xxxxxxxx>; Cao, Jacky <mailto:Jacky.Cao@xxxxxxxx>
Subject: [PATCH] USB: dummy-hcd: fix power budget for SuperSpeed mode

The power budget for SuperSpeed mode should be 900 mA
according to USB3.0 specification, so set the power
budget to 900 mA for dummy_start_ss which is only used
for SuperSpeed mode.

If the max power consumption of SuperSpeed device is
larger than 500 mA, insufficient available bus power
error happens in usb_choose_configuration function
when the device connects to dummy hcd.

Signed-off-by: Jacky Cao <mailto:Jacky.Cao@xxxxxxxx>
drivers/usb/gadget/udc/dummy_hcd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
index 8414fac..52f2cf5 100644
--- a/drivers/usb/gadget/udc/dummy_hcd.c
+++ b/drivers/usb/gadget/udc/dummy_hcd.c
@@ -48,6 +48,7 @@
#define DRIVER_VERSION "02 May 2005"

 #define POWER_BUDGET  500  /* in mA; use 8 for low-power port testing */
+#define POWER_BUDGET_3_0  900  /* in mA */

 static const char  driver_name[] = "dummy_hcd";
static const char  driver_desc[] = "USB Host+Gadget Emulator";
@@ -2432,7 +2433,7 @@ static int dummy_start_ss(struct dummy_hcd *dum_hcd)
     dum_hcd->rh_state = DUMMY_RH_RUNNING;
     dum_hcd->stream_en_ep = 0;
-     dummy_hcd_to_hcd(dum_hcd)->power_budget = POWER_BUDGET;
+     dummy_hcd_to_hcd(dum_hcd)->power_budget = POWER_BUDGET_3_0;
     dummy_hcd_to_hcd(dum_hcd)->state = HC_STATE_RUNNING;
     dummy_hcd_to_hcd(dum_hcd)->uses_new_polling = 1;