u3d 118 drivers/usb/gadget/udc/mv_u3d.h ((ep)->u3d->ep0_dir) : ((ep)->direction)) u3d 289 drivers/usb/gadget/udc/mv_u3d.h struct mv_u3d *u3d; u3d 38 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_stop_activity(struct mv_u3d *u3d, u3d 50 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_ep0_reset(struct mv_u3d *u3d) u3d 57 drivers/usb/gadget/udc/mv_u3d_core.c ep = &u3d->eps[i]; u3d 58 drivers/usb/gadget/udc/mv_u3d_core.c ep->u3d = u3d; u3d 61 drivers/usb/gadget/udc/mv_u3d_core.c ep->ep_context = &u3d->ep_context[1]; u3d 66 drivers/usb/gadget/udc/mv_u3d_core.c epxcr = ioread32(&u3d->vuc_regs->epcr[0].epxoutcr0); u3d 68 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[0].epxoutcr0); u3d 71 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[0].epxoutcr0); u3d 78 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[0].epxoutcr1); u3d 81 drivers/usb/gadget/udc/mv_u3d_core.c epxcr = ioread32(&u3d->vuc_regs->epcr[0].epxincr0); u3d 83 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[0].epxincr0); u3d 86 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[0].epxincr0); u3d 93 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[0].epxincr1); u3d 96 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_ep0_stall(struct mv_u3d *u3d) u3d 99 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "%s\n", __func__); u3d 102 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->epcr[0].epxoutcr0); u3d 104 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->epcr[0].epxoutcr0); u3d 106 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->epcr[0].epxincr0); u3d 108 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->epcr[0].epxincr0); u3d 111 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep0_state = MV_U3D_WAIT_FOR_SETUP; u3d 112 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep0_dir = MV_U3D_EP_DIR_OUT; u3d 115 drivers/usb/gadget/udc/mv_u3d_core.c static int mv_u3d_process_ep_req(struct mv_u3d *u3d, int index, u3d 133 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, "%s, TRB own error!\n", u3d 134 drivers/usb/gadget/udc/mv_u3d_core.c u3d->eps[index].name); u3d 140 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->rxst[ep_num].statuslo); u3d 142 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->txst[ep_num].statuslo); u3d 153 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, u3d 179 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = (struct mv_u3d *)ep->u3d; u3d 181 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "mv_u3d_done: remove req->queue\n"); u3d 193 drivers/usb/gadget/udc/mv_u3d_core.c dma_pool_free(u3d->trb_pool, u3d 196 drivers/usb/gadget/udc/mv_u3d_core.c dma_unmap_single(ep->u3d->gadget.dev.parent, u3d 204 drivers/usb/gadget/udc/mv_u3d_core.c usb_gadget_unmap_request(&u3d->gadget, &req->req, mv_u3d_ep_dir(ep)); u3d 207 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "complete %s req %p stat %d len %u/%u", u3d 212 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock(&ep->u3d->lock); u3d 216 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock(&ep->u3d->lock); u3d 222 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d; u3d 226 drivers/usb/gadget/udc/mv_u3d_core.c u3d = ep->u3d; u3d 231 drivers/usb/gadget/udc/mv_u3d_core.c ep_context = &(u3d->ep_context[1]); u3d 233 drivers/usb/gadget/udc/mv_u3d_core.c ep_context = &(u3d->ep_context[ep->ep_num * 2 + direction]); u3d 237 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, "add trb to non-empty queue!\n"); u3d 263 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->op_regs->doorbell); u3d 275 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d; u3d 281 drivers/usb/gadget/udc/mv_u3d_core.c u3d = req->ep->u3d; u3d 292 drivers/usb/gadget/udc/mv_u3d_core.c trb_hw = dma_pool_alloc(u3d->trb_pool, GFP_ATOMIC, dma); u3d 295 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, u3d 338 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d; u3d 344 drivers/usb/gadget/udc/mv_u3d_core.c u3d = req->ep->u3d; u3d 388 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "chain trb\n"); u3d 406 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d; u3d 411 drivers/usb/gadget/udc/mv_u3d_core.c u3d = req->ep->u3d; u3d 444 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, u3d 458 drivers/usb/gadget/udc/mv_u3d_core.c req->trb_head->trb_dma = dma_map_single(u3d->gadget.dev.parent, u3d 462 drivers/usb/gadget/udc/mv_u3d_core.c if (dma_mapping_error(u3d->gadget.dev.parent, u3d 478 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = ep->u3d; u3d 490 drivers/usb/gadget/udc/mv_u3d_core.c ret = usb_gadget_map_request(&u3d->gadget, &req->req, u3d 502 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, "%s, mv_u3d_req_to_trb fail\n", __func__); u3d 524 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d; u3d 534 drivers/usb/gadget/udc/mv_u3d_core.c u3d = ep->u3d; u3d 536 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->driver || u3d->gadget.speed == USB_SPEED_UNKNOWN) u3d 550 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, u3d 556 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, u3d 566 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, u3d 575 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, u3d 592 drivers/usb/gadget/udc/mv_u3d_core.c epxcr = ioread32(&u3d->vuc_regs->epcr[ep->ep_num].epxoutcr0); u3d 594 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[ep->ep_num].epxoutcr0); u3d 597 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[ep->ep_num].epxoutcr0); u3d 603 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[ep->ep_num].epxoutcr1); u3d 605 drivers/usb/gadget/udc/mv_u3d_core.c epxcr = ioread32(&u3d->vuc_regs->epcr[ep->ep_num].epxincr0); u3d 607 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[ep->ep_num].epxincr0); u3d 610 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[ep->ep_num].epxincr0); u3d 616 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[ep->ep_num].epxincr1); u3d 626 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d; u3d 638 drivers/usb/gadget/udc/mv_u3d_core.c u3d = ep->u3d; u3d 643 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock_irqsave(&u3d->lock, flags); u3d 645 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock_irqrestore(&u3d->lock, flags); u3d 649 drivers/usb/gadget/udc/mv_u3d_core.c epxcr = ioread32(&u3d->vuc_regs->epcr[ep->ep_num].epxoutcr1); u3d 652 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[ep->ep_num].epxoutcr1); u3d 654 drivers/usb/gadget/udc/mv_u3d_core.c epxcr = ioread32(&u3d->vuc_regs->epcr[ep->ep_num].epxincr1); u3d 657 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(epxcr, &u3d->vuc_regs->epcr[ep->ep_num].epxincr1); u3d 689 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d; u3d 699 drivers/usb/gadget/udc/mv_u3d_core.c u3d = ep->u3d; u3d 705 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->epcr[0].epxoutcr0); u3d 707 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->epcr[0].epxoutcr0); u3d 710 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->epcr[0].epxoutcr0); u3d 712 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->epcr[0].epxincr0); u3d 714 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->epcr[0].epxincr0); u3d 717 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->epcr[0].epxincr0); u3d 723 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->epcr[ep->ep_num].epxoutcr0); u3d 725 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->epcr[ep->ep_num].epxoutcr0); u3d 729 drivers/usb/gadget/udc/mv_u3d_core.c while (ioread32(&u3d->vuc_regs->epcr[ep->ep_num].epxoutcr0) & u3d 736 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, u3d 745 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->epcr[ep->ep_num].epxincr0); u3d 747 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->epcr[ep->ep_num].epxincr0); u3d 751 drivers/usb/gadget/udc/mv_u3d_core.c while (ioread32(&u3d->vuc_regs->epcr[ep->ep_num].epxincr0) & u3d 758 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, u3d 775 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d; u3d 783 drivers/usb/gadget/udc/mv_u3d_core.c u3d = ep->u3d; u3d 788 drivers/usb/gadget/udc/mv_u3d_core.c && u3d->ep0_state == MV_U3D_STATUS_STAGE u3d 790 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "ep0 status stage\n"); u3d 791 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep0_state = MV_U3D_WAIT_FOR_SETUP; u3d 795 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "%s: %s, req: 0x%p\n", u3d 801 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, u3d 811 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, "%s, bad ep\n", __func__); u3d 819 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->driver || u3d->gadget.speed == USB_SPEED_UNKNOWN) { u3d 820 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, u3d 833 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "list is not empty\n"); u3d 837 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "call mv_u3d_start_queue from usb_ep_queue\n"); u3d 838 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock_irqsave(&u3d->lock, flags); u3d 840 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock_irqrestore(&u3d->lock, flags); u3d 849 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d; u3d 860 drivers/usb/gadget/udc/mv_u3d_core.c u3d = ep->u3d; u3d 862 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock_irqsave(&ep->u3d->lock, flags); u3d 881 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, u3d 914 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock_irqrestore(&ep->u3d->lock, flags); u3d 919 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_ep_set_stall(struct mv_u3d *u3d, u8 ep_num, u8 direction, int stall) u3d 922 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d_ep *ep = u3d->eps; u3d 924 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "%s\n", __func__); u3d 926 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->epcr[ep->ep_num].epxoutcr0); u3d 931 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->epcr[ep->ep_num].epxoutcr0); u3d 933 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->epcr[ep->ep_num].epxincr0); u3d 938 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->epcr[ep->ep_num].epxincr0); u3d 947 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d; u3d 950 drivers/usb/gadget/udc/mv_u3d_core.c u3d = ep->u3d; u3d 971 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock_irqsave(&ep->u3d->lock, flags); u3d 972 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_ep_set_stall(u3d, ep->ep_num, mv_u3d_ep_dir(ep), halt); u3d 977 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock_irqrestore(&ep->u3d->lock, flags); u3d 980 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep0_dir = MV_U3D_EP_DIR_OUT; u3d 1010 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_controller_stop(struct mv_u3d *u3d) u3d 1014 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->clock_gating && u3d->vbus_valid_detect) u3d 1016 drivers/usb/gadget/udc/mv_u3d_core.c &u3d->vuc_regs->intrenable); u3d 1018 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(0, &u3d->vuc_regs->intrenable); u3d 1019 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(~0x0, &u3d->vuc_regs->endcomplete); u3d 1020 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(~0x0, &u3d->vuc_regs->trbunderrun); u3d 1021 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(~0x0, &u3d->vuc_regs->trbcomplete); u3d 1022 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(~0x0, &u3d->vuc_regs->linkchange); u3d 1023 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(0x1, &u3d->vuc_regs->setuplock); u3d 1026 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->op_regs->usbcmd); u3d 1028 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->op_regs->usbcmd); u3d 1029 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "after u3d_stop, USBCMD 0x%x\n", u3d 1030 drivers/usb/gadget/udc/mv_u3d_core.c ioread32(&u3d->op_regs->usbcmd)); u3d 1033 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_controller_start(struct mv_u3d *u3d) u3d 1039 drivers/usb/gadget/udc/mv_u3d_core.c temp = ioread32(&u3d->vuc_regs->ltssm); u3d 1041 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(temp, &u3d->vuc_regs->ltssm); u3d 1047 drivers/usb/gadget/udc/mv_u3d_core.c (u3d->vbus_valid_detect ? MV_U3D_INTR_ENABLE_VBUS_VALID : 0); u3d 1048 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(usbintr, &u3d->vuc_regs->intrenable); u3d 1051 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(0x1, &u3d->vuc_regs->ctrlepenable); u3d 1054 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(MV_U3D_CMD_RUN_STOP, &u3d->op_regs->usbcmd); u3d 1055 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "after u3d_start, USBCMD 0x%x\n", u3d 1056 drivers/usb/gadget/udc/mv_u3d_core.c ioread32(&u3d->op_regs->usbcmd)); u3d 1059 drivers/usb/gadget/udc/mv_u3d_core.c static int mv_u3d_controller_reset(struct mv_u3d *u3d) u3d 1065 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->op_regs->usbcmd); u3d 1067 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->op_regs->usbcmd); u3d 1070 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(MV_U3D_CMD_CTRL_RESET, &u3d->op_regs->usbcmd); u3d 1074 drivers/usb/gadget/udc/mv_u3d_core.c while (ioread32(&u3d->op_regs->usbcmd) & MV_U3D_CMD_CTRL_RESET) { u3d 1076 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, u3d 1085 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(u3d->ep_context_dma, &u3d->op_regs->dcbaapl); u3d 1086 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(0, &u3d->op_regs->dcbaaph); u3d 1091 drivers/usb/gadget/udc/mv_u3d_core.c static int mv_u3d_enable(struct mv_u3d *u3d) u3d 1093 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_usb_platform_data *pdata = dev_get_platdata(u3d->dev); u3d 1096 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->active) u3d 1099 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->clock_gating) { u3d 1100 drivers/usb/gadget/udc/mv_u3d_core.c u3d->active = 1; u3d 1104 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "enable u3d\n"); u3d 1105 drivers/usb/gadget/udc/mv_u3d_core.c clk_enable(u3d->clk); u3d 1107 drivers/usb/gadget/udc/mv_u3d_core.c retval = pdata->phy_init(u3d->phy_regs); u3d 1109 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, u3d 1111 drivers/usb/gadget/udc/mv_u3d_core.c clk_disable(u3d->clk); u3d 1115 drivers/usb/gadget/udc/mv_u3d_core.c u3d->active = 1; u3d 1120 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_disable(struct mv_u3d *u3d) u3d 1122 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_usb_platform_data *pdata = dev_get_platdata(u3d->dev); u3d 1123 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->clock_gating && u3d->active) { u3d 1124 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "disable u3d\n"); u3d 1126 drivers/usb/gadget/udc/mv_u3d_core.c pdata->phy_deinit(u3d->phy_regs); u3d 1127 drivers/usb/gadget/udc/mv_u3d_core.c clk_disable(u3d->clk); u3d 1128 drivers/usb/gadget/udc/mv_u3d_core.c u3d->active = 0; u3d 1134 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d; u3d 1138 drivers/usb/gadget/udc/mv_u3d_core.c u3d = container_of(gadget, struct mv_u3d, gadget); u3d 1140 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock_irqsave(&u3d->lock, flags); u3d 1142 drivers/usb/gadget/udc/mv_u3d_core.c u3d->vbus_active = (is_active != 0); u3d 1143 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "%s: softconnect %d, vbus_active %d\n", u3d 1144 drivers/usb/gadget/udc/mv_u3d_core.c __func__, u3d->softconnect, u3d->vbus_active); u3d 1150 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->driver && u3d->softconnect && u3d->vbus_active) { u3d 1151 drivers/usb/gadget/udc/mv_u3d_core.c retval = mv_u3d_enable(u3d); u3d 1157 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_controller_reset(u3d); u3d 1158 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_ep0_reset(u3d); u3d 1159 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_controller_start(u3d); u3d 1161 drivers/usb/gadget/udc/mv_u3d_core.c } else if (u3d->driver && u3d->softconnect) { u3d 1162 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->active) u3d 1166 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_stop_activity(u3d, u3d->driver); u3d 1167 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_controller_stop(u3d); u3d 1168 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_disable(u3d); u3d 1172 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock_irqrestore(&u3d->lock, flags); u3d 1185 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = container_of(gadget, struct mv_u3d, gadget); u3d 1187 drivers/usb/gadget/udc/mv_u3d_core.c u3d->power = mA; u3d 1194 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = container_of(gadget, struct mv_u3d, gadget); u3d 1198 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock_irqsave(&u3d->lock, flags); u3d 1200 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "%s: softconnect %d, vbus_active %d\n", u3d 1201 drivers/usb/gadget/udc/mv_u3d_core.c __func__, u3d->softconnect, u3d->vbus_active); u3d 1202 drivers/usb/gadget/udc/mv_u3d_core.c u3d->softconnect = (is_on != 0); u3d 1203 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->driver && u3d->softconnect && u3d->vbus_active) { u3d 1204 drivers/usb/gadget/udc/mv_u3d_core.c retval = mv_u3d_enable(u3d); u3d 1210 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_controller_reset(u3d); u3d 1211 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_ep0_reset(u3d); u3d 1212 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_controller_start(u3d); u3d 1214 drivers/usb/gadget/udc/mv_u3d_core.c } else if (u3d->driver && u3d->vbus_active) { u3d 1216 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_stop_activity(u3d, u3d->driver); u3d 1217 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_controller_stop(u3d); u3d 1218 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_disable(u3d); u3d 1221 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock_irqrestore(&u3d->lock, flags); u3d 1229 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = container_of(g, struct mv_u3d, gadget); u3d 1230 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_usb_platform_data *pdata = dev_get_platdata(u3d->dev); u3d 1233 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->driver) u3d 1236 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock_irqsave(&u3d->lock, flags); u3d 1238 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->clock_gating) { u3d 1239 drivers/usb/gadget/udc/mv_u3d_core.c clk_enable(u3d->clk); u3d 1241 drivers/usb/gadget/udc/mv_u3d_core.c pdata->phy_init(u3d->phy_regs); u3d 1246 drivers/usb/gadget/udc/mv_u3d_core.c u3d->driver = driver; u3d 1248 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep0_dir = USB_DIR_OUT; u3d 1250 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock_irqrestore(&u3d->lock, flags); u3d 1252 drivers/usb/gadget/udc/mv_u3d_core.c u3d->vbus_valid_detect = 1; u3d 1259 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = container_of(g, struct mv_u3d, gadget); u3d 1260 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_usb_platform_data *pdata = dev_get_platdata(u3d->dev); u3d 1263 drivers/usb/gadget/udc/mv_u3d_core.c u3d->vbus_valid_detect = 0; u3d 1264 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock_irqsave(&u3d->lock, flags); u3d 1267 drivers/usb/gadget/udc/mv_u3d_core.c clk_enable(u3d->clk); u3d 1269 drivers/usb/gadget/udc/mv_u3d_core.c pdata->phy_init(u3d->phy_regs); u3d 1271 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_controller_stop(u3d); u3d 1273 drivers/usb/gadget/udc/mv_u3d_core.c u3d->gadget.speed = USB_SPEED_UNKNOWN; u3d 1274 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_stop_activity(u3d, NULL); u3d 1275 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_disable(u3d); u3d 1278 drivers/usb/gadget/udc/mv_u3d_core.c pdata->phy_deinit(u3d->phy_regs); u3d 1279 drivers/usb/gadget/udc/mv_u3d_core.c clk_disable(u3d->clk); u3d 1281 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock_irqrestore(&u3d->lock, flags); u3d 1283 drivers/usb/gadget/udc/mv_u3d_core.c u3d->driver = NULL; u3d 1301 drivers/usb/gadget/udc/mv_u3d_core.c static int mv_u3d_eps_init(struct mv_u3d *u3d) u3d 1308 drivers/usb/gadget/udc/mv_u3d_core.c ep = &u3d->eps[1]; u3d 1309 drivers/usb/gadget/udc/mv_u3d_core.c ep->u3d = u3d; u3d 1325 drivers/usb/gadget/udc/mv_u3d_core.c ep->ep_context = &u3d->ep_context[1]; u3d 1328 drivers/usb/gadget/udc/mv_u3d_core.c for (i = 2; i < u3d->max_eps * 2; i++) { u3d 1329 drivers/usb/gadget/udc/mv_u3d_core.c ep = &u3d->eps[i]; u3d 1339 drivers/usb/gadget/udc/mv_u3d_core.c ep->u3d = u3d; u3d 1352 drivers/usb/gadget/udc/mv_u3d_core.c list_add_tail(&ep->ep.ep_list, &u3d->gadget.ep_list); u3d 1356 drivers/usb/gadget/udc/mv_u3d_core.c ep->ep_context = &u3d->ep_context[i]; u3d 1377 drivers/usb/gadget/udc/mv_u3d_core.c void mv_u3d_stop_activity(struct mv_u3d *u3d, struct usb_gadget_driver *driver) u3d 1381 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_nuke(&u3d->eps[1], -ESHUTDOWN); u3d 1383 drivers/usb/gadget/udc/mv_u3d_core.c list_for_each_entry(ep, &u3d->gadget.ep_list, ep.ep_list) { u3d 1389 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock(&u3d->lock); u3d 1390 drivers/usb/gadget/udc/mv_u3d_core.c driver->disconnect(&u3d->gadget); u3d 1391 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock(&u3d->lock); u3d 1395 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_irq_process_error(struct mv_u3d *u3d) u3d 1398 drivers/usb/gadget/udc/mv_u3d_core.c u3d->errors++; u3d 1399 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, "%s\n", __func__); u3d 1402 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_irq_process_link_change(struct mv_u3d *u3d) u3d 1406 drivers/usb/gadget/udc/mv_u3d_core.c linkchange = ioread32(&u3d->vuc_regs->linkchange); u3d 1407 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(linkchange, &u3d->vuc_regs->linkchange); u3d 1409 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "linkchange: 0x%x\n", linkchange); u3d 1412 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "link up: ltssm state: 0x%x\n", u3d 1413 drivers/usb/gadget/udc/mv_u3d_core.c ioread32(&u3d->vuc_regs->ltssmstate)); u3d 1415 drivers/usb/gadget/udc/mv_u3d_core.c u3d->usb_state = USB_STATE_DEFAULT; u3d 1416 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep0_dir = MV_U3D_EP_DIR_OUT; u3d 1417 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep0_state = MV_U3D_WAIT_FOR_SETUP; u3d 1420 drivers/usb/gadget/udc/mv_u3d_core.c u3d->gadget.speed = USB_SPEED_SUPER; u3d 1424 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "link suspend\n"); u3d 1425 drivers/usb/gadget/udc/mv_u3d_core.c u3d->resume_state = u3d->usb_state; u3d 1426 drivers/usb/gadget/udc/mv_u3d_core.c u3d->usb_state = USB_STATE_SUSPENDED; u3d 1430 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "link resume\n"); u3d 1431 drivers/usb/gadget/udc/mv_u3d_core.c u3d->usb_state = u3d->resume_state; u3d 1432 drivers/usb/gadget/udc/mv_u3d_core.c u3d->resume_state = 0; u3d 1436 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "warm reset\n"); u3d 1437 drivers/usb/gadget/udc/mv_u3d_core.c u3d->usb_state = USB_STATE_POWERED; u3d 1441 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "hot reset\n"); u3d 1442 drivers/usb/gadget/udc/mv_u3d_core.c u3d->usb_state = USB_STATE_DEFAULT; u3d 1446 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "inactive\n"); u3d 1449 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "ss.disabled\n"); u3d 1452 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "vbus invalid\n"); u3d 1453 drivers/usb/gadget/udc/mv_u3d_core.c u3d->usb_state = USB_STATE_ATTACHED; u3d 1454 drivers/usb/gadget/udc/mv_u3d_core.c u3d->vbus_valid_detect = 1; u3d 1458 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->vbus) { u3d 1459 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock(&u3d->lock); u3d 1460 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_vbus_session(&u3d->gadget, 0); u3d 1461 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock(&u3d->lock); u3d 1466 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_ch9setaddress(struct mv_u3d *u3d, u3d 1471 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->usb_state != USB_STATE_DEFAULT) { u3d 1472 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, u3d 1474 drivers/usb/gadget/udc/mv_u3d_core.c __func__, u3d->usb_state); u3d 1478 drivers/usb/gadget/udc/mv_u3d_core.c u3d->dev_addr = (u8)setup->wValue; u3d 1480 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "%s: 0x%x\n", __func__, u3d->dev_addr); u3d 1482 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->dev_addr > 127) { u3d 1483 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, u3d 1485 drivers/usb/gadget/udc/mv_u3d_core.c u3d->dev_addr = 0; u3d 1490 drivers/usb/gadget/udc/mv_u3d_core.c u3d->usb_state = USB_STATE_ADDRESS; u3d 1493 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->devaddrtiebrkr); u3d 1495 drivers/usb/gadget/udc/mv_u3d_core.c tmp |= (u32)u3d->dev_addr; u3d 1496 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->devaddrtiebrkr); u3d 1500 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_ep0_stall(u3d); u3d 1512 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_handle_setup_packet(struct mv_u3d *u3d, u8 ep_num, u3d 1519 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_nuke(&u3d->eps[ep_num * 2 + MV_U3D_EP_DIR_IN], -ESHUTDOWN); u3d 1521 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "SETUP %02x.%02x v%04x i%04x l%04x\n", u3d 1533 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_ch9setaddress(u3d, setup); u3d 1555 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep0_dir = (setup->bRequestType & USB_DIR_IN) u3d 1557 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock(&u3d->lock); u3d 1558 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->driver->setup(&u3d->gadget, u3d 1559 drivers/usb/gadget/udc/mv_u3d_core.c &u3d->local_setup_buff) < 0) { u3d 1560 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, "setup error!\n"); u3d 1561 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_ep0_stall(u3d); u3d 1563 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock(&u3d->lock); u3d 1566 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep0_dir = MV_U3D_EP_DIR_IN; u3d 1567 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep0_state = MV_U3D_STATUS_STAGE; u3d 1568 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock(&u3d->lock); u3d 1569 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->driver->setup(&u3d->gadget, u3d 1570 drivers/usb/gadget/udc/mv_u3d_core.c &u3d->local_setup_buff) < 0) u3d 1571 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_ep0_stall(u3d); u3d 1572 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock(&u3d->lock); u3d 1576 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "u3d configured\n"); u3d 1577 drivers/usb/gadget/udc/mv_u3d_core.c u3d->usb_state = USB_STATE_CONFIGURED; u3d 1582 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_get_setup_data(struct mv_u3d *u3d, u8 ep_num, u8 *buffer_ptr) u3d 1586 drivers/usb/gadget/udc/mv_u3d_core.c epcontext = &u3d->ep_context[ep_num * 2 + MV_U3D_EP_DIR_IN]; u3d 1592 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_irq_process_setup(struct mv_u3d *u3d) u3d 1596 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->setuplock); u3d 1598 drivers/usb/gadget/udc/mv_u3d_core.c for (i = 0; i < u3d->max_eps; i++) { u3d 1600 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_get_setup_data(u3d, i, u3d 1601 drivers/usb/gadget/udc/mv_u3d_core.c (u8 *)(&u3d->local_setup_buff)); u3d 1602 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_handle_setup_packet(u3d, i, u3d 1603 drivers/usb/gadget/udc/mv_u3d_core.c &u3d->local_setup_buff); u3d 1608 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->setuplock); u3d 1611 drivers/usb/gadget/udc/mv_u3d_core.c static void mv_u3d_irq_process_tr_complete(struct mv_u3d *u3d) u3d 1619 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->vuc_regs->endcomplete); u3d 1621 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "tr_complete: ep: 0x%x\n", tmp); u3d 1624 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->vuc_regs->endcomplete); u3d 1626 drivers/usb/gadget/udc/mv_u3d_core.c for (i = 0; i < u3d->max_eps * 2; i++) { u3d 1636 drivers/usb/gadget/udc/mv_u3d_core.c curr_ep = &u3d->eps[1]; u3d 1638 drivers/usb/gadget/udc/mv_u3d_core.c curr_ep = &u3d->eps[i]; u3d 1641 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "tr comp: check req_list\n"); u3d 1655 drivers/usb/gadget/udc/mv_u3d_core.c status = mv_u3d_process_ep_req(u3d, i, curr_req); u3d 1670 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "call mv_u3d_start_queue from ep complete\n"); u3d 1677 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = (struct mv_u3d *)dev; u3d 1682 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock(&u3d->lock); u3d 1684 drivers/usb/gadget/udc/mv_u3d_core.c status = ioread32(&u3d->vuc_regs->intrcause); u3d 1685 drivers/usb/gadget/udc/mv_u3d_core.c intr = ioread32(&u3d->vuc_regs->intrenable); u3d 1689 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock(&u3d->lock); u3d 1690 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, "irq error!\n"); u3d 1695 drivers/usb/gadget/udc/mv_u3d_core.c bridgesetting = ioread32(&u3d->vuc_regs->bridgesetting); u3d 1699 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(bridgesetting, &u3d->vuc_regs->bridgesetting); u3d 1700 drivers/usb/gadget/udc/mv_u3d_core.c dev_dbg(u3d->dev, "vbus valid\n"); u3d 1702 drivers/usb/gadget/udc/mv_u3d_core.c u3d->usb_state = USB_STATE_POWERED; u3d 1703 drivers/usb/gadget/udc/mv_u3d_core.c u3d->vbus_valid_detect = 0; u3d 1707 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->vbus) { u3d 1708 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock(&u3d->lock); u3d 1709 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_vbus_session(&u3d->gadget, 1); u3d 1710 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock(&u3d->lock); u3d 1713 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, "vbus bit is not set\n"); u3d 1718 drivers/usb/gadget/udc/mv_u3d_core.c trbunderrun = ioread32(&u3d->vuc_regs->trbunderrun); u3d 1719 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, "under run, ep%d\n", trbunderrun); u3d 1720 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(trbunderrun, &u3d->vuc_regs->trbunderrun); u3d 1721 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_irq_process_error(u3d); u3d 1728 drivers/usb/gadget/udc/mv_u3d_core.c &u3d->vuc_regs->intrcause); u3d 1729 drivers/usb/gadget/udc/mv_u3d_core.c dev_err(u3d->dev, "desc err 0x%x\n", status); u3d 1730 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_irq_process_error(u3d); u3d 1734 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_irq_process_link_change(u3d); u3d 1737 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_irq_process_tr_complete(u3d); u3d 1740 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_irq_process_tr_complete(u3d); u3d 1743 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_irq_process_setup(u3d); u3d 1745 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock(&u3d->lock); u3d 1751 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = platform_get_drvdata(dev); u3d 1753 drivers/usb/gadget/udc/mv_u3d_core.c BUG_ON(u3d == NULL); u3d 1755 drivers/usb/gadget/udc/mv_u3d_core.c usb_del_gadget_udc(&u3d->gadget); u3d 1758 drivers/usb/gadget/udc/mv_u3d_core.c dma_pool_destroy(u3d->trb_pool); u3d 1760 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->ep_context) u3d 1761 drivers/usb/gadget/udc/mv_u3d_core.c dma_free_coherent(&dev->dev, u3d->ep_context_size, u3d 1762 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep_context, u3d->ep_context_dma); u3d 1764 drivers/usb/gadget/udc/mv_u3d_core.c kfree(u3d->eps); u3d 1766 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->irq) u3d 1767 drivers/usb/gadget/udc/mv_u3d_core.c free_irq(u3d->irq, u3d); u3d 1769 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->cap_regs) u3d 1770 drivers/usb/gadget/udc/mv_u3d_core.c iounmap(u3d->cap_regs); u3d 1771 drivers/usb/gadget/udc/mv_u3d_core.c u3d->cap_regs = NULL; u3d 1773 drivers/usb/gadget/udc/mv_u3d_core.c kfree(u3d->status_req); u3d 1775 drivers/usb/gadget/udc/mv_u3d_core.c clk_put(u3d->clk); u3d 1777 drivers/usb/gadget/udc/mv_u3d_core.c kfree(u3d); u3d 1784 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = NULL; u3d 1796 drivers/usb/gadget/udc/mv_u3d_core.c u3d = kzalloc(sizeof(*u3d), GFP_KERNEL); u3d 1797 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d) { u3d 1802 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock_init(&u3d->lock); u3d 1804 drivers/usb/gadget/udc/mv_u3d_core.c platform_set_drvdata(dev, u3d); u3d 1806 drivers/usb/gadget/udc/mv_u3d_core.c u3d->dev = &dev->dev; u3d 1807 drivers/usb/gadget/udc/mv_u3d_core.c u3d->vbus = pdata->vbus; u3d 1809 drivers/usb/gadget/udc/mv_u3d_core.c u3d->clk = clk_get(&dev->dev, NULL); u3d 1810 drivers/usb/gadget/udc/mv_u3d_core.c if (IS_ERR(u3d->clk)) { u3d 1811 drivers/usb/gadget/udc/mv_u3d_core.c retval = PTR_ERR(u3d->clk); u3d 1822 drivers/usb/gadget/udc/mv_u3d_core.c u3d->cap_regs = (struct mv_u3d_cap_regs __iomem *) u3d 1824 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->cap_regs) { u3d 1831 drivers/usb/gadget/udc/mv_u3d_core.c (unsigned long) u3d->cap_regs); u3d 1835 drivers/usb/gadget/udc/mv_u3d_core.c retval = clk_enable(u3d->clk); u3d 1842 drivers/usb/gadget/udc/mv_u3d_core.c retval = pdata->phy_init(u3d->phy_regs); u3d 1845 drivers/usb/gadget/udc/mv_u3d_core.c clk_disable(u3d->clk); u3d 1850 drivers/usb/gadget/udc/mv_u3d_core.c u3d->op_regs = (struct mv_u3d_op_regs __iomem *)(u3d->cap_regs u3d 1853 drivers/usb/gadget/udc/mv_u3d_core.c u3d->vuc_regs = (struct mv_u3d_vuc_regs __iomem *)(u3d->cap_regs u3d 1854 drivers/usb/gadget/udc/mv_u3d_core.c + ioread32(&u3d->cap_regs->vuoff)); u3d 1856 drivers/usb/gadget/udc/mv_u3d_core.c u3d->max_eps = 16; u3d 1862 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_controller_stop(u3d); u3d 1863 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(0xFFFFFFFF, &u3d->vuc_regs->intrcause); u3d 1866 drivers/usb/gadget/udc/mv_u3d_core.c pdata->phy_deinit(u3d->phy_regs); u3d 1867 drivers/usb/gadget/udc/mv_u3d_core.c clk_disable(u3d->clk); u3d 1869 drivers/usb/gadget/udc/mv_u3d_core.c size = u3d->max_eps * sizeof(struct mv_u3d_ep_context) * 2; u3d 1872 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep_context = dma_alloc_coherent(&dev->dev, size, u3d 1873 drivers/usb/gadget/udc/mv_u3d_core.c &u3d->ep_context_dma, GFP_KERNEL); u3d 1874 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->ep_context) { u3d 1879 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep_context_size = size; u3d 1882 drivers/usb/gadget/udc/mv_u3d_core.c u3d->trb_pool = dma_pool_create("u3d_trb", u3d 1888 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->trb_pool) { u3d 1893 drivers/usb/gadget/udc/mv_u3d_core.c size = u3d->max_eps * sizeof(struct mv_u3d_ep) * 2; u3d 1894 drivers/usb/gadget/udc/mv_u3d_core.c u3d->eps = kzalloc(size, GFP_KERNEL); u3d 1895 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->eps) { u3d 1901 drivers/usb/gadget/udc/mv_u3d_core.c u3d->status_req = kzalloc(sizeof(struct mv_u3d_req) + 8, GFP_KERNEL); u3d 1902 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->status_req) { u3d 1906 drivers/usb/gadget/udc/mv_u3d_core.c INIT_LIST_HEAD(&u3d->status_req->queue); u3d 1909 drivers/usb/gadget/udc/mv_u3d_core.c u3d->status_req->req.buf = (char *)u3d->status_req u3d 1911 drivers/usb/gadget/udc/mv_u3d_core.c u3d->status_req->req.dma = virt_to_phys(u3d->status_req->req.buf); u3d 1913 drivers/usb/gadget/udc/mv_u3d_core.c u3d->resume_state = USB_STATE_NOTATTACHED; u3d 1914 drivers/usb/gadget/udc/mv_u3d_core.c u3d->usb_state = USB_STATE_ATTACHED; u3d 1915 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep0_dir = MV_U3D_EP_DIR_OUT; u3d 1916 drivers/usb/gadget/udc/mv_u3d_core.c u3d->remote_wakeup = 0; u3d 1924 drivers/usb/gadget/udc/mv_u3d_core.c u3d->irq = r->start; u3d 1925 drivers/usb/gadget/udc/mv_u3d_core.c if (request_irq(u3d->irq, mv_u3d_irq, u3d 1926 drivers/usb/gadget/udc/mv_u3d_core.c IRQF_SHARED, driver_name, u3d)) { u3d 1927 drivers/usb/gadget/udc/mv_u3d_core.c u3d->irq = 0; u3d 1929 drivers/usb/gadget/udc/mv_u3d_core.c u3d->irq); u3d 1935 drivers/usb/gadget/udc/mv_u3d_core.c u3d->gadget.ops = &mv_u3d_ops; /* usb_gadget_ops */ u3d 1936 drivers/usb/gadget/udc/mv_u3d_core.c u3d->gadget.ep0 = &u3d->eps[1].ep; /* gadget ep0 */ u3d 1937 drivers/usb/gadget/udc/mv_u3d_core.c INIT_LIST_HEAD(&u3d->gadget.ep_list); /* ep_list */ u3d 1938 drivers/usb/gadget/udc/mv_u3d_core.c u3d->gadget.speed = USB_SPEED_UNKNOWN; /* speed */ u3d 1941 drivers/usb/gadget/udc/mv_u3d_core.c u3d->gadget.name = driver_name; /* gadget name */ u3d 1943 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_eps_init(u3d); u3d 1946 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->vbus) { u3d 1947 drivers/usb/gadget/udc/mv_u3d_core.c u3d->clock_gating = 1; u3d 1951 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->clock_gating) u3d 1952 drivers/usb/gadget/udc/mv_u3d_core.c u3d->vbus_active = 1; u3d 1955 drivers/usb/gadget/udc/mv_u3d_core.c u3d->vbus_valid_detect = 1; u3d 1957 drivers/usb/gadget/udc/mv_u3d_core.c retval = usb_add_gadget_udc(&dev->dev, &u3d->gadget); u3d 1962 drivers/usb/gadget/udc/mv_u3d_core.c u3d->clock_gating ? "with" : "without"); u3d 1967 drivers/usb/gadget/udc/mv_u3d_core.c free_irq(u3d->irq, u3d); u3d 1970 drivers/usb/gadget/udc/mv_u3d_core.c kfree(u3d->status_req); u3d 1972 drivers/usb/gadget/udc/mv_u3d_core.c kfree(u3d->eps); u3d 1974 drivers/usb/gadget/udc/mv_u3d_core.c dma_pool_destroy(u3d->trb_pool); u3d 1976 drivers/usb/gadget/udc/mv_u3d_core.c dma_free_coherent(&dev->dev, u3d->ep_context_size, u3d 1977 drivers/usb/gadget/udc/mv_u3d_core.c u3d->ep_context, u3d->ep_context_dma); u3d 1981 drivers/usb/gadget/udc/mv_u3d_core.c iounmap(u3d->cap_regs); u3d 1984 drivers/usb/gadget/udc/mv_u3d_core.c clk_put(u3d->clk); u3d 1986 drivers/usb/gadget/udc/mv_u3d_core.c kfree(u3d); u3d 1995 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = dev_get_drvdata(dev); u3d 2002 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->clock_gating) { u3d 2003 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_controller_stop(u3d); u3d 2005 drivers/usb/gadget/udc/mv_u3d_core.c spin_lock_irq(&u3d->lock); u3d 2007 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_stop_activity(u3d, u3d->driver); u3d 2008 drivers/usb/gadget/udc/mv_u3d_core.c spin_unlock_irq(&u3d->lock); u3d 2010 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_disable(u3d); u3d 2018 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = dev_get_drvdata(dev); u3d 2021 drivers/usb/gadget/udc/mv_u3d_core.c if (!u3d->clock_gating) { u3d 2022 drivers/usb/gadget/udc/mv_u3d_core.c retval = mv_u3d_enable(u3d); u3d 2026 drivers/usb/gadget/udc/mv_u3d_core.c if (u3d->driver && u3d->softconnect) { u3d 2027 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_controller_reset(u3d); u3d 2028 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_ep0_reset(u3d); u3d 2029 drivers/usb/gadget/udc/mv_u3d_core.c mv_u3d_controller_start(u3d); u3d 2041 drivers/usb/gadget/udc/mv_u3d_core.c struct mv_u3d *u3d = platform_get_drvdata(dev); u3d 2044 drivers/usb/gadget/udc/mv_u3d_core.c tmp = ioread32(&u3d->op_regs->usbcmd); u3d 2046 drivers/usb/gadget/udc/mv_u3d_core.c iowrite32(tmp, &u3d->op_regs->usbcmd); u3d 246 drivers/usb/mtu3/mtu3.h struct mtu3 *u3d; u3d 854 drivers/usb/mtu3/mtu3_core.c ssusb->u3d = mtu; u3d 920 drivers/usb/mtu3/mtu3_core.c ssusb->u3d = NULL; u3d 928 drivers/usb/mtu3/mtu3_core.c struct mtu3 *mtu = ssusb->u3d; u3d 402 drivers/usb/mtu3/mtu3_debugfs.c struct mtu3 *mtu = ssusb->u3d; u3d 159 drivers/usb/mtu3/mtu3_dr.c struct mtu3 *mtu = ssusb->u3d;