mirror of https://gitee.com/openkylin/linux.git
USB: langwell: USB Client Endpoint initialization
Endpoint software structure initialization Signed-off-by: JiebingLi <jiebing.li@intel.com> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
5f81f4b0c0
commit
3eed298ffa
|
@ -242,11 +242,13 @@ static void ep0_reset(struct langwell_udc *dev)
|
||||||
ep->dqh->dqh_ios = 1;
|
ep->dqh->dqh_ios = 1;
|
||||||
ep->dqh->dqh_mpl = EP0_MAX_PKT_SIZE;
|
ep->dqh->dqh_mpl = EP0_MAX_PKT_SIZE;
|
||||||
|
|
||||||
/* FIXME: enable ep0-in HW zero length termination select */
|
/* enable ep0-in HW zero length termination select */
|
||||||
if (is_in(ep))
|
if (is_in(ep))
|
||||||
ep->dqh->dqh_zlt = 0;
|
ep->dqh->dqh_zlt = 0;
|
||||||
ep->dqh->dqh_mult = 0;
|
ep->dqh->dqh_mult = 0;
|
||||||
|
|
||||||
|
ep->dqh->dtd_next = DTD_TERM;
|
||||||
|
|
||||||
/* configure ep0 control registers */
|
/* configure ep0 control registers */
|
||||||
ep_reset(&dev->ep[0], 0, i, USB_ENDPOINT_XFER_CONTROL);
|
ep_reset(&dev->ep[0], 0, i, USB_ENDPOINT_XFER_CONTROL);
|
||||||
}
|
}
|
||||||
|
@ -268,7 +270,7 @@ static int langwell_ep_enable(struct usb_ep *_ep,
|
||||||
struct langwell_ep *ep;
|
struct langwell_ep *ep;
|
||||||
u16 max = 0;
|
u16 max = 0;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int retval = 0;
|
int i, retval = 0;
|
||||||
unsigned char zlt, ios = 0, mult = 0;
|
unsigned char zlt, ios = 0, mult = 0;
|
||||||
|
|
||||||
ep = container_of(_ep, struct langwell_ep, ep);
|
ep = container_of(_ep, struct langwell_ep, ep);
|
||||||
|
@ -354,12 +356,6 @@ static int langwell_ep_enable(struct usb_ep *_ep,
|
||||||
|
|
||||||
spin_lock_irqsave(&dev->lock, flags);
|
spin_lock_irqsave(&dev->lock, flags);
|
||||||
|
|
||||||
/* configure endpoint capabilities in dQH */
|
|
||||||
ep->dqh->dqh_ios = ios;
|
|
||||||
ep->dqh->dqh_mpl = cpu_to_le16(max);
|
|
||||||
ep->dqh->dqh_zlt = zlt;
|
|
||||||
ep->dqh->dqh_mult = mult;
|
|
||||||
|
|
||||||
ep->ep.maxpacket = max;
|
ep->ep.maxpacket = max;
|
||||||
ep->desc = desc;
|
ep->desc = desc;
|
||||||
ep->stopped = 0;
|
ep->stopped = 0;
|
||||||
|
@ -371,6 +367,15 @@ static int langwell_ep_enable(struct usb_ep *_ep,
|
||||||
/* configure endpoint control registers */
|
/* configure endpoint control registers */
|
||||||
ep_reset(ep, ep->ep_num, is_in(ep), ep->ep_type);
|
ep_reset(ep, ep->ep_num, is_in(ep), ep->ep_type);
|
||||||
|
|
||||||
|
/* configure endpoint capabilities in dQH */
|
||||||
|
i = ep->ep_num * 2 + is_in(ep);
|
||||||
|
ep->dqh = &dev->ep_dqh[i];
|
||||||
|
ep->dqh->dqh_ios = ios;
|
||||||
|
ep->dqh->dqh_mpl = cpu_to_le16(max);
|
||||||
|
ep->dqh->dqh_zlt = zlt;
|
||||||
|
ep->dqh->dqh_mult = mult;
|
||||||
|
ep->dqh->dtd_next = DTD_TERM;
|
||||||
|
|
||||||
dev_dbg(&dev->pdev->dev, "enabled %s (ep%d%s-%s), max %04x\n",
|
dev_dbg(&dev->pdev->dev, "enabled %s (ep%d%s-%s), max %04x\n",
|
||||||
_ep->name,
|
_ep->name,
|
||||||
ep->ep_num,
|
ep->ep_num,
|
||||||
|
@ -1430,8 +1435,6 @@ static int eps_reinit(struct langwell_udc *dev)
|
||||||
|
|
||||||
INIT_LIST_HEAD(&ep->queue);
|
INIT_LIST_HEAD(&ep->queue);
|
||||||
list_add_tail(&ep->ep.ep_list, &dev->gadget.ep_list);
|
list_add_tail(&ep->ep.ep_list, &dev->gadget.ep_list);
|
||||||
|
|
||||||
ep->dqh = &dev->ep_dqh[i];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dev_vdbg(&dev->pdev->dev, "<--- %s()\n", __func__);
|
dev_vdbg(&dev->pdev->dev, "<--- %s()\n", __func__);
|
||||||
|
|
Loading…
Reference in New Issue