diff options
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/gadget/s3c_udc_otg_xfer_dma.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/drivers/usb/gadget/s3c_udc_otg_xfer_dma.c b/drivers/usb/gadget/s3c_udc_otg_xfer_dma.c index b11108d..afd4931 100644 --- a/drivers/usb/gadget/s3c_udc_otg_xfer_dma.c +++ b/drivers/usb/gadget/s3c_udc_otg_xfer_dma.c @@ -1316,7 +1316,7 @@ void s3c_ep0_setup(struct s3c_udc *dev) /* cope with automagic for some standard requests. */ dev->req_std = (usb_ctrl->bRequestType & USB_TYPE_MASK) == USB_TYPE_STANDARD; - dev->req_config = 0; + dev->req_pending = 1; /* Handle some SETUP packets ourselves */ @@ -1337,10 +1337,9 @@ void s3c_ep0_setup(struct s3c_udc *dev) DEBUG_SETUP("%s: USB_REQ_SET_CONFIGURATION (%d)\n", __func__, usb_ctrl->wValue); - if (usb_ctrl->bRequestType == USB_RECIP_DEVICE) { + if (usb_ctrl->bRequestType == USB_RECIP_DEVICE) reset_available = 1; - dev->req_config = 1; - } + break; case USB_REQ_GET_DESCRIPTOR: @@ -1352,10 +1351,9 @@ void s3c_ep0_setup(struct s3c_udc *dev) DEBUG_SETUP("%s: *** USB_REQ_SET_INTERFACE (%d)\n", __func__, usb_ctrl->wValue); - if (usb_ctrl->bRequestType == USB_RECIP_INTERFACE) { + if (usb_ctrl->bRequestType == USB_RECIP_INTERFACE) reset_available = 1; - dev->req_config = 1; - } + break; case USB_REQ_GET_CONFIGURATION: @@ -1404,12 +1402,6 @@ void s3c_ep0_setup(struct s3c_udc *dev) spin_lock(&dev->lock); if (i < 0) { - if (dev->req_config) { - DEBUG_SETUP("\tconfig change 0x%02x fail %d?\n", - (u32)usb_ctrl->bRequest, i); - return; - } - /* setup processing failed, force stall */ s3c_udc_ep0_set_stall(ep); dev->ep0state = WAIT_FOR_SETUP; |