You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openwrt/target/linux/layerscape/patches-5.4/820-usb-0008-usb-dwc3-set-f...

34 lines
1.1 KiB
Diff

From 96f35f42495918262455a6208d37e74609ae2c97 Mon Sep 17 00:00:00 2001
From: Li Jun <jun.li@nxp.com>
Date: Mon, 19 Aug 2019 10:29:07 +0800
Subject: [PATCH] usb: dwc3: set fwnode for role switch
As the usb role switch use device connection which uses the fwnode
of dwc3 for match, so set the role switch fwnode to be the fwnode
of dwc3.
Signed-off-by: Li Jun <jun.li@nxp.com>
---
drivers/usb/dwc3/drd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/drivers/usb/dwc3/drd.c
+++ b/drivers/usb/dwc3/drd.c
@@ -508,7 +508,7 @@ static enum usb_role dwc3_usb_role_switc
return role;
}
-static const struct usb_role_switch_desc dwc3_role_switch = {
+static struct usb_role_switch_desc dwc3_role_switch = {
.set = dwc3_usb_role_switch_set,
.get = dwc3_usb_role_switch_get,
};
@@ -522,6 +522,7 @@ int dwc3_drd_init(struct dwc3 *dwc)
return PTR_ERR(dwc->edev);
if (device_property_read_bool(dwc->dev, "usb-role-switch")) {
+ dwc3_role_switch.fwnode = dev_fwnode(dwc->dev);
dwc->role_switch = usb_role_switch_register(dwc->dev,
&dwc3_role_switch);
if (IS_ERR(dwc->role_switch))