make use of the previously introduced gadget->state
field.

Signed-off-by: Felipe Balbi <ba...@ti.com>
---
 drivers/usb/dwc3/ep0.c    | 15 ++++++++++++---
 drivers/usb/dwc3/gadget.c |  2 +-
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
index d7da073..ec4b563 100644
--- a/drivers/usb/dwc3/ep0.c
+++ b/drivers/usb/dwc3/ep0.c
@@ -512,10 +512,13 @@ static int dwc3_ep0_set_address(struct dwc3 *dwc, struct 
usb_ctrlrequest *ctrl)
        reg |= DWC3_DCFG_DEVADDR(addr);
        dwc3_writel(dwc->regs, DWC3_DCFG, reg);
 
-       if (addr)
+       if (addr) {
                dwc->dev_state = DWC3_ADDRESS_STATE;
-       else
+               usb_gadget_set_state(&dwc->gadget, USB_STATE_ADDRESS);
+       } else {
                dwc->dev_state = DWC3_DEFAULT_STATE;
+               usb_gadget_set_state(&dwc->gadget, USB_STATE_DEFAULT);
+       }
 
        return 0;
 }
@@ -549,6 +552,9 @@ static int dwc3_ep0_set_config(struct dwc3 *dwc, struct 
usb_ctrlrequest *ctrl)
                /* if the cfg matches and the cfg is non zero */
                if (cfg && (!ret || (ret == USB_GADGET_DELAYED_STATUS))) {
                        dwc->dev_state = DWC3_CONFIGURED_STATE;
+                       usb_gadget_set_state(&dwc->gadget,
+                                       USB_STATE_CONFIGURED);
+
                        /*
                         * Enable transition to U1/U2 state when
                         * nothing is pending from application.
@@ -564,8 +570,11 @@ static int dwc3_ep0_set_config(struct dwc3 *dwc, struct 
usb_ctrlrequest *ctrl)
 
        case DWC3_CONFIGURED_STATE:
                ret = dwc3_ep0_delegate_req(dwc, ctrl);
-               if (!cfg)
+               if (!cfg) {
                        dwc->dev_state = DWC3_ADDRESS_STATE;
+                       usb_gadget_set_state(&dwc->gadget,
+                                       USB_STATE_ADDRESS);
+               }
                break;
        default:
                ret = -EINVAL;
diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
index a7bea72..6e168df 100644
--- a/drivers/usb/dwc3/gadget.c
+++ b/drivers/usb/dwc3/gadget.c
@@ -2137,7 +2137,7 @@ static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc)
        }
 
        /* after reset -> Default State */
-       dwc->dev_state = DWC3_DEFAULT_STATE;
+       usb_gadget_set_state(&dwc->gadget, USB_STATE_DEFAULT);
 
        /* Recent versions support automatic phy suspend and don't need this */
        if (dwc->revision < DWC3_REVISION_194A) {
-- 
1.8.1.rc1.5.g7e0651a

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to