| From aa0178b4e7746955b65df88acd0c552d6f5c5e86 Mon Sep 17 00:00:00 2001 |
| From: "Jacky.Cao@sony.com" <Jacky.Cao@sony.com> |
| Date: Thu, 5 Sep 2019 04:11:57 +0000 |
| Subject: [PATCH] USB: dummy-hcd: fix power budget for SuperSpeed mode |
| |
| commit 2636d49b64671d3d90ecc4daf971b58df3956519 upstream. |
| |
| The power budget for SuperSpeed mode should be 900 mA |
| according to USB specification, so set the power budget |
| to 900mA 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 <Jacky.Cao@sony.com> |
| Acked-by: Alan Stern <stern@rowland.harvard.edu> |
| Cc: stable <stable@vger.kernel.org> |
| Link: https://lore.kernel.org/r/16EA1F625E922C43B00B9D82250220500871CDE5@APYOKXMS108.ap.sony.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c |
| index 8414fac74493..3d499d93c083 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 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; |
| INIT_LIST_HEAD(&dum_hcd->urbp_list); |
| - dummy_hcd_to_hcd(dum_hcd)->power_budget = POWER_BUDGET; |
| + dummy_hcd_to_hcd(dum_hcd)->power_budget = POWER_BUDGET_3; |
| dummy_hcd_to_hcd(dum_hcd)->state = HC_STATE_RUNNING; |
| dummy_hcd_to_hcd(dum_hcd)->uses_new_polling = 1; |
| #ifdef CONFIG_USB_OTG |
| -- |
| 2.7.4 |
| |