usb: gadget: mv_udc: correct ep0 state
Neil Zhang [Wed, 12 Oct 2011 08:49:34 +0000 (16:49 +0800)]
This patch is going to correct the ep0 state, and the unexpected
ep0 package warning can be removed.

Signed-off-by: Neil Zhang <zhangwm@marvell.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>

drivers/usb/gadget/mv_udc_core.c

index 843a479..f8dc5b3 100644 (file)
@@ -1343,6 +1343,7 @@ udc_prime_status(struct mv_udc *udc, u8 direction, u16 status, bool empty)
 
        ep = &udc->eps[0];
        udc->ep0_dir = direction;
+       udc->ep0_state = WAIT_FOR_OUT_STATUS;
 
        req = udc->status_req;
 
@@ -1421,6 +1422,8 @@ static void ch9getstatus(struct mv_udc *udc, u8 ep_num,
        retval = udc_prime_status(udc, EP_DIR_IN, status, false);
        if (retval)
                ep0_stall(udc);
+       else
+               udc->ep0_state = DATA_STATE_XMIT;
 }
 
 static void ch9clearfeature(struct mv_udc *udc, struct usb_ctrlrequest *setup)
@@ -1466,8 +1469,6 @@ static void ch9clearfeature(struct mv_udc *udc, struct usb_ctrlrequest *setup)
 
        if (udc_prime_status(udc, EP_DIR_IN, 0, true))
                ep0_stall(udc);
-       else
-               udc->ep0_state = DATA_STATE_XMIT;
 out:
        return;
 }