|
@@ -620,9 +620,9 @@ static inline void pch_udc_vbus_session(struct pch_udc_dev *dev,
|
|
|
dev->vbus_session = 1;
|
|
|
} else {
|
|
|
if (dev->driver && dev->driver->disconnect) {
|
|
|
- spin_unlock(&dev->lock);
|
|
|
- dev->driver->disconnect(&dev->gadget);
|
|
|
spin_lock(&dev->lock);
|
|
|
+ dev->driver->disconnect(&dev->gadget);
|
|
|
+ spin_unlock(&dev->lock);
|
|
|
}
|
|
|
pch_udc_set_disconnect(dev);
|
|
|
dev->vbus_session = 0;
|
|
@@ -1191,9 +1191,9 @@ static int pch_udc_pcd_pullup(struct usb_gadget *gadget, int is_on)
|
|
|
pch_udc_reconnect(dev);
|
|
|
} else {
|
|
|
if (dev->driver && dev->driver->disconnect) {
|
|
|
- spin_unlock(&dev->lock);
|
|
|
- dev->driver->disconnect(&dev->gadget);
|
|
|
spin_lock(&dev->lock);
|
|
|
+ dev->driver->disconnect(&dev->gadget);
|
|
|
+ spin_unlock(&dev->lock);
|
|
|
}
|
|
|
pch_udc_set_disconnect(dev);
|
|
|
}
|
|
@@ -1488,11 +1488,11 @@ static void complete_req(struct pch_udc_ep *ep, struct pch_udc_request *req,
|
|
|
req->dma_mapped = 0;
|
|
|
}
|
|
|
ep->halted = 1;
|
|
|
- spin_unlock(&dev->lock);
|
|
|
+ spin_lock(&dev->lock);
|
|
|
if (!ep->in)
|
|
|
pch_udc_ep_clear_rrdy(ep);
|
|
|
usb_gadget_giveback_request(&ep->ep, &req->req);
|
|
|
- spin_lock(&dev->lock);
|
|
|
+ spin_unlock(&dev->lock);
|
|
|
ep->halted = halted;
|
|
|
}
|
|
|
|
|
@@ -2414,7 +2414,7 @@ static void pch_udc_svc_control_out(struct pch_udc_dev *dev)
|
|
|
dev->gadget.ep0 = &dev->ep[UDC_EP0IN_IDX].ep;
|
|
|
else /* OUT */
|
|
|
dev->gadget.ep0 = &ep->ep;
|
|
|
- spin_unlock(&dev->lock);
|
|
|
+ spin_lock(&dev->lock);
|
|
|
/* If Mass storage Reset */
|
|
|
if ((dev->setup_data.bRequestType == 0x21) &&
|
|
|
(dev->setup_data.bRequest == 0xFF))
|
|
@@ -2422,7 +2422,7 @@ static void pch_udc_svc_control_out(struct pch_udc_dev *dev)
|
|
|
/* call gadget with setup data received */
|
|
|
setup_supported = dev->driver->setup(&dev->gadget,
|
|
|
&dev->setup_data);
|
|
|
- spin_lock(&dev->lock);
|
|
|
+ spin_unlock(&dev->lock);
|
|
|
|
|
|
if (dev->setup_data.bRequestType & USB_DIR_IN) {
|
|
|
ep->td_data->status = (ep->td_data->status &
|
|
@@ -2594,9 +2594,9 @@ static void pch_udc_svc_ur_interrupt(struct pch_udc_dev *dev)
|
|
|
empty_req_queue(ep);
|
|
|
}
|
|
|
if (dev->driver) {
|
|
|
- spin_unlock(&dev->lock);
|
|
|
- usb_gadget_udc_reset(&dev->gadget, dev->driver);
|
|
|
spin_lock(&dev->lock);
|
|
|
+ usb_gadget_udc_reset(&dev->gadget, dev->driver);
|
|
|
+ spin_unlock(&dev->lock);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2675,9 +2675,9 @@ static void pch_udc_svc_intf_interrupt(struct pch_udc_dev *dev)
|
|
|
dev->ep[i].halted = 0;
|
|
|
}
|
|
|
dev->stall = 0;
|
|
|
- spin_unlock(&dev->lock);
|
|
|
- ret = dev->driver->setup(&dev->gadget, &dev->setup_data);
|
|
|
spin_lock(&dev->lock);
|
|
|
+ ret = dev->driver->setup(&dev->gadget, &dev->setup_data);
|
|
|
+ spin_unlock(&dev->lock);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2712,9 +2712,9 @@ static void pch_udc_svc_cfg_interrupt(struct pch_udc_dev *dev)
|
|
|
dev->stall = 0;
|
|
|
|
|
|
/* call gadget zero with setup data received */
|
|
|
- spin_unlock(&dev->lock);
|
|
|
- ret = dev->driver->setup(&dev->gadget, &dev->setup_data);
|
|
|
spin_lock(&dev->lock);
|
|
|
+ ret = dev->driver->setup(&dev->gadget, &dev->setup_data);
|
|
|
+ spin_unlock(&dev->lock);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -2747,18 +2747,18 @@ static void pch_udc_dev_isr(struct pch_udc_dev *dev, u32 dev_intr)
|
|
|
if (dev_intr & UDC_DEVINT_US) {
|
|
|
if (dev->driver
|
|
|
&& dev->driver->suspend) {
|
|
|
- spin_unlock(&dev->lock);
|
|
|
- dev->driver->suspend(&dev->gadget);
|
|
|
spin_lock(&dev->lock);
|
|
|
+ dev->driver->suspend(&dev->gadget);
|
|
|
+ spin_unlock(&dev->lock);
|
|
|
}
|
|
|
|
|
|
vbus = pch_vbus_gpio_get_value(dev);
|
|
|
if ((dev->vbus_session == 0)
|
|
|
&& (vbus != 1)) {
|
|
|
if (dev->driver && dev->driver->disconnect) {
|
|
|
- spin_unlock(&dev->lock);
|
|
|
- dev->driver->disconnect(&dev->gadget);
|
|
|
spin_lock(&dev->lock);
|
|
|
+ dev->driver->disconnect(&dev->gadget);
|
|
|
+ spin_unlock(&dev->lock);
|
|
|
}
|
|
|
pch_udc_reconnect(dev);
|
|
|
} else if ((dev->vbus_session == 0)
|