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))
