![Hal Emmerich](/assets/img/avatar_default.png)
Add backported patched from 5.x from usb related fixes Up kernel version to most recent lts
69 lines
2.2 KiB
Diff
69 lines
2.2 KiB
Diff
From e0f681c2c11a25b76626cea77deb819a4754375d Mon Sep 17 00:00:00 2001
|
|
From: Fabrice Gasnier <fabrice.gasnier@st.com>
|
|
Date: Wed, 5 Sep 2018 13:40:02 +0200
|
|
Subject: [PATCH 02/53] usb: dwc2: get optional vbus-supply regulator once
|
|
|
|
Move devm_regulator_get_optional() call to probe routine. This avoids
|
|
'vbus-supply' regulator to be requested lots of times, upon each call
|
|
to dwc2_vbus_supply_init(), e.g. like with runtime pm.
|
|
|
|
Fixes: 531ef5ebea96 ("usb: dwc2: add support for host mode external
|
|
vbus supply")
|
|
|
|
Tested-by: Artur Petrosyan <arturp@synopsys.com>
|
|
Acked-by: Minas Harutyunyan <hminas@synopsys.com>
|
|
Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
|
|
Signed-off-by: Amelie Delaunay <amelie.delaunay@st.com>
|
|
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
|
|
---
|
|
drivers/usb/dwc2/hcd.c | 12 +++---------
|
|
drivers/usb/dwc2/platform.c | 8 ++++++++
|
|
2 files changed, 11 insertions(+), 9 deletions(-)
|
|
|
|
diff --git a/drivers/usb/dwc2/hcd.c b/drivers/usb/dwc2/hcd.c
|
|
index 5f23b933cafc..24aa5a3acf86 100644
|
|
--- a/drivers/usb/dwc2/hcd.c
|
|
+++ b/drivers/usb/dwc2/hcd.c
|
|
@@ -358,16 +358,10 @@ static void dwc2_gusbcfg_init(struct dwc2_hsotg *hsotg)
|
|
|
|
static int dwc2_vbus_supply_init(struct dwc2_hsotg *hsotg)
|
|
{
|
|
- int ret;
|
|
-
|
|
- hsotg->vbus_supply = devm_regulator_get_optional(hsotg->dev, "vbus");
|
|
- if (IS_ERR(hsotg->vbus_supply)) {
|
|
- ret = PTR_ERR(hsotg->vbus_supply);
|
|
- hsotg->vbus_supply = NULL;
|
|
- return ret == -ENODEV ? 0 : ret;
|
|
- }
|
|
+ if (hsotg->vbus_supply)
|
|
+ return regulator_enable(hsotg->vbus_supply);
|
|
|
|
- return regulator_enable(hsotg->vbus_supply);
|
|
+ return 0;
|
|
}
|
|
|
|
static int dwc2_vbus_supply_exit(struct dwc2_hsotg *hsotg)
|
|
diff --git a/drivers/usb/dwc2/platform.c b/drivers/usb/dwc2/platform.c
|
|
index 577642895b57..c0b64d483552 100644
|
|
--- a/drivers/usb/dwc2/platform.c
|
|
+++ b/drivers/usb/dwc2/platform.c
|
|
@@ -432,6 +432,14 @@ static int dwc2_driver_probe(struct platform_device *dev)
|
|
if (retval)
|
|
return retval;
|
|
|
|
+ hsotg->vbus_supply = devm_regulator_get_optional(hsotg->dev, "vbus");
|
|
+ if (IS_ERR(hsotg->vbus_supply)) {
|
|
+ retval = PTR_ERR(hsotg->vbus_supply);
|
|
+ hsotg->vbus_supply = NULL;
|
|
+ if (retval != -ENODEV)
|
|
+ return retval;
|
|
+ }
|
|
+
|
|
retval = dwc2_lowlevel_hw_enable(hsotg);
|
|
if (retval)
|
|
return retval;
|
|
--
|
|
2.11.0
|
|
|