udc 47 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_endpoint_toggle_reset(struct nbu2ss_udc *udc, u8 ep_adrs); udc 54 drivers/staging/emxx_udc/emxx_udc.c #define _nbu2ss_zero_len_pkt(udc, epnum) \ udc 55 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep_in_end(udc, epnum, 0, 0) udc 95 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_dump_register(struct nbu2ss_udc *udc) udc 102 drivers/staging/emxx_udc/emxx_udc.c if (!udc) { udc 107 drivers/staging/emxx_udc/emxx_udc.c spin_unlock(&udc->lock); udc 109 drivers/staging/emxx_udc/emxx_udc.c dev_dbg(&udc->dev, "\n-USB REG-\n"); udc 112 drivers/staging/emxx_udc/emxx_udc.c dev_dbg(&udc->dev, "USB%04x =%08x", i, (int)reg_data); udc 115 drivers/staging/emxx_udc/emxx_udc.c dev_dbg(&udc->dev, " %08x", (int)reg_data); udc 118 drivers/staging/emxx_udc/emxx_udc.c dev_dbg(&udc->dev, " %08x", (int)reg_data); udc 121 drivers/staging/emxx_udc/emxx_udc.c dev_dbg(&udc->dev, " %08x\n", (int)reg_data); udc 124 drivers/staging/emxx_udc/emxx_udc.c spin_lock(&udc->lock); udc 137 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 142 drivers/staging/emxx_udc/emxx_udc.c udc = (struct nbu2ss_udc *)_req->context; udc 143 drivers/staging/emxx_udc/emxx_udc.c p_ctrl = &udc->ctrl; udc 154 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_set_test_mode(udc, test_mode); udc 162 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_create_ep0_packet(struct nbu2ss_udc *udc, udc 165 drivers/staging/emxx_udc/emxx_udc.c udc->ep0_req.req.buf = p_buf; udc 166 drivers/staging/emxx_udc/emxx_udc.c udc->ep0_req.req.length = length; udc 167 drivers/staging/emxx_udc/emxx_udc.c udc->ep0_req.req.dma = 0; udc 168 drivers/staging/emxx_udc/emxx_udc.c udc->ep0_req.req.zero = true; udc 169 drivers/staging/emxx_udc/emxx_udc.c udc->ep0_req.req.complete = _nbu2ss_ep0_complete; udc 170 drivers/staging/emxx_udc/emxx_udc.c udc->ep0_req.req.status = -EINPROGRESS; udc 171 drivers/staging/emxx_udc/emxx_udc.c udc->ep0_req.req.context = udc; udc 172 drivers/staging/emxx_udc/emxx_udc.c udc->ep0_req.req.actual = 0; udc 177 drivers/staging/emxx_udc/emxx_udc.c static u32 _nbu2ss_get_begin_ram_address(struct nbu2ss_udc *udc) udc 188 drivers/staging/emxx_udc/emxx_udc.c p_ep_regs = &udc->p_regs->EP_REGS[num]; udc 208 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_ep_init(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep) udc 221 drivers/staging/emxx_udc/emxx_udc.c begin_adrs = _nbu2ss_get_begin_ram_address(udc); udc 223 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP_REGS[num].EP_PCKT_ADRS, data); udc 228 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->USB_INT_ENA, data); udc 251 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP_REGS[num].EP_CONTROL, data); udc 252 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_endpoint_toggle_reset(udc, (ep->epnum | ep->direct)); udc 258 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP_REGS[num].EP_CONTROL, data); udc 261 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->EP_REGS[num].EP_CONTROL, data); udc 264 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP_REGS[num].EP_INT_ENA, data); udc 269 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP_REGS[num].EP_CONTROL, data); udc 272 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->EP_REGS[num].EP_CONTROL, data); udc 275 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP_REGS[num].EP_INT_ENA, data); udc 283 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_epn_exit(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep) udc 288 drivers/staging/emxx_udc/emxx_udc.c if ((ep->epnum == 0) || (udc->vbus_active == 0)) udc 295 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP_REGS[num].EP_PCKT_ADRS, 0); udc 300 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->USB_INT_ENA, data); udc 306 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP_REGS[num].EP_CONTROL, data); udc 309 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->EP_REGS[num].EP_CONTROL, data); udc 312 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->EP_REGS[num].EP_INT_ENA, data); udc 317 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP_REGS[num].EP_CONTROL, data); udc 320 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->EP_REGS[num].EP_CONTROL, data); udc 323 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->EP_REGS[num].EP_INT_ENA, data); udc 331 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_ep_dma_init(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep) udc 336 drivers/staging/emxx_udc/emxx_udc.c data = _nbu2ss_readl(&udc->p_regs->USBSSCONF); udc 346 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP_DCR[num].EP_DCR2, data); udc 351 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP_DCR[num].EP_DCR1, data); udc 356 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP_REGS[num].EP_DMA_CTRL, data); udc 360 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP_REGS[num].EP_CONTROL, EPN_AUTO); udc 365 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP_REGS[num].EP_DMA_CTRL, data); udc 371 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_ep_dma_exit(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep) udc 375 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 377 drivers/staging/emxx_udc/emxx_udc.c if (udc->vbus_active == 0) udc 386 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep_dma_abort(udc, ep); udc 404 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_ep_dma_abort(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep) udc 406 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 415 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_ep_in_end(struct nbu2ss_udc *udc, udc 420 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 454 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_dma_map_single(struct nbu2ss_udc *udc, udc 462 drivers/staging/emxx_udc/emxx_udc.c req->req.dma = dma_map_single(udc->gadget.dev.parent, udc 472 drivers/staging/emxx_udc/emxx_udc.c dma_sync_single_for_device(udc->gadget.dev.parent, udc 484 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_dma_unmap_single(struct nbu2ss_udc *udc, udc 507 drivers/staging/emxx_udc/emxx_udc.c dma_unmap_single(udc->gadget.dev.parent, udc 517 drivers/staging/emxx_udc/emxx_udc.c dma_sync_single_for_cpu(udc->gadget.dev.parent, udc 534 drivers/staging/emxx_udc/emxx_udc.c static int ep0_out_pio(struct nbu2ss_udc *udc, u8 *buf, u32 length) udc 545 drivers/staging/emxx_udc/emxx_udc.c buf32->dw = _nbu2ss_readl(&udc->p_regs->EP0_READ); udc 554 drivers/staging/emxx_udc/emxx_udc.c static int ep0_out_overbytes(struct nbu2ss_udc *udc, u8 *p_buf, u32 length) udc 562 drivers/staging/emxx_udc/emxx_udc.c temp_32.dw = _nbu2ss_readl(&udc->p_regs->EP0_READ); udc 573 drivers/staging/emxx_udc/emxx_udc.c static int EP0_in_PIO(struct nbu2ss_udc *udc, u8 *p_buf, u32 length) udc 591 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP0_WRITE, p_buf_32->dw); udc 601 drivers/staging/emxx_udc/emxx_udc.c static int ep0_in_overbytes(struct nbu2ss_udc *udc, udc 612 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep_in_end(udc, 0, temp_32.dw, i_remain_size); udc 622 drivers/staging/emxx_udc/emxx_udc.c static int EP0_send_NULL(struct nbu2ss_udc *udc, bool pid_flag) udc 626 drivers/staging/emxx_udc/emxx_udc.c data = _nbu2ss_readl(&udc->p_regs->EP0_CONTROL); udc 634 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP0_CONTROL, data); udc 641 drivers/staging/emxx_udc/emxx_udc.c static int EP0_receive_NULL(struct nbu2ss_udc *udc, bool pid_flag) udc 645 drivers/staging/emxx_udc/emxx_udc.c data = _nbu2ss_readl(&udc->p_regs->EP0_CONTROL); udc 651 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP0_CONTROL, data); udc 657 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_ep0_in_transfer(struct nbu2ss_udc *udc, udc 671 drivers/staging/emxx_udc/emxx_udc.c EP0_send_NULL(udc, false); udc 681 drivers/staging/emxx_udc/emxx_udc.c data = _nbu2ss_readl(&udc->p_regs->EP0_CONTROL); udc 684 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP0_CONTROL, data); udc 692 drivers/staging/emxx_udc/emxx_udc.c result = EP0_in_PIO(udc, p_buffer, i_remain_size); udc 698 drivers/staging/emxx_udc/emxx_udc.c EP0_send_NULL(udc, false); udc 704 drivers/staging/emxx_udc/emxx_udc.c result += ep0_in_overbytes(udc, p_buffer, i_remain_size); udc 712 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_ep0_out_transfer(struct nbu2ss_udc *udc, udc 723 drivers/staging/emxx_udc/emxx_udc.c i_recv_length = _nbu2ss_readl(&udc->p_regs->EP0_LENGTH) & EP0_LDATA; udc 731 drivers/staging/emxx_udc/emxx_udc.c result = ep0_out_pio(udc, p_buffer udc 743 drivers/staging/emxx_udc/emxx_udc.c result = ep0_out_overbytes(udc, p_buffer udc 757 drivers/staging/emxx_udc/emxx_udc.c EP0_receive_NULL(udc, false); udc 769 drivers/staging/emxx_udc/emxx_udc.c dev_err(udc->dev, " *** Overrun Error\n"); udc 774 drivers/staging/emxx_udc/emxx_udc.c i_remain_size = _nbu2ss_readl(&udc->p_regs->EP0_CONTROL); udc 778 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->EP0_CONTROL, EP0_ONAK); udc 787 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_out_dma(struct nbu2ss_udc *udc, struct nbu2ss_req *req, udc 797 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 846 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_epn_out_pio(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep, udc 856 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 901 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_epn_out_data(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep, udc 917 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_out_dma(udc, req, num, i_buf_size); udc 920 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_epn_out_pio(udc, ep, req, i_buf_size); udc 927 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_epn_out_transfer(struct nbu2ss_udc *udc, udc 934 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 947 drivers/staging/emxx_udc/emxx_udc.c result = _nbu2ss_epn_out_data(udc, ep, req, i_recv_length); udc 971 drivers/staging/emxx_udc/emxx_udc.c dev_err(udc->dev, " Overrun Error\n"); udc 972 drivers/staging/emxx_udc/emxx_udc.c dev_err(udc->dev, " actual = %d, length = %d\n", udc 981 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_in_dma(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep, udc 991 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 998 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_dma_map_single(udc, ep, req, USB_DIR_IN); udc 1052 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_epn_in_pio(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep, udc 1062 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 1091 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep_in_end(udc, ep->epnum, temp_32.dw, data); udc 1101 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_epn_in_data(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep, udc 1114 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_in_dma(udc, ep, req, num, data_size); udc 1117 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_epn_in_pio(udc, ep, req, data_size); udc 1124 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_epn_in_transfer(struct nbu2ss_udc *udc, udc 1137 drivers/staging/emxx_udc/emxx_udc.c status = _nbu2ss_readl(&udc->p_regs->EP_REGS[num].EP_STATUS); udc 1154 drivers/staging/emxx_udc/emxx_udc.c result = _nbu2ss_epn_in_data(udc, ep, req, i_buf_size); udc 1156 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_zero_len_pkt(udc, ep->epnum); udc 1162 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_start_transfer(struct nbu2ss_udc *udc, udc 1183 drivers/staging/emxx_udc/emxx_udc.c switch (udc->ep0state) { udc 1185 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_ep0_in_transfer(udc, req); udc 1189 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_ep0_out_transfer(udc, req); udc 1193 drivers/staging/emxx_udc/emxx_udc.c nret = EP0_send_NULL(udc, true); udc 1205 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_epn_out_transfer(udc, ep, req); udc 1208 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_epn_in_transfer(udc, ep, req); udc 1228 drivers/staging/emxx_udc/emxx_udc.c &ep->udc->p_regs->EP_REGS[ep->epnum - 1].EP_LEN_DCNT); udc 1235 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_start_transfer(ep->udc, ep, req, bflag); udc 1240 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_endpoint_toggle_reset(struct nbu2ss_udc *udc, u8 ep_adrs) udc 1255 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP_REGS[num].EP_CONTROL, data); udc 1260 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_set_endpoint_stall(struct nbu2ss_udc *udc, udc 1266 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 1279 drivers/staging/emxx_udc/emxx_udc.c ep = &udc->ep[epnum]; udc 1318 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_set_test_mode(struct nbu2ss_udc *udc, u32 mode) udc 1325 drivers/staging/emxx_udc/emxx_udc.c dev_info(udc->dev, "SET FEATURE : test mode = %d\n", mode); udc 1327 drivers/staging/emxx_udc/emxx_udc.c data = _nbu2ss_readl(&udc->p_regs->USB_CONTROL); udc 1331 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->USB_CONTROL, data); udc 1332 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->TEST_CONTROL, CS_TESTMODEEN); udc 1336 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_set_feature_device(struct nbu2ss_udc *udc, udc 1344 drivers/staging/emxx_udc/emxx_udc.c udc->remote_wakeup = U2F_ENABLE; udc 1363 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_get_ep_stall(struct nbu2ss_udc *udc, u8 ep_adrs) udc 1367 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 1391 drivers/staging/emxx_udc/emxx_udc.c static inline int _nbu2ss_req_feature(struct nbu2ss_udc *udc, bool bset) udc 1393 drivers/staging/emxx_udc/emxx_udc.c u8 recipient = (u8)(udc->ctrl.bRequestType & USB_RECIP_MASK); udc 1394 drivers/staging/emxx_udc/emxx_udc.c u8 direction = (u8)(udc->ctrl.bRequestType & USB_DIR_IN); udc 1395 drivers/staging/emxx_udc/emxx_udc.c u16 selector = le16_to_cpu(udc->ctrl.wValue); udc 1396 drivers/staging/emxx_udc/emxx_udc.c u16 wIndex = le16_to_cpu(udc->ctrl.wIndex); udc 1400 drivers/staging/emxx_udc/emxx_udc.c if ((udc->ctrl.wLength != 0x0000) || udc 1409 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_set_feature_device(udc, selector, wIndex); udc 1417 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_endpoint_toggle_reset(udc, udc 1421 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_set_endpoint_stall(udc, ep_adrs, bset); udc 1433 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_create_ep0_packet(udc, udc->ep0_buf, 0); udc 1439 drivers/staging/emxx_udc/emxx_udc.c static inline enum usb_device_speed _nbu2ss_get_speed(struct nbu2ss_udc *udc) udc 1444 drivers/staging/emxx_udc/emxx_udc.c data = _nbu2ss_readl(&udc->p_regs->USB_STATUS); udc 1452 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_epn_set_stall(struct nbu2ss_udc *udc, udc 1459 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 1476 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_set_endpoint_stall(udc, ep_adrs, 1); udc 1480 drivers/staging/emxx_udc/emxx_udc.c static int std_req_get_status(struct nbu2ss_udc *udc) udc 1484 drivers/staging/emxx_udc/emxx_udc.c u8 recipient = (u8)(udc->ctrl.bRequestType & USB_RECIP_MASK); udc 1485 drivers/staging/emxx_udc/emxx_udc.c u8 direction = (u8)(udc->ctrl.bRequestType & USB_DIR_IN); udc 1489 drivers/staging/emxx_udc/emxx_udc.c if ((udc->ctrl.wValue != 0x0000) || (direction != USB_DIR_IN)) udc 1493 drivers/staging/emxx_udc/emxx_udc.c min_t(u16, le16_to_cpu(udc->ctrl.wLength), sizeof(status_data)); udc 1496 drivers/staging/emxx_udc/emxx_udc.c if (udc->ctrl.wIndex == 0x0000) { udc 1497 drivers/staging/emxx_udc/emxx_udc.c if (udc->gadget.is_selfpowered) udc 1500 drivers/staging/emxx_udc/emxx_udc.c if (udc->remote_wakeup) udc 1508 drivers/staging/emxx_udc/emxx_udc.c if (0x0000 == (le16_to_cpu(udc->ctrl.wIndex) & 0xFF70)) { udc 1509 drivers/staging/emxx_udc/emxx_udc.c ep_adrs = (u8)(le16_to_cpu(udc->ctrl.wIndex) & 0xFF); udc 1510 drivers/staging/emxx_udc/emxx_udc.c result = _nbu2ss_get_ep_stall(udc, ep_adrs); udc 1522 drivers/staging/emxx_udc/emxx_udc.c memcpy(udc->ep0_buf, &status_data, length); udc 1523 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_create_ep0_packet(udc, udc->ep0_buf, length); udc 1524 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep0_in_transfer(udc, &udc->ep0_req); udc 1527 drivers/staging/emxx_udc/emxx_udc.c dev_err(udc->dev, " Error GET_STATUS\n"); udc 1534 drivers/staging/emxx_udc/emxx_udc.c static int std_req_clear_feature(struct nbu2ss_udc *udc) udc 1536 drivers/staging/emxx_udc/emxx_udc.c return _nbu2ss_req_feature(udc, false); udc 1540 drivers/staging/emxx_udc/emxx_udc.c static int std_req_set_feature(struct nbu2ss_udc *udc) udc 1542 drivers/staging/emxx_udc/emxx_udc.c return _nbu2ss_req_feature(udc, true); udc 1546 drivers/staging/emxx_udc/emxx_udc.c static int std_req_set_address(struct nbu2ss_udc *udc) udc 1549 drivers/staging/emxx_udc/emxx_udc.c u32 wValue = le16_to_cpu(udc->ctrl.wValue); udc 1551 drivers/staging/emxx_udc/emxx_udc.c if ((udc->ctrl.bRequestType != 0x00) || udc 1552 drivers/staging/emxx_udc/emxx_udc.c (udc->ctrl.wIndex != 0x0000) || udc 1553 drivers/staging/emxx_udc/emxx_udc.c (udc->ctrl.wLength != 0x0000)) { udc 1562 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->USB_ADDRESS, wValue); udc 1563 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_create_ep0_packet(udc, udc->ep0_buf, 0); udc 1569 drivers/staging/emxx_udc/emxx_udc.c static int std_req_set_configuration(struct nbu2ss_udc *udc) udc 1571 drivers/staging/emxx_udc/emxx_udc.c u32 config_value = (u32)(le16_to_cpu(udc->ctrl.wValue) & 0x00ff); udc 1573 drivers/staging/emxx_udc/emxx_udc.c if ((udc->ctrl.wIndex != 0x0000) || udc 1574 drivers/staging/emxx_udc/emxx_udc.c (udc->ctrl.wLength != 0x0000) || udc 1575 drivers/staging/emxx_udc/emxx_udc.c (udc->ctrl.bRequestType != 0x00)) { udc 1579 drivers/staging/emxx_udc/emxx_udc.c udc->curr_config = config_value; udc 1582 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->USB_CONTROL, CONF); udc 1583 drivers/staging/emxx_udc/emxx_udc.c udc->devstate = USB_STATE_CONFIGURED; udc 1586 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->USB_CONTROL, CONF); udc 1587 drivers/staging/emxx_udc/emxx_udc.c udc->devstate = USB_STATE_ADDRESS; udc 1594 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_read_request_data(struct nbu2ss_udc *udc, u32 *pdata) udc 1596 drivers/staging/emxx_udc/emxx_udc.c *pdata = _nbu2ss_readl(&udc->p_regs->SETUP_DATA0); udc 1598 drivers/staging/emxx_udc/emxx_udc.c *pdata = _nbu2ss_readl(&udc->p_regs->SETUP_DATA1); udc 1602 drivers/staging/emxx_udc/emxx_udc.c static inline int _nbu2ss_decode_request(struct nbu2ss_udc *udc) udc 1608 drivers/staging/emxx_udc/emxx_udc.c p_ctrl = &udc->ctrl; udc 1609 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_read_request_data(udc, (u32 *)p_ctrl); udc 1613 drivers/staging/emxx_udc/emxx_udc.c udc->ep0state = EP0_IN_STATUS_PHASE; udc 1617 drivers/staging/emxx_udc/emxx_udc.c udc->ep0state = EP0_IN_DATA_PHASE; udc 1619 drivers/staging/emxx_udc/emxx_udc.c udc->ep0state = EP0_OUT_DATA_PHASE; udc 1625 drivers/staging/emxx_udc/emxx_udc.c nret = std_req_get_status(udc); udc 1630 drivers/staging/emxx_udc/emxx_udc.c nret = std_req_clear_feature(udc); udc 1635 drivers/staging/emxx_udc/emxx_udc.c nret = std_req_set_feature(udc); udc 1640 drivers/staging/emxx_udc/emxx_udc.c nret = std_req_set_address(udc); udc 1645 drivers/staging/emxx_udc/emxx_udc.c nret = std_req_set_configuration(udc); udc 1654 drivers/staging/emxx_udc/emxx_udc.c if (udc->ep0state == EP0_IN_STATUS_PHASE) { udc 1658 drivers/staging/emxx_udc/emxx_udc.c nret = EP0_send_NULL(udc, true); udc 1663 drivers/staging/emxx_udc/emxx_udc.c spin_unlock(&udc->lock); udc 1664 drivers/staging/emxx_udc/emxx_udc.c nret = udc->driver->setup(&udc->gadget, &udc->ctrl); udc 1665 drivers/staging/emxx_udc/emxx_udc.c spin_lock(&udc->lock); udc 1669 drivers/staging/emxx_udc/emxx_udc.c udc->ep0state = EP0_IDLE; udc 1675 drivers/staging/emxx_udc/emxx_udc.c static inline int _nbu2ss_ep0_in_data_stage(struct nbu2ss_udc *udc) udc 1679 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_ep *ep = &udc->ep[0]; udc 1683 drivers/staging/emxx_udc/emxx_udc.c req = &udc->ep0_req; udc 1688 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_ep0_in_transfer(udc, req); udc 1690 drivers/staging/emxx_udc/emxx_udc.c udc->ep0state = EP0_OUT_STATUS_PAHSE; udc 1691 drivers/staging/emxx_udc/emxx_udc.c EP0_receive_NULL(udc, true); udc 1698 drivers/staging/emxx_udc/emxx_udc.c static inline int _nbu2ss_ep0_out_data_stage(struct nbu2ss_udc *udc) udc 1702 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_ep *ep = &udc->ep[0]; udc 1706 drivers/staging/emxx_udc/emxx_udc.c req = &udc->ep0_req; udc 1708 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_ep0_out_transfer(udc, req); udc 1710 drivers/staging/emxx_udc/emxx_udc.c udc->ep0state = EP0_IN_STATUS_PHASE; udc 1711 drivers/staging/emxx_udc/emxx_udc.c EP0_send_NULL(udc, true); udc 1714 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP0_CONTROL, EP0_BCLR); udc 1722 drivers/staging/emxx_udc/emxx_udc.c static inline int _nbu2ss_ep0_status_stage(struct nbu2ss_udc *udc) udc 1725 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_ep *ep = &udc->ep[0]; udc 1729 drivers/staging/emxx_udc/emxx_udc.c req = &udc->ep0_req; udc 1738 drivers/staging/emxx_udc/emxx_udc.c udc->ep0state = EP0_IDLE; udc 1744 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_ep0_int(struct nbu2ss_udc *udc) udc 1751 drivers/staging/emxx_udc/emxx_udc.c status = _nbu2ss_readl(&udc->p_regs->EP0_STATUS); udc 1753 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP0_STATUS, ~intr); udc 1759 drivers/staging/emxx_udc/emxx_udc.c dev_info(udc->dev, "%s Not Decode Interrupt\n", __func__); udc 1760 drivers/staging/emxx_udc/emxx_udc.c dev_info(udc->dev, "EP0_STATUS = 0x%08x\n", intr); udc 1764 drivers/staging/emxx_udc/emxx_udc.c if (udc->gadget.speed == USB_SPEED_UNKNOWN) udc 1765 drivers/staging/emxx_udc/emxx_udc.c udc->gadget.speed = _nbu2ss_get_speed(udc); udc 1768 drivers/staging/emxx_udc/emxx_udc.c switch (udc->ep0state) { udc 1772 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_decode_request(udc); udc 1779 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_ep0_in_data_stage(udc); udc 1786 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_ep0_out_data_stage(udc); udc 1793 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_ep0_status_stage(udc); udc 1804 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_ep0_status_stage(udc); udc 1820 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_set_endpoint_stall(udc, 0, true); udc 1829 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc = ep->udc; udc 1834 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_fifo_flush(udc, ep); udc 1840 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_epn_set_stall(udc, ep); udc 1849 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_dma_unmap_single(udc, ep, req, USB_DIR_OUT); udc 1852 drivers/staging/emxx_udc/emxx_udc.c spin_unlock(&udc->lock); udc 1854 drivers/staging/emxx_udc/emxx_udc.c spin_lock(&udc->lock); udc 1858 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_epn_in_int(struct nbu2ss_udc *udc, udc 1865 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 1876 drivers/staging/emxx_udc/emxx_udc.c result = _nbu2ss_epn_in_transfer(udc, ep, req); udc 1887 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_zero_len_pkt(udc, ep->epnum); udc 1901 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_epn_out_int(struct nbu2ss_udc *udc, udc 1907 drivers/staging/emxx_udc/emxx_udc.c result = _nbu2ss_epn_out_transfer(udc, ep, req); udc 1913 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_epn_in_dma_int(struct nbu2ss_udc *udc, udc 1931 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_dma_unmap_single(udc, ep, req, USB_DIR_IN); udc 1935 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_epn_in_transfer(udc, ep, req); udc 1941 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep_in_end(udc, ep->epnum, 0, 0); udc 1943 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_epn_in_int(udc, ep, req); udc 1949 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_epn_out_dma_int(struct nbu2ss_udc *udc, udc 1957 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 2003 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_epn_out_int(udc, ep, req); udc 2007 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_epn_int(struct nbu2ss_udc *udc, u32 epnum) udc 2013 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_ep *ep = &udc->ep[epnum]; udc 2018 drivers/staging/emxx_udc/emxx_udc.c status = _nbu2ss_readl(&udc->p_regs->EP_REGS[num].EP_STATUS); udc 2021 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP_REGS[num].EP_STATUS, ~status); udc 2031 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_epn_out_dma_int(udc, ep, req); udc 2035 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_epn_out_int(udc, ep, req); udc 2039 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_epn_in_dma_int(udc, ep, req); udc 2043 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_epn_in_int(udc, ep, req); udc 2047 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_ep_int(struct nbu2ss_udc *udc, u32 epnum) udc 2050 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep0_int(udc); udc 2052 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_epn_int(udc, epnum); udc 2056 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_ep0_enable(struct nbu2ss_udc *udc) udc 2058 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EP0_CONTROL, (EP0_AUTO | EP0_BCLR)); udc 2059 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->EP0_INT_ENA, EP0_INT_EN_BIT); udc 2063 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_nuke(struct nbu2ss_udc *udc, udc 2070 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_epn_exit(udc, ep); udc 2073 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep_dma_exit(udc, ep); udc 2087 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_quiesce(struct nbu2ss_udc *udc) udc 2091 drivers/staging/emxx_udc/emxx_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 2093 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_nuke(udc, &udc->ep[0], -ESHUTDOWN); udc 2096 drivers/staging/emxx_udc/emxx_udc.c list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) { udc 2097 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_nuke(udc, ep, -ESHUTDOWN); udc 2102 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_pullup(struct nbu2ss_udc *udc, int is_on) udc 2106 drivers/staging/emxx_udc/emxx_udc.c if (udc->vbus_active == 0) udc 2111 drivers/staging/emxx_udc/emxx_udc.c if (udc->driver) { udc 2112 drivers/staging/emxx_udc/emxx_udc.c reg_dt = (_nbu2ss_readl(&udc->p_regs->USB_CONTROL) udc 2115 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->USB_CONTROL, reg_dt); udc 2120 drivers/staging/emxx_udc/emxx_udc.c reg_dt = (_nbu2ss_readl(&udc->p_regs->USB_CONTROL) | CONNECTB) udc 2123 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->USB_CONTROL, reg_dt); udc 2124 drivers/staging/emxx_udc/emxx_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 2131 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_fifo_flush(struct nbu2ss_udc *udc, struct nbu2ss_ep *ep) udc 2133 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *p = udc->p_regs; udc 2135 drivers/staging/emxx_udc/emxx_udc.c if (udc->vbus_active == 0) udc 2144 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep_dma_abort(udc, ep); udc 2150 drivers/staging/emxx_udc/emxx_udc.c static int _nbu2ss_enable_controller(struct nbu2ss_udc *udc) udc 2154 drivers/staging/emxx_udc/emxx_udc.c if (udc->udc_enabled) udc 2158 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EPCTR, (DIRPD | EPC_RST)); udc 2161 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->EPCTR, DIRPD); udc 2164 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->EPCTR, EPC_RST); udc 2166 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->AHBSCTR, WAIT_MODE); udc 2168 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_writel(&udc->p_regs->AHBMCTR, udc 2171 drivers/staging/emxx_udc/emxx_udc.c while (!(_nbu2ss_readl(&udc->p_regs->EPCTR) & PLL_LOCK)) { udc 2175 drivers/staging/emxx_udc/emxx_udc.c dev_err(udc->dev, "*** Reset Cancel failed\n"); udc 2180 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->UTMI_CHARACTER_1, USB_SQUSET); udc 2182 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->USB_CONTROL, (INT_SEL | SOF_RCV)); udc 2185 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep0_enable(udc); udc 2188 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->USB_INT_ENA, USB_INT_EN_BIT); udc 2190 drivers/staging/emxx_udc/emxx_udc.c udc->udc_enabled = true; udc 2196 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_reset_controller(struct nbu2ss_udc *udc) udc 2198 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EPCTR, EPC_RST); udc 2199 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->EPCTR, EPC_RST); udc 2203 drivers/staging/emxx_udc/emxx_udc.c static void _nbu2ss_disable_controller(struct nbu2ss_udc *udc) udc 2205 drivers/staging/emxx_udc/emxx_udc.c if (udc->udc_enabled) { udc 2206 drivers/staging/emxx_udc/emxx_udc.c udc->udc_enabled = false; udc 2207 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_reset_controller(udc); udc 2208 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EPCTR, (DIRPD | EPC_RST)); udc 2213 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_check_vbus(struct nbu2ss_udc *udc) udc 2224 drivers/staging/emxx_udc/emxx_udc.c udc->linux_suspended = 0; udc 2226 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_reset_controller(udc); udc 2227 drivers/staging/emxx_udc/emxx_udc.c dev_info(udc->dev, " ----- VBUS OFF\n"); udc 2229 drivers/staging/emxx_udc/emxx_udc.c if (udc->vbus_active == 1) { udc 2231 drivers/staging/emxx_udc/emxx_udc.c udc->vbus_active = 0; udc 2232 drivers/staging/emxx_udc/emxx_udc.c if (udc->usb_suspended) { udc 2233 drivers/staging/emxx_udc/emxx_udc.c udc->usb_suspended = 0; udc 2236 drivers/staging/emxx_udc/emxx_udc.c udc->devstate = USB_STATE_NOTATTACHED; udc 2238 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_quiesce(udc); udc 2239 drivers/staging/emxx_udc/emxx_udc.c if (udc->driver) { udc 2240 drivers/staging/emxx_udc/emxx_udc.c spin_unlock(&udc->lock); udc 2241 drivers/staging/emxx_udc/emxx_udc.c udc->driver->disconnect(&udc->gadget); udc 2242 drivers/staging/emxx_udc/emxx_udc.c spin_lock(&udc->lock); udc 2245 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_disable_controller(udc); udc 2253 drivers/staging/emxx_udc/emxx_udc.c dev_info(udc->dev, " ----- VBUS ON\n"); udc 2255 drivers/staging/emxx_udc/emxx_udc.c if (udc->linux_suspended) udc 2258 drivers/staging/emxx_udc/emxx_udc.c if (udc->vbus_active == 0) { udc 2260 drivers/staging/emxx_udc/emxx_udc.c udc->vbus_active = 1; udc 2261 drivers/staging/emxx_udc/emxx_udc.c udc->devstate = USB_STATE_POWERED; udc 2263 drivers/staging/emxx_udc/emxx_udc.c nret = _nbu2ss_enable_controller(udc); udc 2265 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_disable_controller(udc); udc 2266 drivers/staging/emxx_udc/emxx_udc.c udc->vbus_active = 0; udc 2270 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_pullup(udc, 1); udc 2273 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_dump_register(udc); udc 2277 drivers/staging/emxx_udc/emxx_udc.c if (udc->devstate == USB_STATE_POWERED) udc 2278 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_pullup(udc, 1); udc 2284 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_int_bus_reset(struct nbu2ss_udc *udc) udc 2286 drivers/staging/emxx_udc/emxx_udc.c udc->devstate = USB_STATE_DEFAULT; udc 2287 drivers/staging/emxx_udc/emxx_udc.c udc->remote_wakeup = 0; udc 2289 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_quiesce(udc); udc 2291 drivers/staging/emxx_udc/emxx_udc.c udc->ep0state = EP0_IDLE; udc 2295 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_int_usb_resume(struct nbu2ss_udc *udc) udc 2297 drivers/staging/emxx_udc/emxx_udc.c if (udc->usb_suspended == 1) { udc 2298 drivers/staging/emxx_udc/emxx_udc.c udc->usb_suspended = 0; udc 2299 drivers/staging/emxx_udc/emxx_udc.c if (udc->driver && udc->driver->resume) { udc 2300 drivers/staging/emxx_udc/emxx_udc.c spin_unlock(&udc->lock); udc 2301 drivers/staging/emxx_udc/emxx_udc.c udc->driver->resume(&udc->gadget); udc 2302 drivers/staging/emxx_udc/emxx_udc.c spin_lock(&udc->lock); udc 2308 drivers/staging/emxx_udc/emxx_udc.c static inline void _nbu2ss_int_usb_suspend(struct nbu2ss_udc *udc) udc 2312 drivers/staging/emxx_udc/emxx_udc.c if (udc->usb_suspended == 0) { udc 2318 drivers/staging/emxx_udc/emxx_udc.c udc->usb_suspended = 1; udc 2319 drivers/staging/emxx_udc/emxx_udc.c if (udc->driver && udc->driver->suspend) { udc 2320 drivers/staging/emxx_udc/emxx_udc.c spin_unlock(&udc->lock); udc 2321 drivers/staging/emxx_udc/emxx_udc.c udc->driver->suspend(&udc->gadget); udc 2322 drivers/staging/emxx_udc/emxx_udc.c spin_lock(&udc->lock); udc 2325 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->USB_CONTROL, SUSPEND); udc 2333 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc = (struct nbu2ss_udc *)_udc; udc 2335 drivers/staging/emxx_udc/emxx_udc.c spin_lock(&udc->lock); udc 2336 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_check_vbus(udc); udc 2337 drivers/staging/emxx_udc/emxx_udc.c spin_unlock(&udc->lock); udc 2350 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc = (struct nbu2ss_udc *)_udc; udc 2351 drivers/staging/emxx_udc/emxx_udc.c struct fc_regs __iomem *preg = udc->p_regs; udc 2359 drivers/staging/emxx_udc/emxx_udc.c spin_lock(&udc->lock); udc 2377 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_int_bus_reset(udc); udc 2382 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_int_usb_resume(udc); udc 2396 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep_int(udc, epnum); udc 2407 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_int_usb_suspend(udc); udc 2409 drivers/staging/emxx_udc/emxx_udc.c spin_unlock(&udc->lock); udc 2423 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2431 drivers/staging/emxx_udc/emxx_udc.c if (!ep->udc) { udc 2443 drivers/staging/emxx_udc/emxx_udc.c udc = ep->udc; udc 2444 drivers/staging/emxx_udc/emxx_udc.c if (udc->vbus_active == 0) udc 2447 drivers/staging/emxx_udc/emxx_udc.c if ((!udc->driver) || (udc->gadget.speed == USB_SPEED_UNKNOWN)) { udc 2448 drivers/staging/emxx_udc/emxx_udc.c dev_err(ep->udc->dev, " *** %s, udc !!\n", __func__); udc 2452 drivers/staging/emxx_udc/emxx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2465 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep_dma_init(udc, ep); udc 2468 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_ep_init(udc, ep); udc 2470 drivers/staging/emxx_udc/emxx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2479 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2488 drivers/staging/emxx_udc/emxx_udc.c if (!ep->udc) { udc 2493 drivers/staging/emxx_udc/emxx_udc.c udc = ep->udc; udc 2494 drivers/staging/emxx_udc/emxx_udc.c if (udc->vbus_active == 0) udc 2497 drivers/staging/emxx_udc/emxx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2498 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_nuke(udc, ep, -EINPROGRESS); /* dequeue request */ udc 2499 drivers/staging/emxx_udc/emxx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2541 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2574 drivers/staging/emxx_udc/emxx_udc.c udc = ep->udc; udc 2576 drivers/staging/emxx_udc/emxx_udc.c if (udc->vbus_active == 0) { udc 2577 drivers/staging/emxx_udc/emxx_udc.c dev_info(udc->dev, "Can't ep_queue (VBUS OFF)\n"); udc 2581 drivers/staging/emxx_udc/emxx_udc.c if (unlikely(!udc->driver)) { udc 2582 drivers/staging/emxx_udc/emxx_udc.c dev_err(udc->dev, "%s, bogus device state %p\n", __func__, udc 2583 drivers/staging/emxx_udc/emxx_udc.c udc->driver); udc 2587 drivers/staging/emxx_udc/emxx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2609 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_dma_map_single(udc, ep, req, USB_DIR_OUT); udc 2619 drivers/staging/emxx_udc/emxx_udc.c result = _nbu2ss_start_transfer(udc, ep, req, false); udc 2621 drivers/staging/emxx_udc/emxx_udc.c dev_err(udc->dev, " *** %s, result = %d\n", __func__, udc 2635 drivers/staging/emxx_udc/emxx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2645 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2656 drivers/staging/emxx_udc/emxx_udc.c udc = ep->udc; udc 2657 drivers/staging/emxx_udc/emxx_udc.c if (!udc) udc 2660 drivers/staging/emxx_udc/emxx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2668 drivers/staging/emxx_udc/emxx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2675 drivers/staging/emxx_udc/emxx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2687 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2696 drivers/staging/emxx_udc/emxx_udc.c udc = ep->udc; udc 2697 drivers/staging/emxx_udc/emxx_udc.c if (!udc) { udc 2698 drivers/staging/emxx_udc/emxx_udc.c dev_err(ep->udc->dev, " *** %s, bad udc\n", __func__); udc 2702 drivers/staging/emxx_udc/emxx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2706 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_set_endpoint_stall(udc, ep_adrs, value); udc 2710 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_epn_set_stall(udc, ep); udc 2718 drivers/staging/emxx_udc/emxx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2733 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2744 drivers/staging/emxx_udc/emxx_udc.c udc = ep->udc; udc 2745 drivers/staging/emxx_udc/emxx_udc.c if (!udc) { udc 2746 drivers/staging/emxx_udc/emxx_udc.c dev_err(ep->udc->dev, "%s, bad udc\n", __func__); udc 2750 drivers/staging/emxx_udc/emxx_udc.c preg = udc->p_regs; udc 2756 drivers/staging/emxx_udc/emxx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2766 drivers/staging/emxx_udc/emxx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2776 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2786 drivers/staging/emxx_udc/emxx_udc.c udc = ep->udc; udc 2787 drivers/staging/emxx_udc/emxx_udc.c if (!udc) { udc 2788 drivers/staging/emxx_udc/emxx_udc.c dev_err(ep->udc->dev, "%s, bad udc\n", __func__); udc 2796 drivers/staging/emxx_udc/emxx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2797 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_fifo_flush(udc, ep); udc 2798 drivers/staging/emxx_udc/emxx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2826 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2833 drivers/staging/emxx_udc/emxx_udc.c udc = container_of(pgadget, struct nbu2ss_udc, gadget); udc 2838 drivers/staging/emxx_udc/emxx_udc.c return _nbu2ss_readl(&udc->p_regs->USB_ADDRESS) & FRAME; udc 2847 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2854 drivers/staging/emxx_udc/emxx_udc.c udc = container_of(pgadget, struct nbu2ss_udc, gadget); udc 2862 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitset(&udc->p_regs->EPCTR, PLL_RESUME); udc 2865 drivers/staging/emxx_udc/emxx_udc.c data = _nbu2ss_readl(&udc->p_regs->EPCTR); udc 2871 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_bitclr(&udc->p_regs->EPCTR, PLL_RESUME); udc 2880 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2888 drivers/staging/emxx_udc/emxx_udc.c udc = container_of(pgadget, struct nbu2ss_udc, gadget); udc 2890 drivers/staging/emxx_udc/emxx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2892 drivers/staging/emxx_udc/emxx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2906 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2914 drivers/staging/emxx_udc/emxx_udc.c udc = container_of(pgadget, struct nbu2ss_udc, gadget); udc 2916 drivers/staging/emxx_udc/emxx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2917 drivers/staging/emxx_udc/emxx_udc.c udc->mA = mA; udc 2918 drivers/staging/emxx_udc/emxx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2926 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 2934 drivers/staging/emxx_udc/emxx_udc.c udc = container_of(pgadget, struct nbu2ss_udc, gadget); udc 2936 drivers/staging/emxx_udc/emxx_udc.c if (!udc->driver) { udc 2941 drivers/staging/emxx_udc/emxx_udc.c if (udc->vbus_active == 0) udc 2944 drivers/staging/emxx_udc/emxx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2945 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_pullup(udc, is_on); udc 2946 drivers/staging/emxx_udc/emxx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 3011 drivers/staging/emxx_udc/emxx_udc.c static void nbu2ss_drv_ep_init(struct nbu2ss_udc *udc) udc 3015 drivers/staging/emxx_udc/emxx_udc.c INIT_LIST_HEAD(&udc->gadget.ep_list); udc 3016 drivers/staging/emxx_udc/emxx_udc.c udc->gadget.ep0 = &udc->ep[0].ep; udc 3019 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_ep *ep = &udc->ep[i]; udc 3021 drivers/staging/emxx_udc/emxx_udc.c ep->udc = udc; udc 3033 drivers/staging/emxx_udc/emxx_udc.c list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); udc 3037 drivers/staging/emxx_udc/emxx_udc.c list_del_init(&udc->ep[0].ep.ep_list); udc 3043 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc) udc 3045 drivers/staging/emxx_udc/emxx_udc.c spin_lock_init(&udc->lock); udc 3046 drivers/staging/emxx_udc/emxx_udc.c udc->dev = &pdev->dev; udc 3048 drivers/staging/emxx_udc/emxx_udc.c udc->gadget.is_selfpowered = 1; udc 3049 drivers/staging/emxx_udc/emxx_udc.c udc->devstate = USB_STATE_NOTATTACHED; udc 3050 drivers/staging/emxx_udc/emxx_udc.c udc->pdev = pdev; udc 3051 drivers/staging/emxx_udc/emxx_udc.c udc->mA = 0; udc 3053 drivers/staging/emxx_udc/emxx_udc.c udc->pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); udc 3056 drivers/staging/emxx_udc/emxx_udc.c nbu2ss_drv_ep_init(udc); udc 3059 drivers/staging/emxx_udc/emxx_udc.c udc->gadget.ops = &nbu2ss_gadget_ops; udc 3060 drivers/staging/emxx_udc/emxx_udc.c udc->gadget.ep0 = &udc->ep[0].ep; udc 3061 drivers/staging/emxx_udc/emxx_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 3062 drivers/staging/emxx_udc/emxx_udc.c udc->gadget.name = driver_name; udc 3065 drivers/staging/emxx_udc/emxx_udc.c device_initialize(&udc->gadget.dev); udc 3067 drivers/staging/emxx_udc/emxx_udc.c dev_set_name(&udc->gadget.dev, "gadget"); udc 3068 drivers/staging/emxx_udc/emxx_udc.c udc->gadget.dev.parent = &pdev->dev; udc 3069 drivers/staging/emxx_udc/emxx_udc.c udc->gadget.dev.dma_mask = pdev->dev.dma_mask; udc 3080 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 3085 drivers/staging/emxx_udc/emxx_udc.c udc = &udc_controller; udc 3086 drivers/staging/emxx_udc/emxx_udc.c memset(udc, 0, sizeof(struct nbu2ss_udc)); udc 3088 drivers/staging/emxx_udc/emxx_udc.c platform_set_drvdata(pdev, udc); udc 3100 drivers/staging/emxx_udc/emxx_udc.c 0, driver_name, udc); udc 3103 drivers/staging/emxx_udc/emxx_udc.c udc->p_regs = (struct fc_regs __iomem *)mmio_base; udc 3107 drivers/staging/emxx_udc/emxx_udc.c dev_err(udc->dev, "request_irq(USB_UDC_IRQ_1) failed\n"); udc 3112 drivers/staging/emxx_udc/emxx_udc.c status = nbu2ss_drv_contest_init(pdev, udc); udc 3122 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_vbus_irq, IRQF_SHARED, driver_name, udc); udc 3125 drivers/staging/emxx_udc/emxx_udc.c dev_err(udc->dev, "request_irq(vbus_irq) failed\n"); udc 3135 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 3137 drivers/staging/emxx_udc/emxx_udc.c udc = platform_get_drvdata(pdev); udc 3138 drivers/staging/emxx_udc/emxx_udc.c if (!udc) udc 3141 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_disable_controller(udc); udc 3147 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 3151 drivers/staging/emxx_udc/emxx_udc.c udc = &udc_controller; udc 3154 drivers/staging/emxx_udc/emxx_udc.c ep = &udc->ep[i]; udc 3161 drivers/staging/emxx_udc/emxx_udc.c free_irq(vbus_irq, udc); udc 3169 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 3171 drivers/staging/emxx_udc/emxx_udc.c udc = platform_get_drvdata(pdev); udc 3172 drivers/staging/emxx_udc/emxx_udc.c if (!udc) udc 3175 drivers/staging/emxx_udc/emxx_udc.c if (udc->vbus_active) { udc 3176 drivers/staging/emxx_udc/emxx_udc.c udc->vbus_active = 0; udc 3177 drivers/staging/emxx_udc/emxx_udc.c udc->devstate = USB_STATE_NOTATTACHED; udc 3178 drivers/staging/emxx_udc/emxx_udc.c udc->linux_suspended = 1; udc 3180 drivers/staging/emxx_udc/emxx_udc.c if (udc->usb_suspended) { udc 3181 drivers/staging/emxx_udc/emxx_udc.c udc->usb_suspended = 0; udc 3182 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_reset_controller(udc); udc 3185 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_quiesce(udc); udc 3187 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_disable_controller(udc); udc 3196 drivers/staging/emxx_udc/emxx_udc.c struct nbu2ss_udc *udc; udc 3198 drivers/staging/emxx_udc/emxx_udc.c udc = platform_get_drvdata(pdev); udc 3199 drivers/staging/emxx_udc/emxx_udc.c if (!udc) udc 3204 drivers/staging/emxx_udc/emxx_udc.c udc->vbus_active = 1; udc 3205 drivers/staging/emxx_udc/emxx_udc.c udc->devstate = USB_STATE_POWERED; udc 3206 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_enable_controller(udc); udc 3207 drivers/staging/emxx_udc/emxx_udc.c _nbu2ss_pullup(udc, 1); udc 3210 drivers/staging/emxx_udc/emxx_udc.c udc->linux_suspended = 0; udc 538 drivers/staging/emxx_udc/emxx_udc.h struct nbu2ss_udc *udc; udc 65 drivers/usb/chipidea/ci_hdrc_tegra.c struct tegra_udc *udc; udc 68 drivers/usb/chipidea/ci_hdrc_tegra.c udc = devm_kzalloc(&pdev->dev, sizeof(*udc), GFP_KERNEL); udc 69 drivers/usb/chipidea/ci_hdrc_tegra.c if (!udc) udc 78 drivers/usb/chipidea/ci_hdrc_tegra.c udc->phy = devm_usb_get_phy_by_phandle(&pdev->dev, "nvidia,phy", 0); udc 79 drivers/usb/chipidea/ci_hdrc_tegra.c if (IS_ERR(udc->phy)) { udc 80 drivers/usb/chipidea/ci_hdrc_tegra.c err = PTR_ERR(udc->phy); udc 85 drivers/usb/chipidea/ci_hdrc_tegra.c udc->clk = devm_clk_get(&pdev->dev, NULL); udc 86 drivers/usb/chipidea/ci_hdrc_tegra.c if (IS_ERR(udc->clk)) { udc 87 drivers/usb/chipidea/ci_hdrc_tegra.c err = PTR_ERR(udc->clk); udc 92 drivers/usb/chipidea/ci_hdrc_tegra.c err = clk_prepare_enable(udc->clk); udc 103 drivers/usb/chipidea/ci_hdrc_tegra.c usb_phy_set_suspend(udc->phy, 0); udc 106 drivers/usb/chipidea/ci_hdrc_tegra.c udc->data.name = "tegra-udc"; udc 107 drivers/usb/chipidea/ci_hdrc_tegra.c udc->data.flags = soc->flags; udc 108 drivers/usb/chipidea/ci_hdrc_tegra.c udc->data.usb_phy = udc->phy; udc 109 drivers/usb/chipidea/ci_hdrc_tegra.c udc->data.capoffset = DEF_CAPOFFSET; udc 111 drivers/usb/chipidea/ci_hdrc_tegra.c udc->dev = ci_hdrc_add_device(&pdev->dev, pdev->resource, udc 112 drivers/usb/chipidea/ci_hdrc_tegra.c pdev->num_resources, &udc->data); udc 113 drivers/usb/chipidea/ci_hdrc_tegra.c if (IS_ERR(udc->dev)) { udc 114 drivers/usb/chipidea/ci_hdrc_tegra.c err = PTR_ERR(udc->dev); udc 119 drivers/usb/chipidea/ci_hdrc_tegra.c platform_set_drvdata(pdev, udc); udc 124 drivers/usb/chipidea/ci_hdrc_tegra.c usb_phy_set_suspend(udc->phy, 1); udc 125 drivers/usb/chipidea/ci_hdrc_tegra.c clk_disable_unprepare(udc->clk); udc 131 drivers/usb/chipidea/ci_hdrc_tegra.c struct tegra_udc *udc = platform_get_drvdata(pdev); udc 133 drivers/usb/chipidea/ci_hdrc_tegra.c ci_hdrc_remove_device(udc->dev); udc 134 drivers/usb/chipidea/ci_hdrc_tegra.c usb_phy_set_suspend(udc->phy, 1); udc 135 drivers/usb/chipidea/ci_hdrc_tegra.c clk_disable_unprepare(udc->clk); udc 498 drivers/usb/dwc3/dwc3-meson-g12a.c priv->switch_desc.udc = dwc3_meson_g12_find_child(dev, "snps,dwc2"); udc 517 drivers/usb/gadget/udc/amd5536udc.h struct udc *dev; udc 579 drivers/usb/gadget/udc/amd5536udc.h #define to_amd5536_udc(g) (container_of((g), struct udc, gadget)) udc 588 drivers/usb/gadget/udc/amd5536udc.h int udc_enable_dev_setup_interrupts(struct udc *dev); udc 589 drivers/usb/gadget/udc/amd5536udc.h int udc_mask_unused_interrupts(struct udc *dev); udc 593 drivers/usb/gadget/udc/amd5536udc.h void udc_basic_init(struct udc *dev); udc 594 drivers/usb/gadget/udc/amd5536udc.h void free_dma_pools(struct udc *dev); udc 595 drivers/usb/gadget/udc/amd5536udc.h int init_dma_pools(struct udc *dev); udc 596 drivers/usb/gadget/udc/amd5536udc.h void udc_remove(struct udc *dev); udc 597 drivers/usb/gadget/udc/amd5536udc.h int udc_probe(struct udc *dev); udc 654 drivers/usb/gadget/udc/amd5536udc.h #define DBG(udc , args...) dev_dbg(udc->dev, args) udc 659 drivers/usb/gadget/udc/amd5536udc.h #define VDBG(udc , args...) do {} while (0) udc 49 drivers/usb/gadget/udc/amd5536udc_pci.c static struct udc *udc; udc 58 drivers/usb/gadget/udc/amd5536udc_pci.c struct udc *dev; udc 62 drivers/usb/gadget/udc/amd5536udc_pci.c usb_del_gadget_udc(&udc->gadget); udc 87 drivers/usb/gadget/udc/amd5536udc_pci.c struct udc *dev; udc 93 drivers/usb/gadget/udc/amd5536udc_pci.c if (udc) { udc 99 drivers/usb/gadget/udc/amd5536udc_pci.c dev = kzalloc(sizeof(struct udc), GFP_KERNEL); udc 515 drivers/usb/gadget/udc/aspeed-vhub/vhub.h #define ast_vhub_simple_reply(udc, ...) \ udc 516 drivers/usb/gadget/udc/aspeed-vhub/vhub.h __ast_vhub_simple_reply((udc), \ udc 89 drivers/usb/gadget/udc/at91_udc.c #define at91_udp_read(udc, reg) \ udc 90 drivers/usb/gadget/udc/at91_udc.c __raw_readl((udc)->udp_baseaddr + (reg)) udc 91 drivers/usb/gadget/udc/at91_udc.c #define at91_udp_write(udc, reg, val) \ udc 92 drivers/usb/gadget/udc/at91_udc.c __raw_writel((val), (udc)->udp_baseaddr + (reg)) udc 114 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = ep->udc; udc 116 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 160 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 184 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = s->private; udc 191 drivers/usb/gadget/udc/at91_udc.c udc->vbus ? "present" : "off", udc 192 drivers/usb/gadget/udc/at91_udc.c udc->enabled udc 193 drivers/usb/gadget/udc/at91_udc.c ? (udc->vbus ? "active" : "enabled") udc 195 drivers/usb/gadget/udc/at91_udc.c udc->gadget.is_selfpowered ? "self" : "VBUS", udc 196 drivers/usb/gadget/udc/at91_udc.c udc->suspended ? ", suspended" : "", udc 197 drivers/usb/gadget/udc/at91_udc.c udc->driver ? udc->driver->driver.name : "(none)"); udc 200 drivers/usb/gadget/udc/at91_udc.c if (!udc->clocked) { udc 205 drivers/usb/gadget/udc/at91_udc.c tmp = at91_udp_read(udc, AT91_UDP_FRM_NUM); udc 211 drivers/usb/gadget/udc/at91_udc.c tmp = at91_udp_read(udc, AT91_UDP_GLB_STAT); udc 219 drivers/usb/gadget/udc/at91_udc.c tmp = at91_udp_read(udc, AT91_UDP_FADDR); udc 224 drivers/usb/gadget/udc/at91_udc.c proc_irq_show(s, "imr ", at91_udp_read(udc, AT91_UDP_IMR)); udc 225 drivers/usb/gadget/udc/at91_udc.c proc_irq_show(s, "isr ", at91_udp_read(udc, AT91_UDP_ISR)); udc 227 drivers/usb/gadget/udc/at91_udc.c if (udc->enabled && udc->vbus) { udc 228 drivers/usb/gadget/udc/at91_udc.c proc_ep_show(s, &udc->ep[0]); udc 229 drivers/usb/gadget/udc/at91_udc.c list_for_each_entry (ep, &udc->gadget.ep_list, ep.ep_list) { udc 237 drivers/usb/gadget/udc/at91_udc.c static void create_debug_file(struct at91_udc *udc) udc 239 drivers/usb/gadget/udc/at91_udc.c udc->pde = proc_create_single_data(debug_filename, 0, NULL, udc 240 drivers/usb/gadget/udc/at91_udc.c proc_udc_show, udc); udc 243 drivers/usb/gadget/udc/at91_udc.c static void remove_debug_file(struct at91_udc *udc) udc 245 drivers/usb/gadget/udc/at91_udc.c if (udc->pde) udc 251 drivers/usb/gadget/udc/at91_udc.c static inline void create_debug_file(struct at91_udc *udc) {} udc 252 drivers/usb/gadget/udc/at91_udc.c static inline void remove_debug_file(struct at91_udc *udc) {} udc 262 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = ep->udc; udc 273 drivers/usb/gadget/udc/at91_udc.c spin_unlock(&udc->lock); udc 275 drivers/usb/gadget/udc/at91_udc.c spin_lock(&udc->lock); udc 280 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IDR, ep->int_mask); udc 475 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc; udc 489 drivers/usb/gadget/udc/at91_udc.c udc = ep->udc; udc 490 drivers/usb/gadget/udc/at91_udc.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) { udc 524 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 542 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_RST_EP, ep->int_mask); udc 543 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_RST_EP, 0); udc 545 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 552 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = ep->udc; udc 555 drivers/usb/gadget/udc/at91_udc.c if (ep == &ep->udc->ep[0]) udc 558 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 567 drivers/usb/gadget/udc/at91_udc.c if (ep->udc->clocked) { udc 568 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_RST_EP, ep->int_mask); udc 569 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_RST_EP, 0); udc 573 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 609 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc; udc 627 drivers/usb/gadget/udc/at91_udc.c udc = ep->udc; udc 629 drivers/usb/gadget/udc/at91_udc.c if (!udc || !udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) { udc 637 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 655 drivers/usb/gadget/udc/at91_udc.c if (!udc->req_pending) { udc 664 drivers/usb/gadget/udc/at91_udc.c if (udc->wait_for_config_ack) { udc 665 drivers/usb/gadget/udc/at91_udc.c tmp = at91_udp_read(udc, AT91_UDP_GLB_STAT); udc 668 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_GLB_STAT, tmp); udc 678 drivers/usb/gadget/udc/at91_udc.c udc->req_pending = 0; udc 697 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IER, ep->int_mask); udc 700 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 709 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc; udc 715 drivers/usb/gadget/udc/at91_udc.c udc = ep->udc; udc 717 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 725 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 730 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 737 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = ep->udc; udc 743 drivers/usb/gadget/udc/at91_udc.c if (!_ep || ep->is_iso || !ep->udc->clocked) udc 747 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 765 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_RST_EP, ep->int_mask); udc 766 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_RST_EP, 0); udc 772 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 791 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = to_udc(gadget); udc 795 drivers/usb/gadget/udc/at91_udc.c return at91_udp_read(udc, AT91_UDP_FRM_NUM) & AT91_UDP_NUM; udc 800 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = to_udc(gadget); udc 805 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 807 drivers/usb/gadget/udc/at91_udc.c if (!udc->clocked || !udc->suspended) udc 812 drivers/usb/gadget/udc/at91_udc.c glbstate = at91_udp_read(udc, AT91_UDP_GLB_STAT); udc 816 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_GLB_STAT, glbstate); udc 819 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 824 drivers/usb/gadget/udc/at91_udc.c static void udc_reinit(struct at91_udc *udc) udc 828 drivers/usb/gadget/udc/at91_udc.c INIT_LIST_HEAD(&udc->gadget.ep_list); udc 829 drivers/usb/gadget/udc/at91_udc.c INIT_LIST_HEAD(&udc->gadget.ep0->ep_list); udc 830 drivers/usb/gadget/udc/at91_udc.c udc->gadget.quirk_stall_not_supp = 1; udc 833 drivers/usb/gadget/udc/at91_udc.c struct at91_ep *ep = &udc->ep[i]; udc 836 drivers/usb/gadget/udc/at91_udc.c list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); udc 841 drivers/usb/gadget/udc/at91_udc.c ep->creg = (void __iomem *) udc->udp_baseaddr + AT91_UDP_CSR(i); udc 847 drivers/usb/gadget/udc/at91_udc.c static void reset_gadget(struct at91_udc *udc) udc 849 drivers/usb/gadget/udc/at91_udc.c struct usb_gadget_driver *driver = udc->driver; udc 852 drivers/usb/gadget/udc/at91_udc.c if (udc->gadget.speed == USB_SPEED_UNKNOWN) udc 854 drivers/usb/gadget/udc/at91_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 855 drivers/usb/gadget/udc/at91_udc.c udc->suspended = 0; udc 858 drivers/usb/gadget/udc/at91_udc.c struct at91_ep *ep = &udc->ep[i]; udc 864 drivers/usb/gadget/udc/at91_udc.c spin_unlock(&udc->lock); udc 865 drivers/usb/gadget/udc/at91_udc.c usb_gadget_udc_reset(&udc->gadget, driver); udc 866 drivers/usb/gadget/udc/at91_udc.c spin_lock(&udc->lock); udc 869 drivers/usb/gadget/udc/at91_udc.c udc_reinit(udc); udc 872 drivers/usb/gadget/udc/at91_udc.c static void stop_activity(struct at91_udc *udc) udc 874 drivers/usb/gadget/udc/at91_udc.c struct usb_gadget_driver *driver = udc->driver; udc 877 drivers/usb/gadget/udc/at91_udc.c if (udc->gadget.speed == USB_SPEED_UNKNOWN) udc 879 drivers/usb/gadget/udc/at91_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 880 drivers/usb/gadget/udc/at91_udc.c udc->suspended = 0; udc 883 drivers/usb/gadget/udc/at91_udc.c struct at91_ep *ep = &udc->ep[i]; udc 888 drivers/usb/gadget/udc/at91_udc.c spin_unlock(&udc->lock); udc 889 drivers/usb/gadget/udc/at91_udc.c driver->disconnect(&udc->gadget); udc 890 drivers/usb/gadget/udc/at91_udc.c spin_lock(&udc->lock); udc 893 drivers/usb/gadget/udc/at91_udc.c udc_reinit(udc); udc 896 drivers/usb/gadget/udc/at91_udc.c static void clk_on(struct at91_udc *udc) udc 898 drivers/usb/gadget/udc/at91_udc.c if (udc->clocked) udc 900 drivers/usb/gadget/udc/at91_udc.c udc->clocked = 1; udc 902 drivers/usb/gadget/udc/at91_udc.c clk_enable(udc->iclk); udc 903 drivers/usb/gadget/udc/at91_udc.c clk_enable(udc->fclk); udc 906 drivers/usb/gadget/udc/at91_udc.c static void clk_off(struct at91_udc *udc) udc 908 drivers/usb/gadget/udc/at91_udc.c if (!udc->clocked) udc 910 drivers/usb/gadget/udc/at91_udc.c udc->clocked = 0; udc 911 drivers/usb/gadget/udc/at91_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 912 drivers/usb/gadget/udc/at91_udc.c clk_disable(udc->fclk); udc 913 drivers/usb/gadget/udc/at91_udc.c clk_disable(udc->iclk); udc 920 drivers/usb/gadget/udc/at91_udc.c static void pullup(struct at91_udc *udc, int is_on) udc 922 drivers/usb/gadget/udc/at91_udc.c if (!udc->enabled || !udc->vbus) udc 927 drivers/usb/gadget/udc/at91_udc.c clk_on(udc); udc 928 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_ICR, AT91_UDP_RXRSM); udc 929 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_TXVC, 0); udc 931 drivers/usb/gadget/udc/at91_udc.c stop_activity(udc); udc 932 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IDR, AT91_UDP_RXRSM); udc 933 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_TXVC, AT91_UDP_TXVC_TXVDIS); udc 934 drivers/usb/gadget/udc/at91_udc.c clk_off(udc); udc 937 drivers/usb/gadget/udc/at91_udc.c if (udc->caps && udc->caps->pullup) udc 938 drivers/usb/gadget/udc/at91_udc.c udc->caps->pullup(udc, is_on); udc 944 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = to_udc(gadget); udc 948 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 949 drivers/usb/gadget/udc/at91_udc.c udc->vbus = (is_active != 0); udc 950 drivers/usb/gadget/udc/at91_udc.c if (udc->driver) udc 951 drivers/usb/gadget/udc/at91_udc.c pullup(udc, is_active); udc 953 drivers/usb/gadget/udc/at91_udc.c pullup(udc, 0); udc 954 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 960 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = to_udc(gadget); udc 963 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 964 drivers/usb/gadget/udc/at91_udc.c udc->enabled = is_on = !!is_on; udc 965 drivers/usb/gadget/udc/at91_udc.c pullup(udc, is_on); udc 966 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 972 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = to_udc(gadget); udc 975 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 977 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1045 drivers/usb/gadget/udc/at91_udc.c static void handle_setup(struct at91_udc *udc, struct at91_ep *ep, u32 csr) udc 1074 drivers/usb/gadget/udc/at91_udc.c udc->wait_for_addr_ack = 0; udc 1075 drivers/usb/gadget/udc/at91_udc.c udc->wait_for_config_ack = 0; udc 1092 drivers/usb/gadget/udc/at91_udc.c udc->req_pending = 1; udc 1101 drivers/usb/gadget/udc/at91_udc.c udc->addr = w_value; udc 1102 drivers/usb/gadget/udc/at91_udc.c udc->wait_for_addr_ack = 1; udc 1103 drivers/usb/gadget/udc/at91_udc.c udc->req_pending = 0; udc 1109 drivers/usb/gadget/udc/at91_udc.c tmp = at91_udp_read(udc, AT91_UDP_GLB_STAT) & AT91_UDP_CONFG; udc 1111 drivers/usb/gadget/udc/at91_udc.c udc->wait_for_config_ack = (tmp == 0); udc 1113 drivers/usb/gadget/udc/at91_udc.c udc->wait_for_config_ack = (tmp != 0); udc 1114 drivers/usb/gadget/udc/at91_udc.c if (udc->wait_for_config_ack) udc 1125 drivers/usb/gadget/udc/at91_udc.c tmp = (udc->gadget.is_selfpowered << USB_DEVICE_SELF_POWERED); udc 1126 drivers/usb/gadget/udc/at91_udc.c if (at91_udp_read(udc, AT91_UDP_GLB_STAT) & AT91_UDP_ESR) udc 1137 drivers/usb/gadget/udc/at91_udc.c tmp = at91_udp_read(udc, AT91_UDP_GLB_STAT); udc 1139 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_GLB_STAT, tmp); udc 1145 drivers/usb/gadget/udc/at91_udc.c tmp = at91_udp_read(udc, AT91_UDP_GLB_STAT); udc 1147 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_GLB_STAT, tmp); udc 1174 drivers/usb/gadget/udc/at91_udc.c ep = &udc->ep[tmp]; udc 1197 drivers/usb/gadget/udc/at91_udc.c ep = &udc->ep[tmp]; udc 1216 drivers/usb/gadget/udc/at91_udc.c ep = &udc->ep[tmp]; udc 1229 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_RST_EP, ep->int_mask); udc 1230 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_RST_EP, 0); udc 1245 drivers/usb/gadget/udc/at91_udc.c if (udc->driver) { udc 1246 drivers/usb/gadget/udc/at91_udc.c spin_unlock(&udc->lock); udc 1247 drivers/usb/gadget/udc/at91_udc.c status = udc->driver->setup(&udc->gadget, &pkt.r); udc 1248 drivers/usb/gadget/udc/at91_udc.c spin_lock(&udc->lock); udc 1258 drivers/usb/gadget/udc/at91_udc.c udc->req_pending = 0; udc 1268 drivers/usb/gadget/udc/at91_udc.c udc->req_pending = 0; udc 1271 drivers/usb/gadget/udc/at91_udc.c static void handle_ep0(struct at91_udc *udc) udc 1273 drivers/usb/gadget/udc/at91_udc.c struct at91_ep *ep0 = &udc->ep[0]; udc 1280 drivers/usb/gadget/udc/at91_udc.c udc->req_pending = 0; udc 1289 drivers/usb/gadget/udc/at91_udc.c udc->req_pending = 0; udc 1290 drivers/usb/gadget/udc/at91_udc.c handle_setup(udc, ep0, csr); udc 1307 drivers/usb/gadget/udc/at91_udc.c udc->req_pending = 0; udc 1318 drivers/usb/gadget/udc/at91_udc.c udc->req_pending = 0; udc 1325 drivers/usb/gadget/udc/at91_udc.c if (udc->wait_for_addr_ack) { udc 1328 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_FADDR, udc 1329 drivers/usb/gadget/udc/at91_udc.c AT91_UDP_FEN | udc->addr); udc 1330 drivers/usb/gadget/udc/at91_udc.c tmp = at91_udp_read(udc, AT91_UDP_GLB_STAT); udc 1332 drivers/usb/gadget/udc/at91_udc.c if (udc->addr) udc 1334 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_GLB_STAT, tmp); udc 1336 drivers/usb/gadget/udc/at91_udc.c udc->wait_for_addr_ack = 0; udc 1337 drivers/usb/gadget/udc/at91_udc.c VDBG("address %d\n", udc->addr); udc 1357 drivers/usb/gadget/udc/at91_udc.c udc->req_pending = 0; udc 1359 drivers/usb/gadget/udc/at91_udc.c } else if (udc->req_pending) { udc 1379 drivers/usb/gadget/udc/at91_udc.c udc->req_pending = 0; udc 1396 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = _udc; udc 1401 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1403 drivers/usb/gadget/udc/at91_udc.c if (!udc->clocked) { udc 1404 drivers/usb/gadget/udc/at91_udc.c clk_on(udc); udc 1411 drivers/usb/gadget/udc/at91_udc.c status = at91_udp_read(udc, AT91_UDP_ISR) udc 1412 drivers/usb/gadget/udc/at91_udc.c & at91_udp_read(udc, AT91_UDP_IMR); udc 1418 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IDR, ~MINIMUS_INTERRUPTUS); udc 1419 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IER, MINIMUS_INTERRUPTUS); udc 1421 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_ICR, AT91_UDP_ENDBUSRES); udc 1422 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_ICR, AT91_UDP_ENDBUSRES); udc 1424 drivers/usb/gadget/udc/at91_udc.c udc->addr = 0; udc 1425 drivers/usb/gadget/udc/at91_udc.c reset_gadget(udc); udc 1428 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_CSR(0), udc 1430 drivers/usb/gadget/udc/at91_udc.c udc->gadget.speed = USB_SPEED_FULL; udc 1431 drivers/usb/gadget/udc/at91_udc.c udc->suspended = 0; udc 1432 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IER, AT91_UDP_EP(0)); udc 1443 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IDR, AT91_UDP_RXSUSP); udc 1444 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IER, AT91_UDP_RXRSM); udc 1445 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_ICR, AT91_UDP_RXSUSP); udc 1447 drivers/usb/gadget/udc/at91_udc.c if (udc->suspended) udc 1449 drivers/usb/gadget/udc/at91_udc.c udc->suspended = 1; udc 1457 drivers/usb/gadget/udc/at91_udc.c if (udc->driver && udc->driver->suspend) { udc 1458 drivers/usb/gadget/udc/at91_udc.c spin_unlock(&udc->lock); udc 1459 drivers/usb/gadget/udc/at91_udc.c udc->driver->suspend(&udc->gadget); udc 1460 drivers/usb/gadget/udc/at91_udc.c spin_lock(&udc->lock); udc 1465 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IDR, AT91_UDP_RXRSM); udc 1466 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IER, AT91_UDP_RXSUSP); udc 1467 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_ICR, AT91_UDP_RXRSM); udc 1469 drivers/usb/gadget/udc/at91_udc.c if (!udc->suspended) udc 1471 drivers/usb/gadget/udc/at91_udc.c udc->suspended = 0; udc 1478 drivers/usb/gadget/udc/at91_udc.c if (udc->driver && udc->driver->resume) { udc 1479 drivers/usb/gadget/udc/at91_udc.c spin_unlock(&udc->lock); udc 1480 drivers/usb/gadget/udc/at91_udc.c udc->driver->resume(&udc->gadget); udc 1481 drivers/usb/gadget/udc/at91_udc.c spin_lock(&udc->lock); udc 1488 drivers/usb/gadget/udc/at91_udc.c struct at91_ep *ep = &udc->ep[1]; udc 1491 drivers/usb/gadget/udc/at91_udc.c handle_ep0(udc); udc 1502 drivers/usb/gadget/udc/at91_udc.c clk_off(udc); udc 1504 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1511 drivers/usb/gadget/udc/at91_udc.c static void at91_vbus_update(struct at91_udc *udc, unsigned value) udc 1513 drivers/usb/gadget/udc/at91_udc.c value ^= udc->board.vbus_active_low; udc 1514 drivers/usb/gadget/udc/at91_udc.c if (value != udc->vbus) udc 1515 drivers/usb/gadget/udc/at91_udc.c at91_vbus_session(&udc->gadget, value); udc 1520 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = _udc; udc 1524 drivers/usb/gadget/udc/at91_udc.c at91_vbus_update(udc, gpio_get_value(udc->board.vbus_pin)); udc 1531 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = container_of(work, struct at91_udc, udc 1534 drivers/usb/gadget/udc/at91_udc.c at91_vbus_update(udc, gpio_get_value_cansleep(udc->board.vbus_pin)); udc 1536 drivers/usb/gadget/udc/at91_udc.c if (!timer_pending(&udc->vbus_timer)) udc 1537 drivers/usb/gadget/udc/at91_udc.c mod_timer(&udc->vbus_timer, jiffies + VBUS_POLL_TIMEOUT); udc 1542 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = from_timer(udc, t, vbus_timer); udc 1549 drivers/usb/gadget/udc/at91_udc.c schedule_work(&udc->vbus_timer_work); udc 1555 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc; udc 1557 drivers/usb/gadget/udc/at91_udc.c udc = container_of(gadget, struct at91_udc, gadget); udc 1558 drivers/usb/gadget/udc/at91_udc.c udc->driver = driver; udc 1559 drivers/usb/gadget/udc/at91_udc.c udc->gadget.dev.of_node = udc->pdev->dev.of_node; udc 1560 drivers/usb/gadget/udc/at91_udc.c udc->enabled = 1; udc 1561 drivers/usb/gadget/udc/at91_udc.c udc->gadget.is_selfpowered = 1; udc 1568 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc; udc 1571 drivers/usb/gadget/udc/at91_udc.c udc = container_of(gadget, struct at91_udc, gadget); udc 1572 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1573 drivers/usb/gadget/udc/at91_udc.c udc->enabled = 0; udc 1574 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IDR, ~0); udc 1575 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1577 drivers/usb/gadget/udc/at91_udc.c udc->driver = NULL; udc 1586 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = platform_get_drvdata(dev); udc 1590 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1592 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1595 drivers/usb/gadget/udc/at91_udc.c static int at91rm9200_udc_init(struct at91_udc *udc) udc 1602 drivers/usb/gadget/udc/at91_udc.c ep = &udc->ep[i]; udc 1618 drivers/usb/gadget/udc/at91_udc.c if (!gpio_is_valid(udc->board.pullup_pin)) { udc 1623 drivers/usb/gadget/udc/at91_udc.c ret = devm_gpio_request(&udc->pdev->dev, udc->board.pullup_pin, udc 1630 drivers/usb/gadget/udc/at91_udc.c gpio_direction_output(udc->board.pullup_pin, udc 1631 drivers/usb/gadget/udc/at91_udc.c udc->board.pullup_active_low); udc 1636 drivers/usb/gadget/udc/at91_udc.c static void at91rm9200_udc_pullup(struct at91_udc *udc, int is_on) udc 1638 drivers/usb/gadget/udc/at91_udc.c int active = !udc->board.pullup_active_low; udc 1641 drivers/usb/gadget/udc/at91_udc.c gpio_set_value(udc->board.pullup_pin, active); udc 1643 drivers/usb/gadget/udc/at91_udc.c gpio_set_value(udc->board.pullup_pin, !active); udc 1651 drivers/usb/gadget/udc/at91_udc.c static int at91sam9260_udc_init(struct at91_udc *udc) udc 1657 drivers/usb/gadget/udc/at91_udc.c ep = &udc->ep[i]; udc 1672 drivers/usb/gadget/udc/at91_udc.c static void at91sam9260_udc_pullup(struct at91_udc *udc, int is_on) udc 1674 drivers/usb/gadget/udc/at91_udc.c u32 txvc = at91_udp_read(udc, AT91_UDP_TXVC); udc 1681 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_TXVC, txvc); udc 1689 drivers/usb/gadget/udc/at91_udc.c static int at91sam9261_udc_init(struct at91_udc *udc) udc 1695 drivers/usb/gadget/udc/at91_udc.c ep = &udc->ep[i]; udc 1710 drivers/usb/gadget/udc/at91_udc.c udc->matrix = syscon_regmap_lookup_by_phandle(udc->pdev->dev.of_node, udc 1712 drivers/usb/gadget/udc/at91_udc.c return PTR_ERR_OR_ZERO(udc->matrix); udc 1715 drivers/usb/gadget/udc/at91_udc.c static void at91sam9261_udc_pullup(struct at91_udc *udc, int is_on) udc 1722 drivers/usb/gadget/udc/at91_udc.c regmap_update_bits(udc->matrix, AT91SAM9261_MATRIX_USBPUCR, udc 1731 drivers/usb/gadget/udc/at91_udc.c static int at91sam9263_udc_init(struct at91_udc *udc) udc 1737 drivers/usb/gadget/udc/at91_udc.c ep = &udc->ep[i]; udc 1782 drivers/usb/gadget/udc/at91_udc.c static void at91udc_of_init(struct at91_udc *udc, struct device_node *np) udc 1784 drivers/usb/gadget/udc/at91_udc.c struct at91_udc_data *board = &udc->board; udc 1803 drivers/usb/gadget/udc/at91_udc.c udc->caps = match->data; udc 1809 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc; udc 1815 drivers/usb/gadget/udc/at91_udc.c udc = devm_kzalloc(dev, sizeof(*udc), GFP_KERNEL); udc 1816 drivers/usb/gadget/udc/at91_udc.c if (!udc) udc 1820 drivers/usb/gadget/udc/at91_udc.c udc->gadget.dev.parent = dev; udc 1821 drivers/usb/gadget/udc/at91_udc.c at91udc_of_init(udc, pdev->dev.of_node); udc 1822 drivers/usb/gadget/udc/at91_udc.c udc->pdev = pdev; udc 1823 drivers/usb/gadget/udc/at91_udc.c udc->enabled = 0; udc 1824 drivers/usb/gadget/udc/at91_udc.c spin_lock_init(&udc->lock); udc 1826 drivers/usb/gadget/udc/at91_udc.c udc->gadget.ops = &at91_udc_ops; udc 1827 drivers/usb/gadget/udc/at91_udc.c udc->gadget.ep0 = &udc->ep[0].ep; udc 1828 drivers/usb/gadget/udc/at91_udc.c udc->gadget.name = driver_name; udc 1829 drivers/usb/gadget/udc/at91_udc.c udc->gadget.dev.init_name = "gadget"; udc 1832 drivers/usb/gadget/udc/at91_udc.c ep = &udc->ep[i]; udc 1836 drivers/usb/gadget/udc/at91_udc.c ep->udc = udc; udc 1843 drivers/usb/gadget/udc/at91_udc.c udc->udp_baseaddr = devm_ioremap_resource(dev, res); udc 1844 drivers/usb/gadget/udc/at91_udc.c if (IS_ERR(udc->udp_baseaddr)) udc 1845 drivers/usb/gadget/udc/at91_udc.c return PTR_ERR(udc->udp_baseaddr); udc 1847 drivers/usb/gadget/udc/at91_udc.c if (udc->caps && udc->caps->init) { udc 1848 drivers/usb/gadget/udc/at91_udc.c retval = udc->caps->init(udc); udc 1853 drivers/usb/gadget/udc/at91_udc.c udc_reinit(udc); udc 1856 drivers/usb/gadget/udc/at91_udc.c udc->iclk = devm_clk_get(dev, "pclk"); udc 1857 drivers/usb/gadget/udc/at91_udc.c if (IS_ERR(udc->iclk)) udc 1858 drivers/usb/gadget/udc/at91_udc.c return PTR_ERR(udc->iclk); udc 1860 drivers/usb/gadget/udc/at91_udc.c udc->fclk = devm_clk_get(dev, "hclk"); udc 1861 drivers/usb/gadget/udc/at91_udc.c if (IS_ERR(udc->fclk)) udc 1862 drivers/usb/gadget/udc/at91_udc.c return PTR_ERR(udc->fclk); udc 1865 drivers/usb/gadget/udc/at91_udc.c clk_set_rate(udc->fclk, 48000000); udc 1866 drivers/usb/gadget/udc/at91_udc.c retval = clk_prepare(udc->fclk); udc 1870 drivers/usb/gadget/udc/at91_udc.c retval = clk_prepare_enable(udc->iclk); udc 1874 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_TXVC, AT91_UDP_TXVC_TXVDIS); udc 1875 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_IDR, 0xffffffff); udc 1877 drivers/usb/gadget/udc/at91_udc.c at91_udp_write(udc, AT91_UDP_ICR, 0xffffffff); udc 1878 drivers/usb/gadget/udc/at91_udc.c clk_disable(udc->iclk); udc 1881 drivers/usb/gadget/udc/at91_udc.c udc->udp_irq = platform_get_irq(pdev, 0); udc 1882 drivers/usb/gadget/udc/at91_udc.c retval = devm_request_irq(dev, udc->udp_irq, at91_udc_irq, 0, udc 1883 drivers/usb/gadget/udc/at91_udc.c driver_name, udc); udc 1885 drivers/usb/gadget/udc/at91_udc.c DBG("request irq %d failed\n", udc->udp_irq); udc 1889 drivers/usb/gadget/udc/at91_udc.c if (gpio_is_valid(udc->board.vbus_pin)) { udc 1890 drivers/usb/gadget/udc/at91_udc.c retval = devm_gpio_request(dev, udc->board.vbus_pin, udc 1897 drivers/usb/gadget/udc/at91_udc.c gpio_direction_input(udc->board.vbus_pin); udc 1903 drivers/usb/gadget/udc/at91_udc.c udc->vbus = gpio_get_value_cansleep(udc->board.vbus_pin) ^ udc 1904 drivers/usb/gadget/udc/at91_udc.c udc->board.vbus_active_low; udc 1906 drivers/usb/gadget/udc/at91_udc.c if (udc->board.vbus_polled) { udc 1907 drivers/usb/gadget/udc/at91_udc.c INIT_WORK(&udc->vbus_timer_work, at91_vbus_timer_work); udc 1908 drivers/usb/gadget/udc/at91_udc.c timer_setup(&udc->vbus_timer, at91_vbus_timer, 0); udc 1909 drivers/usb/gadget/udc/at91_udc.c mod_timer(&udc->vbus_timer, udc 1913 drivers/usb/gadget/udc/at91_udc.c gpio_to_irq(udc->board.vbus_pin), udc 1914 drivers/usb/gadget/udc/at91_udc.c at91_vbus_irq, 0, driver_name, udc); udc 1917 drivers/usb/gadget/udc/at91_udc.c udc->board.vbus_pin); udc 1923 drivers/usb/gadget/udc/at91_udc.c udc->vbus = 1; udc 1925 drivers/usb/gadget/udc/at91_udc.c retval = usb_add_gadget_udc(dev, &udc->gadget); udc 1928 drivers/usb/gadget/udc/at91_udc.c dev_set_drvdata(dev, udc); udc 1930 drivers/usb/gadget/udc/at91_udc.c create_debug_file(udc); udc 1936 drivers/usb/gadget/udc/at91_udc.c clk_unprepare(udc->iclk); udc 1938 drivers/usb/gadget/udc/at91_udc.c clk_unprepare(udc->fclk); udc 1947 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = platform_get_drvdata(pdev); udc 1952 drivers/usb/gadget/udc/at91_udc.c usb_del_gadget_udc(&udc->gadget); udc 1953 drivers/usb/gadget/udc/at91_udc.c if (udc->driver) udc 1956 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1957 drivers/usb/gadget/udc/at91_udc.c pullup(udc, 0); udc 1958 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1961 drivers/usb/gadget/udc/at91_udc.c remove_debug_file(udc); udc 1962 drivers/usb/gadget/udc/at91_udc.c clk_unprepare(udc->fclk); udc 1963 drivers/usb/gadget/udc/at91_udc.c clk_unprepare(udc->iclk); udc 1971 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = platform_get_drvdata(pdev); udc 1972 drivers/usb/gadget/udc/at91_udc.c int wake = udc->driver && device_may_wakeup(&pdev->dev); udc 1980 drivers/usb/gadget/udc/at91_udc.c if ((!udc->suspended && udc->addr) udc 1983 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1984 drivers/usb/gadget/udc/at91_udc.c pullup(udc, 0); udc 1986 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1988 drivers/usb/gadget/udc/at91_udc.c enable_irq_wake(udc->udp_irq); udc 1990 drivers/usb/gadget/udc/at91_udc.c udc->active_suspend = wake; udc 1991 drivers/usb/gadget/udc/at91_udc.c if (gpio_is_valid(udc->board.vbus_pin) && !udc->board.vbus_polled && wake) udc 1992 drivers/usb/gadget/udc/at91_udc.c enable_irq_wake(udc->board.vbus_pin); udc 1998 drivers/usb/gadget/udc/at91_udc.c struct at91_udc *udc = platform_get_drvdata(pdev); udc 2001 drivers/usb/gadget/udc/at91_udc.c if (gpio_is_valid(udc->board.vbus_pin) && !udc->board.vbus_polled && udc 2002 drivers/usb/gadget/udc/at91_udc.c udc->active_suspend) udc 2003 drivers/usb/gadget/udc/at91_udc.c disable_irq_wake(udc->board.vbus_pin); udc 2006 drivers/usb/gadget/udc/at91_udc.c if (udc->active_suspend) udc 2007 drivers/usb/gadget/udc/at91_udc.c disable_irq_wake(udc->udp_irq); udc 2009 drivers/usb/gadget/udc/at91_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2010 drivers/usb/gadget/udc/at91_udc.c pullup(udc, 1); udc 2011 drivers/usb/gadget/udc/at91_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 93 drivers/usb/gadget/udc/at91_udc.h struct at91_udc *udc; udc 107 drivers/usb/gadget/udc/at91_udc.h int (*init)(struct at91_udc *udc); udc 108 drivers/usb/gadget/udc/at91_udc.h void (*pullup)(struct at91_udc *udc, int is_on); udc 47 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irq(&ep->udc->lock); udc 54 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irq(&ep->udc->lock); udc 60 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irq(&ep->udc->lock); udc 141 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc; udc 147 drivers/usb/gadget/udc/atmel_usba_udc.c udc = inode->i_private; udc 152 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irq(&udc->lock); udc 154 drivers/usb/gadget/udc/atmel_usba_udc.c data[i] = readl_relaxed(udc->regs + i * 4); udc 155 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irq(&udc->lock); udc 203 drivers/usb/gadget/udc/atmel_usba_udc.c static void usba_ep_init_debugfs(struct usba_udc *udc, udc 208 drivers/usb/gadget/udc/atmel_usba_udc.c ep_root = debugfs_create_dir(ep->ep.name, udc->debugfs_root); udc 224 drivers/usb/gadget/udc/atmel_usba_udc.c static void usba_init_debugfs(struct usba_udc *udc) udc 229 drivers/usb/gadget/udc/atmel_usba_udc.c root = debugfs_create_dir(udc->gadget.name, NULL); udc 230 drivers/usb/gadget/udc/atmel_usba_udc.c udc->debugfs_root = root; udc 232 drivers/usb/gadget/udc/atmel_usba_udc.c regs_resource = platform_get_resource(udc->pdev, IORESOURCE_MEM, udc 236 drivers/usb/gadget/udc/atmel_usba_udc.c debugfs_create_file_size("regs", 0400, root, udc, udc 241 drivers/usb/gadget/udc/atmel_usba_udc.c usba_ep_init_debugfs(udc, to_usba_ep(udc->gadget.ep0)); udc 244 drivers/usb/gadget/udc/atmel_usba_udc.c static void usba_cleanup_debugfs(struct usba_udc *udc) udc 246 drivers/usb/gadget/udc/atmel_usba_udc.c usba_ep_cleanup_debugfs(to_usba_ep(udc->gadget.ep0)); udc 247 drivers/usb/gadget/udc/atmel_usba_udc.c debugfs_remove_recursive(udc->debugfs_root); udc 250 drivers/usb/gadget/udc/atmel_usba_udc.c static inline void usba_ep_init_debugfs(struct usba_udc *udc, udc 261 drivers/usb/gadget/udc/atmel_usba_udc.c static inline void usba_init_debugfs(struct usba_udc *udc) udc 266 drivers/usb/gadget/udc/atmel_usba_udc.c static inline void usba_cleanup_debugfs(struct usba_udc *udc) udc 323 drivers/usb/gadget/udc/atmel_usba_udc.c static int usba_config_fifo_table(struct usba_udc *udc) udc 332 drivers/usb/gadget/udc/atmel_usba_udc.c udc->fifo_cfg = NULL; udc 336 drivers/usb/gadget/udc/atmel_usba_udc.c udc->fifo_cfg = mode_1_cfg; udc 340 drivers/usb/gadget/udc/atmel_usba_udc.c udc->fifo_cfg = mode_2_cfg; udc 344 drivers/usb/gadget/udc/atmel_usba_udc.c udc->fifo_cfg = mode_3_cfg; udc 348 drivers/usb/gadget/udc/atmel_usba_udc.c udc->fifo_cfg = mode_4_cfg; udc 357 drivers/usb/gadget/udc/atmel_usba_udc.c static inline u32 usba_int_enb_get(struct usba_udc *udc) udc 359 drivers/usb/gadget/udc/atmel_usba_udc.c return udc->int_enb_cache; udc 362 drivers/usb/gadget/udc/atmel_usba_udc.c static inline void usba_int_enb_set(struct usba_udc *udc, u32 mask) udc 366 drivers/usb/gadget/udc/atmel_usba_udc.c val = udc->int_enb_cache | mask; udc 367 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, INT_ENB, val); udc 368 drivers/usb/gadget/udc/atmel_usba_udc.c udc->int_enb_cache = val; udc 371 drivers/usb/gadget/udc/atmel_usba_udc.c static inline void usba_int_enb_clear(struct usba_udc *udc, u32 mask) udc 375 drivers/usb/gadget/udc/atmel_usba_udc.c val = udc->int_enb_cache & ~mask; udc 376 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, INT_ENB, val); udc 377 drivers/usb/gadget/udc/atmel_usba_udc.c udc->int_enb_cache = val; udc 380 drivers/usb/gadget/udc/atmel_usba_udc.c static int vbus_is_present(struct usba_udc *udc) udc 382 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->vbus_pin) udc 383 drivers/usb/gadget/udc/atmel_usba_udc.c return gpiod_get_value(udc->vbus_pin); udc 389 drivers/usb/gadget/udc/atmel_usba_udc.c static void toggle_bias(struct usba_udc *udc, int is_on) udc 391 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->errata && udc->errata->toggle_bias) udc 392 drivers/usb/gadget/udc/atmel_usba_udc.c udc->errata->toggle_bias(udc, is_on); udc 395 drivers/usb/gadget/udc/atmel_usba_udc.c static void generate_bias_pulse(struct usba_udc *udc) udc 397 drivers/usb/gadget/udc/atmel_usba_udc.c if (!udc->bias_pulse_needed) udc 400 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->errata && udc->errata->pulse_bias) udc 401 drivers/usb/gadget/udc/atmel_usba_udc.c udc->errata->pulse_bias(udc); udc 403 drivers/usb/gadget/udc/atmel_usba_udc.c udc->bias_pulse_needed = false; udc 476 drivers/usb/gadget/udc/atmel_usba_udc.c static void send_status(struct usba_udc *udc, struct usba_ep *ep) udc 485 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = ep->udc; udc 524 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock(&udc->lock); udc 526 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock(&udc->lock); udc 533 drivers/usb/gadget/udc/atmel_usba_udc.c send_status(udc, ep); udc 542 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = ep->udc; udc 550 drivers/usb/gadget/udc/atmel_usba_udc.c usb_gadget_unmap_request(&udc->gadget, &req->req, ep->is_in); udc 556 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock(&udc->lock); udc 558 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock(&udc->lock); udc 576 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = ep->udc; udc 636 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&ep->udc->lock, flags); udc 647 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_set(udc, USBA_BF(EPT_INT, 1 << ep->index) | udc 652 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_set(udc, USBA_BF(EPT_INT, 1 << ep->index)); udc 655 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 660 drivers/usb/gadget/udc/atmel_usba_udc.c (unsigned long)usba_int_enb_get(udc)); udc 668 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = ep->udc; udc 674 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&udc->lock, flags); udc 677 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 682 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->gadget.speed != USB_SPEED_UNKNOWN) udc 696 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_clear(udc, USBA_BF(EPT_INT, 1 << ep->index)); udc 700 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 731 drivers/usb/gadget/udc/atmel_usba_udc.c static int queue_dma(struct usba_udc *udc, struct usba_ep *ep, udc 749 drivers/usb/gadget/udc/atmel_usba_udc.c ret = usb_gadget_map_request(&udc->gadget, &req->req, ep->is_in); udc 767 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&udc->lock, flags); udc 775 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 785 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = ep->udc; udc 792 drivers/usb/gadget/udc/atmel_usba_udc.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN || udc 804 drivers/usb/gadget/udc/atmel_usba_udc.c return queue_dma(udc, ep, req, gfp_flags); udc 808 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&udc->lock, flags); udc 821 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 855 drivers/usb/gadget/udc/atmel_usba_udc.c dev_err(&ep->udc->pdev->dev, udc 867 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = ep->udc; udc 875 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&udc->lock, flags); udc 883 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 901 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, EPT_RST, 1 << ep->index); udc 917 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 925 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = ep->udc; udc 943 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&udc->lock, flags); udc 962 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 977 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = ep->udc; udc 979 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, EPT_RST, 1 << ep->index); udc 996 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = to_usba_udc(gadget); udc 998 drivers/usb/gadget/udc/atmel_usba_udc.c return USBA_BFEXT(FRAME_NUMBER, usba_readl(udc, FNUM)); udc 1003 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = to_usba_udc(gadget); udc 1008 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1009 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->devstatus & (1 << USB_DEVICE_REMOTE_WAKEUP)) { udc 1010 drivers/usb/gadget/udc/atmel_usba_udc.c ctrl = usba_readl(udc, CTRL); udc 1011 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, CTRL, ctrl | USBA_REMOTE_WAKE_UP); udc 1014 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1022 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = to_usba_udc(gadget); udc 1026 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1028 drivers/usb/gadget/udc/atmel_usba_udc.c udc->devstatus |= 1 << USB_DEVICE_SELF_POWERED; udc 1030 drivers/usb/gadget/udc/atmel_usba_udc.c udc->devstatus &= ~(1 << USB_DEVICE_SELF_POWERED); udc 1031 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1099 drivers/usb/gadget/udc/atmel_usba_udc.c ep->udc->configured_ep++; udc 1133 drivers/usb/gadget/udc/atmel_usba_udc.c static void reset_all_endpoints(struct usba_udc *udc) udc 1138 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, EPT_RST, ~0UL); udc 1140 drivers/usb/gadget/udc/atmel_usba_udc.c ep = to_usba_ep(udc->gadget.ep0); udc 1147 drivers/usb/gadget/udc/atmel_usba_udc.c static struct usba_ep *get_ep_by_addr(struct usba_udc *udc, u16 wIndex) udc 1152 drivers/usb/gadget/udc/atmel_usba_udc.c return to_usba_ep(udc->gadget.ep0); udc 1154 drivers/usb/gadget/udc/atmel_usba_udc.c list_for_each_entry (ep, &udc->gadget.ep_list, ep.ep_list) { udc 1171 drivers/usb/gadget/udc/atmel_usba_udc.c static inline void set_protocol_stall(struct usba_udc *udc, struct usba_ep *ep) udc 1177 drivers/usb/gadget/udc/atmel_usba_udc.c static inline int is_stalled(struct usba_udc *udc, struct usba_ep *ep) udc 1184 drivers/usb/gadget/udc/atmel_usba_udc.c static inline void set_address(struct usba_udc *udc, unsigned int addr) udc 1189 drivers/usb/gadget/udc/atmel_usba_udc.c regval = usba_readl(udc, CTRL); udc 1191 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, CTRL, regval); udc 1194 drivers/usb/gadget/udc/atmel_usba_udc.c static int do_test_mode(struct usba_udc *udc) udc 1212 drivers/usb/gadget/udc/atmel_usba_udc.c struct device *dev = &udc->pdev->dev; udc 1215 drivers/usb/gadget/udc/atmel_usba_udc.c test_mode = udc->test_mode; udc 1218 drivers/usb/gadget/udc/atmel_usba_udc.c reset_all_endpoints(udc); udc 1223 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, TST, USBA_TST_J_MODE); udc 1228 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, TST, USBA_TST_K_MODE); udc 1236 drivers/usb/gadget/udc/atmel_usba_udc.c ep = &udc->usba_ep[0]; udc 1237 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, TST, udc 1245 drivers/usb/gadget/udc/atmel_usba_udc.c set_protocol_stall(udc, ep); udc 1254 drivers/usb/gadget/udc/atmel_usba_udc.c ep = &udc->usba_ep[0]; udc 1261 drivers/usb/gadget/udc/atmel_usba_udc.c set_protocol_stall(udc, ep); udc 1265 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, TST, USBA_TST_PKT_MODE); udc 1302 drivers/usb/gadget/udc/atmel_usba_udc.c static int handle_ep0_setup(struct usba_udc *udc, struct usba_ep *ep, udc 1312 drivers/usb/gadget/udc/atmel_usba_udc.c status = cpu_to_le16(udc->devstatus); udc 1320 drivers/usb/gadget/udc/atmel_usba_udc.c target = get_ep_by_addr(udc, le16_to_cpu(crq->wIndex)); udc 1325 drivers/usb/gadget/udc/atmel_usba_udc.c if (is_stalled(udc, target)) udc 1342 drivers/usb/gadget/udc/atmel_usba_udc.c udc->devstatus udc 1353 drivers/usb/gadget/udc/atmel_usba_udc.c target = get_ep_by_addr(udc, le16_to_cpu(crq->wIndex)); udc 1365 drivers/usb/gadget/udc/atmel_usba_udc.c send_status(udc, ep); udc 1372 drivers/usb/gadget/udc/atmel_usba_udc.c send_status(udc, ep); udc 1374 drivers/usb/gadget/udc/atmel_usba_udc.c udc->test_mode = le16_to_cpu(crq->wIndex); udc 1377 drivers/usb/gadget/udc/atmel_usba_udc.c udc->devstatus |= 1 << USB_DEVICE_REMOTE_WAKEUP; udc 1388 drivers/usb/gadget/udc/atmel_usba_udc.c target = get_ep_by_addr(udc, le16_to_cpu(crq->wIndex)); udc 1396 drivers/usb/gadget/udc/atmel_usba_udc.c send_status(udc, ep); udc 1404 drivers/usb/gadget/udc/atmel_usba_udc.c set_address(udc, le16_to_cpu(crq->wValue)); udc 1405 drivers/usb/gadget/udc/atmel_usba_udc.c send_status(udc, ep); udc 1411 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock(&udc->lock); udc 1412 drivers/usb/gadget/udc/atmel_usba_udc.c retval = udc->driver->setup(&udc->gadget, crq); udc 1413 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock(&udc->lock); udc 1424 drivers/usb/gadget/udc/atmel_usba_udc.c set_protocol_stall(udc, ep); udc 1428 drivers/usb/gadget/udc/atmel_usba_udc.c static void usba_control_irq(struct usba_udc *udc, struct usba_ep *ep) udc 1469 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, CTRL, (usba_readl(udc, CTRL) udc 1486 drivers/usb/gadget/udc/atmel_usba_udc.c if (do_test_mode(udc)) udc 1487 drivers/usb/gadget/udc/atmel_usba_udc.c set_protocol_stall(udc, ep); udc 1493 drivers/usb/gadget/udc/atmel_usba_udc.c set_protocol_stall(udc, ep); udc 1522 drivers/usb/gadget/udc/atmel_usba_udc.c set_protocol_stall(udc, ep); udc 1566 drivers/usb/gadget/udc/atmel_usba_udc.c set_protocol_stall(udc, ep); udc 1598 drivers/usb/gadget/udc/atmel_usba_udc.c ret = handle_ep0_setup(udc, ep, &crq.crq); udc 1600 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock(&udc->lock); udc 1601 drivers/usb/gadget/udc/atmel_usba_udc.c ret = udc->driver->setup(&udc->gadget, &crq.crq); udc 1602 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock(&udc->lock); udc 1611 drivers/usb/gadget/udc/atmel_usba_udc.c set_protocol_stall(udc, ep); udc 1616 drivers/usb/gadget/udc/atmel_usba_udc.c static void usba_ep_irq(struct usba_udc *udc, struct usba_ep *ep) udc 1631 drivers/usb/gadget/udc/atmel_usba_udc.c dev_warn(&udc->pdev->dev, "ep_irq: queue empty\n"); udc 1669 drivers/usb/gadget/udc/atmel_usba_udc.c static void usba_dma_irq(struct usba_udc *udc, struct usba_ep *ep) udc 1683 drivers/usb/gadget/udc/atmel_usba_udc.c dev_err(&udc->pdev->dev, udc 1685 drivers/usb/gadget/udc/atmel_usba_udc.c dev_err(&udc->pdev->dev, udc 1709 drivers/usb/gadget/udc/atmel_usba_udc.c static int start_clock(struct usba_udc *udc); udc 1710 drivers/usb/gadget/udc/atmel_usba_udc.c static void stop_clock(struct usba_udc *udc); udc 1714 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = devid; udc 1719 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock(&udc->lock); udc 1721 drivers/usb/gadget/udc/atmel_usba_udc.c int_enb = usba_int_enb_get(udc); udc 1722 drivers/usb/gadget/udc/atmel_usba_udc.c status = usba_readl(udc, INT_STA) & (int_enb | USBA_HIGH_SPEED); udc 1726 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, INT_CLR, USBA_DET_SUSPEND|USBA_WAKE_UP); udc 1727 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_set(udc, USBA_WAKE_UP); udc 1728 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_clear(udc, USBA_DET_SUSPEND); udc 1729 drivers/usb/gadget/udc/atmel_usba_udc.c udc->suspended = true; udc 1730 drivers/usb/gadget/udc/atmel_usba_udc.c toggle_bias(udc, 0); udc 1731 drivers/usb/gadget/udc/atmel_usba_udc.c udc->bias_pulse_needed = true; udc 1732 drivers/usb/gadget/udc/atmel_usba_udc.c stop_clock(udc); udc 1734 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->gadget.speed != USB_SPEED_UNKNOWN udc 1735 drivers/usb/gadget/udc/atmel_usba_udc.c && udc->driver && udc->driver->suspend) { udc 1736 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock(&udc->lock); udc 1737 drivers/usb/gadget/udc/atmel_usba_udc.c udc->driver->suspend(&udc->gadget); udc 1738 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock(&udc->lock); udc 1743 drivers/usb/gadget/udc/atmel_usba_udc.c start_clock(udc); udc 1744 drivers/usb/gadget/udc/atmel_usba_udc.c toggle_bias(udc, 1); udc 1745 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, INT_CLR, USBA_WAKE_UP); udc 1750 drivers/usb/gadget/udc/atmel_usba_udc.c udc->suspended = false; udc 1751 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, INT_CLR, USBA_END_OF_RESUME); udc 1752 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_clear(udc, USBA_WAKE_UP); udc 1753 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_set(udc, USBA_DET_SUSPEND); udc 1754 drivers/usb/gadget/udc/atmel_usba_udc.c generate_bias_pulse(udc); udc 1756 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->gadget.speed != USB_SPEED_UNKNOWN udc 1757 drivers/usb/gadget/udc/atmel_usba_udc.c && udc->driver && udc->driver->resume) { udc 1758 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock(&udc->lock); udc 1759 drivers/usb/gadget/udc/atmel_usba_udc.c udc->driver->resume(&udc->gadget); udc 1760 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock(&udc->lock); udc 1768 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_set(udc, USBA_DET_SUSPEND); udc 1772 drivers/usb/gadget/udc/atmel_usba_udc.c usba_dma_irq(udc, &udc->usba_ep[i]); udc 1779 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_set(udc, USBA_DET_SUSPEND); udc 1781 drivers/usb/gadget/udc/atmel_usba_udc.c for (i = 0; i < udc->num_ep; i++) udc 1783 drivers/usb/gadget/udc/atmel_usba_udc.c if (ep_is_control(&udc->usba_ep[i])) udc 1784 drivers/usb/gadget/udc/atmel_usba_udc.c usba_control_irq(udc, &udc->usba_ep[i]); udc 1786 drivers/usb/gadget/udc/atmel_usba_udc.c usba_ep_irq(udc, &udc->usba_ep[i]); udc 1794 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, INT_CLR, udc 1797 drivers/usb/gadget/udc/atmel_usba_udc.c generate_bias_pulse(udc); udc 1798 drivers/usb/gadget/udc/atmel_usba_udc.c reset_all_endpoints(udc); udc 1800 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->gadget.speed != USB_SPEED_UNKNOWN && udc->driver) { udc 1801 drivers/usb/gadget/udc/atmel_usba_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1802 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock(&udc->lock); udc 1803 drivers/usb/gadget/udc/atmel_usba_udc.c usb_gadget_udc_reset(&udc->gadget, udc->driver); udc 1804 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock(&udc->lock); udc 1808 drivers/usb/gadget/udc/atmel_usba_udc.c udc->gadget.speed = USB_SPEED_HIGH; udc 1810 drivers/usb/gadget/udc/atmel_usba_udc.c udc->gadget.speed = USB_SPEED_FULL; udc 1812 drivers/usb/gadget/udc/atmel_usba_udc.c usb_speed_string(udc->gadget.speed)); udc 1814 drivers/usb/gadget/udc/atmel_usba_udc.c ep0 = &udc->usba_ep[0]; udc 1825 drivers/usb/gadget/udc/atmel_usba_udc.c udc->suspended = false; udc 1826 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_clear(udc, USBA_WAKE_UP); udc 1828 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_set(udc, USBA_BF(EPT_INT, 1) | udc 1836 drivers/usb/gadget/udc/atmel_usba_udc.c dev_err(&udc->pdev->dev, udc 1840 drivers/usb/gadget/udc/atmel_usba_udc.c n = fifo_mode ? udc->num_ep : udc->configured_ep; udc 1842 drivers/usb/gadget/udc/atmel_usba_udc.c ep = &udc->usba_ep[i]; udc 1845 drivers/usb/gadget/udc/atmel_usba_udc.c dev_err(&udc->pdev->dev, udc 1850 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock(&udc->lock); udc 1855 drivers/usb/gadget/udc/atmel_usba_udc.c static int start_clock(struct usba_udc *udc) udc 1859 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->clocked) udc 1862 drivers/usb/gadget/udc/atmel_usba_udc.c pm_stay_awake(&udc->pdev->dev); udc 1864 drivers/usb/gadget/udc/atmel_usba_udc.c ret = clk_prepare_enable(udc->pclk); udc 1867 drivers/usb/gadget/udc/atmel_usba_udc.c ret = clk_prepare_enable(udc->hclk); udc 1869 drivers/usb/gadget/udc/atmel_usba_udc.c clk_disable_unprepare(udc->pclk); udc 1873 drivers/usb/gadget/udc/atmel_usba_udc.c udc->clocked = true; udc 1877 drivers/usb/gadget/udc/atmel_usba_udc.c static void stop_clock(struct usba_udc *udc) udc 1879 drivers/usb/gadget/udc/atmel_usba_udc.c if (!udc->clocked) udc 1882 drivers/usb/gadget/udc/atmel_usba_udc.c clk_disable_unprepare(udc->hclk); udc 1883 drivers/usb/gadget/udc/atmel_usba_udc.c clk_disable_unprepare(udc->pclk); udc 1885 drivers/usb/gadget/udc/atmel_usba_udc.c udc->clocked = false; udc 1887 drivers/usb/gadget/udc/atmel_usba_udc.c pm_relax(&udc->pdev->dev); udc 1890 drivers/usb/gadget/udc/atmel_usba_udc.c static int usba_start(struct usba_udc *udc) udc 1895 drivers/usb/gadget/udc/atmel_usba_udc.c ret = start_clock(udc); udc 1899 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->suspended) udc 1902 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1903 drivers/usb/gadget/udc/atmel_usba_udc.c toggle_bias(udc, 1); udc 1904 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, CTRL, USBA_ENABLE_MASK); udc 1906 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, INT_ENB, 0); udc 1907 drivers/usb/gadget/udc/atmel_usba_udc.c udc->int_enb_cache = 0; udc 1908 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, INT_CLR, udc 1912 drivers/usb/gadget/udc/atmel_usba_udc.c usba_int_enb_set(udc, USBA_END_OF_RESET); udc 1913 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1918 drivers/usb/gadget/udc/atmel_usba_udc.c static void usba_stop(struct usba_udc *udc) udc 1922 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->suspended) udc 1925 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1926 drivers/usb/gadget/udc/atmel_usba_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1927 drivers/usb/gadget/udc/atmel_usba_udc.c reset_all_endpoints(udc); udc 1930 drivers/usb/gadget/udc/atmel_usba_udc.c toggle_bias(udc, 0); udc 1931 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, CTRL, USBA_DISABLE_MASK); udc 1932 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1934 drivers/usb/gadget/udc/atmel_usba_udc.c stop_clock(udc); udc 1939 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = devid; udc 1945 drivers/usb/gadget/udc/atmel_usba_udc.c mutex_lock(&udc->vbus_mutex); udc 1947 drivers/usb/gadget/udc/atmel_usba_udc.c vbus = vbus_is_present(udc); udc 1948 drivers/usb/gadget/udc/atmel_usba_udc.c if (vbus != udc->vbus_prev) { udc 1950 drivers/usb/gadget/udc/atmel_usba_udc.c usba_start(udc); udc 1952 drivers/usb/gadget/udc/atmel_usba_udc.c udc->suspended = false; udc 1953 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->driver->disconnect) udc 1954 drivers/usb/gadget/udc/atmel_usba_udc.c udc->driver->disconnect(&udc->gadget); udc 1956 drivers/usb/gadget/udc/atmel_usba_udc.c usba_stop(udc); udc 1958 drivers/usb/gadget/udc/atmel_usba_udc.c udc->vbus_prev = vbus; udc 1961 drivers/usb/gadget/udc/atmel_usba_udc.c mutex_unlock(&udc->vbus_mutex); udc 1969 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = container_of(gadget, struct usba_udc, gadget); udc 1972 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1973 drivers/usb/gadget/udc/atmel_usba_udc.c udc->devstatus = 1 << USB_DEVICE_SELF_POWERED; udc 1974 drivers/usb/gadget/udc/atmel_usba_udc.c udc->driver = driver; udc 1975 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1977 drivers/usb/gadget/udc/atmel_usba_udc.c mutex_lock(&udc->vbus_mutex); udc 1979 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->vbus_pin) udc 1980 drivers/usb/gadget/udc/atmel_usba_udc.c enable_irq(gpiod_to_irq(udc->vbus_pin)); udc 1983 drivers/usb/gadget/udc/atmel_usba_udc.c udc->vbus_prev = vbus_is_present(udc); udc 1984 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->vbus_prev) { udc 1985 drivers/usb/gadget/udc/atmel_usba_udc.c ret = usba_start(udc); udc 1990 drivers/usb/gadget/udc/atmel_usba_udc.c mutex_unlock(&udc->vbus_mutex); udc 1994 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->vbus_pin) udc 1995 drivers/usb/gadget/udc/atmel_usba_udc.c disable_irq(gpiod_to_irq(udc->vbus_pin)); udc 1997 drivers/usb/gadget/udc/atmel_usba_udc.c mutex_unlock(&udc->vbus_mutex); udc 1999 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2000 drivers/usb/gadget/udc/atmel_usba_udc.c udc->devstatus &= ~(1 << USB_DEVICE_SELF_POWERED); udc 2001 drivers/usb/gadget/udc/atmel_usba_udc.c udc->driver = NULL; udc 2002 drivers/usb/gadget/udc/atmel_usba_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2008 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = container_of(gadget, struct usba_udc, gadget); udc 2010 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->vbus_pin) udc 2011 drivers/usb/gadget/udc/atmel_usba_udc.c disable_irq(gpiod_to_irq(udc->vbus_pin)); udc 2014 drivers/usb/gadget/udc/atmel_usba_udc.c udc->configured_ep = 1; udc 2016 drivers/usb/gadget/udc/atmel_usba_udc.c udc->suspended = false; udc 2017 drivers/usb/gadget/udc/atmel_usba_udc.c usba_stop(udc); udc 2019 drivers/usb/gadget/udc/atmel_usba_udc.c udc->driver = NULL; udc 2024 drivers/usb/gadget/udc/atmel_usba_udc.c static void at91sam9rl_toggle_bias(struct usba_udc *udc, int is_on) udc 2026 drivers/usb/gadget/udc/atmel_usba_udc.c regmap_update_bits(udc->pmc, AT91_CKGR_UCKR, AT91_PMC_BIASEN, udc 2030 drivers/usb/gadget/udc/atmel_usba_udc.c static void at91sam9g45_pulse_bias(struct usba_udc *udc) udc 2032 drivers/usb/gadget/udc/atmel_usba_udc.c regmap_update_bits(udc->pmc, AT91_CKGR_UCKR, AT91_PMC_BIASEN, 0); udc 2033 drivers/usb/gadget/udc/atmel_usba_udc.c regmap_update_bits(udc->pmc, AT91_CKGR_UCKR, AT91_PMC_BIASEN, udc 2055 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc) udc 2068 drivers/usb/gadget/udc/atmel_usba_udc.c udc->errata = match->data; udc 2069 drivers/usb/gadget/udc/atmel_usba_udc.c udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9g45-pmc"); udc 2070 drivers/usb/gadget/udc/atmel_usba_udc.c if (IS_ERR(udc->pmc)) udc 2071 drivers/usb/gadget/udc/atmel_usba_udc.c udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9rl-pmc"); udc 2072 drivers/usb/gadget/udc/atmel_usba_udc.c if (IS_ERR(udc->pmc)) udc 2073 drivers/usb/gadget/udc/atmel_usba_udc.c udc->pmc = syscon_regmap_lookup_by_compatible("atmel,at91sam9x5-pmc"); udc 2074 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->errata && IS_ERR(udc->pmc)) udc 2075 drivers/usb/gadget/udc/atmel_usba_udc.c return ERR_CAST(udc->pmc); udc 2077 drivers/usb/gadget/udc/atmel_usba_udc.c udc->num_ep = 0; udc 2079 drivers/usb/gadget/udc/atmel_usba_udc.c udc->vbus_pin = devm_gpiod_get_optional(&pdev->dev, "atmel,vbus", udc 2085 drivers/usb/gadget/udc/atmel_usba_udc.c udc->num_ep++; udc 2086 drivers/usb/gadget/udc/atmel_usba_udc.c udc->configured_ep = 1; udc 2088 drivers/usb/gadget/udc/atmel_usba_udc.c udc->num_ep = usba_config_fifo_table(udc); udc 2091 drivers/usb/gadget/udc/atmel_usba_udc.c eps = devm_kcalloc(&pdev->dev, udc->num_ep, sizeof(struct usba_ep), udc 2096 drivers/usb/gadget/udc/atmel_usba_udc.c udc->gadget.ep0 = &eps[0].ep; udc 2102 drivers/usb/gadget/udc/atmel_usba_udc.c while ((pp = of_get_next_child(np, pp)) && i < udc->num_ep) { udc 2110 drivers/usb/gadget/udc/atmel_usba_udc.c ep->index = fifo_mode ? udc->fifo_cfg[i].hw_ep_num : val; udc 2118 drivers/usb/gadget/udc/atmel_usba_udc.c if (val < udc->fifo_cfg[i].fifo_size) { udc 2123 drivers/usb/gadget/udc/atmel_usba_udc.c ep->fifo_size = udc->fifo_cfg[i].fifo_size; udc 2135 drivers/usb/gadget/udc/atmel_usba_udc.c if (val < udc->fifo_cfg[i].nr_banks) { udc 2140 drivers/usb/gadget/udc/atmel_usba_udc.c ep->nr_banks = udc->fifo_cfg[i].nr_banks; udc 2152 drivers/usb/gadget/udc/atmel_usba_udc.c ep->ep_regs = udc->regs + USBA_EPT_BASE(i); udc 2153 drivers/usb/gadget/udc/atmel_usba_udc.c ep->dma_regs = udc->regs + USBA_DMA_BASE(i); udc 2154 drivers/usb/gadget/udc/atmel_usba_udc.c ep->fifo = udc->fifo + USBA_FIFO_BASE(i); udc 2157 drivers/usb/gadget/udc/atmel_usba_udc.c ep->udc = udc; udc 2187 drivers/usb/gadget/udc/atmel_usba_udc.c list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); udc 2207 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc; udc 2210 drivers/usb/gadget/udc/atmel_usba_udc.c udc = devm_kzalloc(&pdev->dev, sizeof(*udc), GFP_KERNEL); udc 2211 drivers/usb/gadget/udc/atmel_usba_udc.c if (!udc) udc 2214 drivers/usb/gadget/udc/atmel_usba_udc.c udc->gadget = usba_gadget_template; udc 2215 drivers/usb/gadget/udc/atmel_usba_udc.c INIT_LIST_HEAD(&udc->gadget.ep_list); udc 2218 drivers/usb/gadget/udc/atmel_usba_udc.c udc->regs = devm_ioremap_resource(&pdev->dev, res); udc 2219 drivers/usb/gadget/udc/atmel_usba_udc.c if (IS_ERR(udc->regs)) udc 2220 drivers/usb/gadget/udc/atmel_usba_udc.c return PTR_ERR(udc->regs); udc 2222 drivers/usb/gadget/udc/atmel_usba_udc.c res, udc->regs); udc 2225 drivers/usb/gadget/udc/atmel_usba_udc.c udc->fifo = devm_ioremap_resource(&pdev->dev, res); udc 2226 drivers/usb/gadget/udc/atmel_usba_udc.c if (IS_ERR(udc->fifo)) udc 2227 drivers/usb/gadget/udc/atmel_usba_udc.c return PTR_ERR(udc->fifo); udc 2228 drivers/usb/gadget/udc/atmel_usba_udc.c dev_info(&pdev->dev, "FIFO at %pR mapped at %p\n", res, udc->fifo); udc 2241 drivers/usb/gadget/udc/atmel_usba_udc.c spin_lock_init(&udc->lock); udc 2242 drivers/usb/gadget/udc/atmel_usba_udc.c mutex_init(&udc->vbus_mutex); udc 2243 drivers/usb/gadget/udc/atmel_usba_udc.c udc->pdev = pdev; udc 2244 drivers/usb/gadget/udc/atmel_usba_udc.c udc->pclk = pclk; udc 2245 drivers/usb/gadget/udc/atmel_usba_udc.c udc->hclk = hclk; udc 2247 drivers/usb/gadget/udc/atmel_usba_udc.c platform_set_drvdata(pdev, udc); udc 2256 drivers/usb/gadget/udc/atmel_usba_udc.c usba_writel(udc, CTRL, USBA_DISABLE_MASK); udc 2259 drivers/usb/gadget/udc/atmel_usba_udc.c udc->usba_ep = atmel_udc_of_init(pdev, udc); udc 2261 drivers/usb/gadget/udc/atmel_usba_udc.c toggle_bias(udc, 0); udc 2263 drivers/usb/gadget/udc/atmel_usba_udc.c if (IS_ERR(udc->usba_ep)) udc 2264 drivers/usb/gadget/udc/atmel_usba_udc.c return PTR_ERR(udc->usba_ep); udc 2267 drivers/usb/gadget/udc/atmel_usba_udc.c "atmel_usba_udc", udc); udc 2273 drivers/usb/gadget/udc/atmel_usba_udc.c udc->irq = irq; udc 2275 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->vbus_pin) { udc 2276 drivers/usb/gadget/udc/atmel_usba_udc.c irq_set_status_flags(gpiod_to_irq(udc->vbus_pin), IRQ_NOAUTOEN); udc 2278 drivers/usb/gadget/udc/atmel_usba_udc.c gpiod_to_irq(udc->vbus_pin), NULL, udc 2280 drivers/usb/gadget/udc/atmel_usba_udc.c "atmel_usba_udc", udc); udc 2282 drivers/usb/gadget/udc/atmel_usba_udc.c udc->vbus_pin = NULL; udc 2283 drivers/usb/gadget/udc/atmel_usba_udc.c dev_warn(&udc->pdev->dev, udc 2289 drivers/usb/gadget/udc/atmel_usba_udc.c ret = usb_add_gadget_udc(&pdev->dev, &udc->gadget); udc 2294 drivers/usb/gadget/udc/atmel_usba_udc.c usba_init_debugfs(udc); udc 2295 drivers/usb/gadget/udc/atmel_usba_udc.c for (i = 1; i < udc->num_ep; i++) udc 2296 drivers/usb/gadget/udc/atmel_usba_udc.c usba_ep_init_debugfs(udc, &udc->usba_ep[i]); udc 2303 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc; udc 2306 drivers/usb/gadget/udc/atmel_usba_udc.c udc = platform_get_drvdata(pdev); udc 2309 drivers/usb/gadget/udc/atmel_usba_udc.c usb_del_gadget_udc(&udc->gadget); udc 2311 drivers/usb/gadget/udc/atmel_usba_udc.c for (i = 1; i < udc->num_ep; i++) udc 2312 drivers/usb/gadget/udc/atmel_usba_udc.c usba_ep_cleanup_debugfs(&udc->usba_ep[i]); udc 2313 drivers/usb/gadget/udc/atmel_usba_udc.c usba_cleanup_debugfs(udc); udc 2321 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = dev_get_drvdata(dev); udc 2324 drivers/usb/gadget/udc/atmel_usba_udc.c if (!udc->driver) udc 2327 drivers/usb/gadget/udc/atmel_usba_udc.c mutex_lock(&udc->vbus_mutex); udc 2330 drivers/usb/gadget/udc/atmel_usba_udc.c udc->suspended = false; udc 2331 drivers/usb/gadget/udc/atmel_usba_udc.c usba_stop(udc); udc 2339 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->vbus_pin) { udc 2341 drivers/usb/gadget/udc/atmel_usba_udc.c usba_stop(udc); udc 2342 drivers/usb/gadget/udc/atmel_usba_udc.c enable_irq_wake(gpiod_to_irq(udc->vbus_pin)); udc 2345 drivers/usb/gadget/udc/atmel_usba_udc.c enable_irq_wake(udc->irq); udc 2348 drivers/usb/gadget/udc/atmel_usba_udc.c mutex_unlock(&udc->vbus_mutex); udc 2354 drivers/usb/gadget/udc/atmel_usba_udc.c struct usba_udc *udc = dev_get_drvdata(dev); udc 2357 drivers/usb/gadget/udc/atmel_usba_udc.c if (!udc->driver) udc 2361 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->vbus_pin) udc 2362 drivers/usb/gadget/udc/atmel_usba_udc.c disable_irq_wake(gpiod_to_irq(udc->vbus_pin)); udc 2364 drivers/usb/gadget/udc/atmel_usba_udc.c disable_irq_wake(udc->irq); udc 2368 drivers/usb/gadget/udc/atmel_usba_udc.c mutex_lock(&udc->vbus_mutex); udc 2369 drivers/usb/gadget/udc/atmel_usba_udc.c udc->vbus_prev = vbus_is_present(udc); udc 2370 drivers/usb/gadget/udc/atmel_usba_udc.c if (udc->vbus_prev) udc 2371 drivers/usb/gadget/udc/atmel_usba_udc.c usba_start(udc); udc 2372 drivers/usb/gadget/udc/atmel_usba_udc.c mutex_unlock(&udc->vbus_mutex); udc 188 drivers/usb/gadget/udc/atmel_usba_udc.h #define usba_readl(udc, reg) \ udc 189 drivers/usb/gadget/udc/atmel_usba_udc.h readl_relaxed((udc)->regs + USBA_##reg) udc 190 drivers/usb/gadget/udc/atmel_usba_udc.h #define usba_writel(udc, reg, value) \ udc 191 drivers/usb/gadget/udc/atmel_usba_udc.h writel_relaxed((value), (udc)->regs + USBA_##reg) udc 275 drivers/usb/gadget/udc/atmel_usba_udc.h struct usba_udc *udc; udc 306 drivers/usb/gadget/udc/atmel_usba_udc.h void (*toggle_bias)(struct usba_udc *udc, int is_on); udc 307 drivers/usb/gadget/udc/atmel_usba_udc.h void (*pulse_bias)(struct usba_udc *udc); udc 216 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc; udc 241 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc; udc 354 drivers/usb/gadget/udc/bcm63xx_udc.c static inline u32 usbd_readl(struct bcm63xx_udc *udc, u32 off) udc 356 drivers/usb/gadget/udc/bcm63xx_udc.c return bcm_readl(udc->usbd_regs + off); udc 359 drivers/usb/gadget/udc/bcm63xx_udc.c static inline void usbd_writel(struct bcm63xx_udc *udc, u32 val, u32 off) udc 361 drivers/usb/gadget/udc/bcm63xx_udc.c bcm_writel(val, udc->usbd_regs + off); udc 364 drivers/usb/gadget/udc/bcm63xx_udc.c static inline u32 usb_dma_readl(struct bcm63xx_udc *udc, u32 off) udc 366 drivers/usb/gadget/udc/bcm63xx_udc.c return bcm_readl(udc->iudma_regs + off); udc 369 drivers/usb/gadget/udc/bcm63xx_udc.c static inline void usb_dma_writel(struct bcm63xx_udc *udc, u32 val, u32 off) udc 371 drivers/usb/gadget/udc/bcm63xx_udc.c bcm_writel(val, udc->iudma_regs + off); udc 374 drivers/usb/gadget/udc/bcm63xx_udc.c static inline u32 usb_dmac_readl(struct bcm63xx_udc *udc, u32 off, int chan) udc 376 drivers/usb/gadget/udc/bcm63xx_udc.c return bcm_readl(udc->iudma_regs + IUDMA_DMAC_OFFSET + off + udc 380 drivers/usb/gadget/udc/bcm63xx_udc.c static inline void usb_dmac_writel(struct bcm63xx_udc *udc, u32 val, u32 off, udc 383 drivers/usb/gadget/udc/bcm63xx_udc.c bcm_writel(val, udc->iudma_regs + IUDMA_DMAC_OFFSET + off + udc 387 drivers/usb/gadget/udc/bcm63xx_udc.c static inline u32 usb_dmas_readl(struct bcm63xx_udc *udc, u32 off, int chan) udc 389 drivers/usb/gadget/udc/bcm63xx_udc.c return bcm_readl(udc->iudma_regs + IUDMA_DMAS_OFFSET + off + udc 393 drivers/usb/gadget/udc/bcm63xx_udc.c static inline void usb_dmas_writel(struct bcm63xx_udc *udc, u32 val, u32 off, udc 396 drivers/usb/gadget/udc/bcm63xx_udc.c bcm_writel(val, udc->iudma_regs + IUDMA_DMAS_OFFSET + off + udc 400 drivers/usb/gadget/udc/bcm63xx_udc.c static inline void set_clocks(struct bcm63xx_udc *udc, bool is_enabled) udc 403 drivers/usb/gadget/udc/bcm63xx_udc.c clk_enable(udc->usbh_clk); udc 404 drivers/usb/gadget/udc/bcm63xx_udc.c clk_enable(udc->usbd_clk); udc 407 drivers/usb/gadget/udc/bcm63xx_udc.c clk_disable(udc->usbd_clk); udc 408 drivers/usb/gadget/udc/bcm63xx_udc.c clk_disable(udc->usbh_clk); udc 425 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_ep_dma_select(struct bcm63xx_udc *udc, int idx) udc 427 drivers/usb/gadget/udc/bcm63xx_udc.c u32 val = usbd_readl(udc, USBD_CONTROL_REG); udc 431 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, val, USBD_CONTROL_REG); udc 443 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_set_stall(struct bcm63xx_udc *udc, struct bcm63xx_ep *bep, udc 451 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, val, USBD_STALL_REG); udc 461 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_fifo_setup(struct bcm63xx_udc *udc) udc 463 drivers/usb/gadget/udc/bcm63xx_udc.c int is_hs = udc->gadget.speed == USB_SPEED_HIGH; udc 472 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep_dma_select(udc, i >> 1); udc 478 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, val, USBD_RXFIFO_CONFIG_REG); udc 479 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, udc 487 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, val, USBD_TXFIFO_CONFIG_REG); udc 488 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, udc 492 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_readl(udc, USBD_TXFIFO_EPSIZE_REG); udc 501 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_fifo_reset_ep(struct bcm63xx_udc *udc, int ep_num) udc 505 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep_dma_select(udc, ep_num); udc 507 drivers/usb/gadget/udc/bcm63xx_udc.c val = usbd_readl(udc, USBD_CONTROL_REG); udc 509 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, val, USBD_CONTROL_REG); udc 510 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_readl(udc, USBD_CONTROL_REG); udc 517 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_fifo_reset(struct bcm63xx_udc *udc) udc 522 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_reset_ep(udc, i); udc 529 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_ep_init(struct bcm63xx_udc *udc) udc 539 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep_dma_select(udc, cfg->ep_num); udc 542 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, val, USBD_EPNUM_TYPEMAP_REG); udc 552 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_ep_setup(struct bcm63xx_udc *udc) udc 556 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, USBD_CSR_SETUPADDR_DEF, USBD_CSR_SETUPADDR_REG); udc 560 drivers/usb/gadget/udc/bcm63xx_udc.c int max_pkt = udc->gadget.speed == USB_SPEED_HIGH ? udc 564 drivers/usb/gadget/udc/bcm63xx_udc.c udc->iudma[i].max_pkt = max_pkt; udc 568 drivers/usb/gadget/udc/bcm63xx_udc.c usb_ep_set_maxpacket_limit(&udc->bep[idx].ep, max_pkt); udc 573 drivers/usb/gadget/udc/bcm63xx_udc.c (udc->cfg << USBD_CSR_EP_CFG_SHIFT) | udc 574 drivers/usb/gadget/udc/bcm63xx_udc.c (udc->iface << USBD_CSR_EP_IFACE_SHIFT) | udc 575 drivers/usb/gadget/udc/bcm63xx_udc.c (udc->alt_iface << USBD_CSR_EP_ALTIFACE_SHIFT) | udc 577 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, val, USBD_CSR_EP_REG(idx)); udc 594 drivers/usb/gadget/udc/bcm63xx_udc.c static void iudma_write(struct bcm63xx_udc *udc, struct iudma_ch *iudma, udc 657 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmac_writel(udc, ENETDMAC_CHANCFG_EN_MASK, udc 670 drivers/usb/gadget/udc/bcm63xx_udc.c static int iudma_read(struct bcm63xx_udc *udc, struct iudma_ch *iudma) udc 704 drivers/usb/gadget/udc/bcm63xx_udc.c static void iudma_reset_channel(struct bcm63xx_udc *udc, struct iudma_ch *iudma) udc 711 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_reset_ep(udc, max(0, iudma->ep_num)); udc 714 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmac_writel(udc, 0, ENETDMAC_CHANCFG_REG, ch_idx); udc 716 drivers/usb/gadget/udc/bcm63xx_udc.c while (usb_dmac_readl(udc, ENETDMAC_CHANCFG_REG, ch_idx) & udc 722 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_reset_ep(udc, iudma->ep_num); udc 725 drivers/usb/gadget/udc/bcm63xx_udc.c dev_err(udc->dev, "can't reset IUDMA channel %d\n", udc 730 drivers/usb/gadget/udc/bcm63xx_udc.c dev_warn(udc->dev, "forcibly halting IUDMA channel %d\n", udc 732 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmac_writel(udc, ENETDMAC_CHANCFG_BUFHALT_MASK, udc 736 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmac_writel(udc, ~0, ENETDMAC_IR_REG, ch_idx); udc 747 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmac_writel(udc, ENETDMAC_IR_BUFDONE_MASK, udc 749 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmac_writel(udc, 8, ENETDMAC_MAXBURST_REG, ch_idx); udc 751 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmas_writel(udc, iudma->bd_ring_dma, ENETDMAS_RSTART_REG, ch_idx); udc 752 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmas_writel(udc, 0, ENETDMAS_SRAM2_REG, ch_idx); udc 760 drivers/usb/gadget/udc/bcm63xx_udc.c static int iudma_init_channel(struct bcm63xx_udc *udc, unsigned int ch_idx) udc 762 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch *iudma = &udc->iudma[ch_idx]; udc 771 drivers/usb/gadget/udc/bcm63xx_udc.c bep = &udc->bep[iudma->ep_num]; udc 777 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->udc = udc; udc 784 drivers/usb/gadget/udc/bcm63xx_udc.c iudma->bd_ring = dmam_alloc_coherent(udc->dev, udc 800 drivers/usb/gadget/udc/bcm63xx_udc.c static int iudma_init(struct bcm63xx_udc *udc) udc 804 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dma_writel(udc, ENETDMA_CFG_EN_MASK, ENETDMA_CFG_REG); udc 807 drivers/usb/gadget/udc/bcm63xx_udc.c rc = iudma_init_channel(udc, i); udc 810 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[i]); udc 813 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dma_writel(udc, BIT(BCM63XX_NUM_IUDMA)-1, ENETDMA_GLB_IRQMASK_REG); udc 823 drivers/usb/gadget/udc/bcm63xx_udc.c static void iudma_uninit(struct bcm63xx_udc *udc) udc 827 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dma_writel(udc, 0, ENETDMA_GLB_IRQMASK_REG); udc 830 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[i]); udc 832 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dma_writel(udc, 0, ENETDMA_CFG_REG); udc 844 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_set_ctrl_irqs(struct bcm63xx_udc *udc, bool enable_irqs) udc 848 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, 0, USBD_STATUS_REG); udc 855 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, enable_irqs ? val : 0, USBD_EVENT_IRQ_MASK_REG); udc 856 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, val, USBD_EVENT_IRQ_STATUS_REG); udc 870 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_select_phy_mode(struct bcm63xx_udc *udc, bool is_device) udc 872 drivers/usb/gadget/udc/bcm63xx_udc.c u32 val, portmask = BIT(udc->pd->port_no); udc 910 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_select_pullup(struct bcm63xx_udc *udc, bool is_on) udc 912 drivers/usb/gadget/udc/bcm63xx_udc.c u32 val, portmask = BIT(udc->pd->port_no); udc 929 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_uninit_udc_hw(struct bcm63xx_udc *udc) udc 931 drivers/usb/gadget/udc/bcm63xx_udc.c set_clocks(udc, true); udc 932 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_uninit(udc); udc 933 drivers/usb/gadget/udc/bcm63xx_udc.c set_clocks(udc, false); udc 935 drivers/usb/gadget/udc/bcm63xx_udc.c clk_put(udc->usbd_clk); udc 936 drivers/usb/gadget/udc/bcm63xx_udc.c clk_put(udc->usbh_clk); udc 943 drivers/usb/gadget/udc/bcm63xx_udc.c static int bcm63xx_init_udc_hw(struct bcm63xx_udc *udc) udc 948 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_ctrl_buf = devm_kzalloc(udc->dev, BCM63XX_MAX_CTRL_PKT, udc 950 drivers/usb/gadget/udc/bcm63xx_udc.c if (!udc->ep0_ctrl_buf) udc 953 drivers/usb/gadget/udc/bcm63xx_udc.c INIT_LIST_HEAD(&udc->gadget.ep_list); udc 955 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_ep *bep = &udc->bep[i]; udc 961 drivers/usb/gadget/udc/bcm63xx_udc.c list_add_tail(&bep->ep.ep_list, &udc->gadget.ep_list); udc 964 drivers/usb/gadget/udc/bcm63xx_udc.c bep->udc = udc; udc 969 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.ep0 = &udc->bep[0].ep; udc 970 drivers/usb/gadget/udc/bcm63xx_udc.c list_del(&udc->bep[0].ep.ep_list); udc 972 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 973 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0state = EP0_SHUTDOWN; udc 975 drivers/usb/gadget/udc/bcm63xx_udc.c udc->usbh_clk = clk_get(udc->dev, "usbh"); udc 976 drivers/usb/gadget/udc/bcm63xx_udc.c if (IS_ERR(udc->usbh_clk)) udc 979 drivers/usb/gadget/udc/bcm63xx_udc.c udc->usbd_clk = clk_get(udc->dev, "usbd"); udc 980 drivers/usb/gadget/udc/bcm63xx_udc.c if (IS_ERR(udc->usbd_clk)) { udc 981 drivers/usb/gadget/udc/bcm63xx_udc.c clk_put(udc->usbh_clk); udc 985 drivers/usb/gadget/udc/bcm63xx_udc.c set_clocks(udc, true); udc 990 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, val, USBD_CONTROL_REG); udc 998 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->gadget.max_speed == USB_SPEED_HIGH) udc 1002 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, val, USBD_STRAPS_REG); udc 1004 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_set_ctrl_irqs(udc, false); udc 1006 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, 0, USBD_EVENT_IRQ_CFG_LO_REG); udc 1010 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, val, USBD_EVENT_IRQ_CFG_HI_REG); udc 1012 drivers/usb/gadget/udc/bcm63xx_udc.c rc = iudma_init(udc); udc 1013 drivers/usb/gadget/udc/bcm63xx_udc.c set_clocks(udc, false); udc 1015 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_uninit_udc_hw(udc); udc 1036 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = bep->udc; udc 1043 drivers/usb/gadget/udc/bcm63xx_udc.c if (!udc->driver) udc 1046 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1048 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1055 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, iudma); udc 1058 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_set_stall(udc, bep, false); udc 1059 drivers/usb/gadget/udc/bcm63xx_udc.c clear_bit(bep->ep_num, &udc->wedgemap); udc 1064 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1075 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = bep->udc; udc 1083 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1085 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1090 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, iudma); udc 1094 drivers/usb/gadget/udc/bcm63xx_udc.c usb_gadget_unmap_request(&udc->gadget, &breq->req, udc 1099 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1101 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1106 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1156 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = bep->udc; udc 1168 drivers/usb/gadget/udc/bcm63xx_udc.c if (bep == &udc->bep[0]) { udc 1170 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->ep0_reply) udc 1173 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_reply = req; udc 1174 drivers/usb/gadget/udc/bcm63xx_udc.c schedule_work(&udc->ep0_wq); udc 1178 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1184 drivers/usb/gadget/udc/bcm63xx_udc.c rc = usb_gadget_map_request(&udc->gadget, req, bep->iudma->is_tx); udc 1188 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, bep->iudma, breq); udc 1192 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1208 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = bep->udc; udc 1213 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1220 drivers/usb/gadget/udc/bcm63xx_udc.c usb_gadget_unmap_request(&udc->gadget, &breq->req, bep->iudma->is_tx); udc 1223 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, bep->iudma); udc 1231 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, bep->iudma, next); udc 1238 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1256 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = bep->udc; udc 1259 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1260 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_set_stall(udc, bep, !!value); udc 1262 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1276 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = bep->udc; udc 1279 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1280 drivers/usb/gadget/udc/bcm63xx_udc.c set_bit(bep->ep_num, &udc->wedgemap); udc 1281 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_set_stall(udc, bep, true); udc 1282 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1310 drivers/usb/gadget/udc/bcm63xx_udc.c static int bcm63xx_ep0_setup_callback(struct bcm63xx_udc *udc, udc 1315 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irq(&udc->lock); udc 1316 drivers/usb/gadget/udc/bcm63xx_udc.c rc = udc->driver->setup(&udc->gadget, ctrl); udc 1317 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irq(&udc->lock); udc 1333 drivers/usb/gadget/udc/bcm63xx_udc.c static int bcm63xx_ep0_spoof_set_cfg(struct bcm63xx_udc *udc) udc 1340 drivers/usb/gadget/udc/bcm63xx_udc.c ctrl.wValue = cpu_to_le16(udc->cfg); udc 1344 drivers/usb/gadget/udc/bcm63xx_udc.c rc = bcm63xx_ep0_setup_callback(udc, &ctrl); udc 1346 drivers/usb/gadget/udc/bcm63xx_udc.c dev_warn_ratelimited(udc->dev, udc 1348 drivers/usb/gadget/udc/bcm63xx_udc.c udc->cfg); udc 1357 drivers/usb/gadget/udc/bcm63xx_udc.c static int bcm63xx_ep0_spoof_set_iface(struct bcm63xx_udc *udc) udc 1364 drivers/usb/gadget/udc/bcm63xx_udc.c ctrl.wValue = cpu_to_le16(udc->alt_iface); udc 1365 drivers/usb/gadget/udc/bcm63xx_udc.c ctrl.wIndex = cpu_to_le16(udc->iface); udc 1368 drivers/usb/gadget/udc/bcm63xx_udc.c rc = bcm63xx_ep0_setup_callback(udc, &ctrl); udc 1370 drivers/usb/gadget/udc/bcm63xx_udc.c dev_warn_ratelimited(udc->dev, udc 1372 drivers/usb/gadget/udc/bcm63xx_udc.c udc->iface, udc->alt_iface); udc 1383 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_ep0_map_write(struct bcm63xx_udc *udc, int ch_idx, udc 1387 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch *iudma = &udc->iudma[ch_idx]; udc 1389 drivers/usb/gadget/udc/bcm63xx_udc.c BUG_ON(udc->ep0_request); udc 1390 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_request = req; udc 1394 drivers/usb/gadget/udc/bcm63xx_udc.c usb_gadget_map_request(&udc->gadget, req, iudma->is_tx); udc 1395 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, iudma, breq); udc 1404 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_ep0_complete(struct bcm63xx_udc *udc, udc 1411 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irq(&udc->lock); udc 1412 drivers/usb/gadget/udc/bcm63xx_udc.c req->complete(&udc->bep[0].ep, req); udc 1413 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irq(&udc->lock); udc 1423 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_ep0_nuke_reply(struct bcm63xx_udc *udc, int is_tx) udc 1425 drivers/usb/gadget/udc/bcm63xx_udc.c struct usb_request *req = udc->ep0_reply; udc 1427 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_reply = NULL; udc 1428 drivers/usb/gadget/udc/bcm63xx_udc.c usb_gadget_unmap_request(&udc->gadget, req, is_tx); udc 1429 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->ep0_request == req) { udc 1430 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_completed = 0; udc 1431 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_request = NULL; udc 1433 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_complete(udc, req, -ESHUTDOWN); udc 1441 drivers/usb/gadget/udc/bcm63xx_udc.c static int bcm63xx_ep0_read_complete(struct bcm63xx_udc *udc) udc 1443 drivers/usb/gadget/udc/bcm63xx_udc.c struct usb_request *req = udc->ep0_request; udc 1445 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_completed = 0; udc 1446 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_request = NULL; udc 1460 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_ep0_internal_request(struct bcm63xx_udc *udc, int ch_idx, udc 1463 drivers/usb/gadget/udc/bcm63xx_udc.c struct usb_request *req = &udc->ep0_ctrl_req.req; udc 1465 drivers/usb/gadget/udc/bcm63xx_udc.c req->buf = udc->ep0_ctrl_buf; udc 1469 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_map_write(udc, ch_idx, req); udc 1480 drivers/usb/gadget/udc/bcm63xx_udc.c static enum bcm63xx_ep0_state bcm63xx_ep0_do_setup(struct bcm63xx_udc *udc) udc 1483 drivers/usb/gadget/udc/bcm63xx_udc.c struct usb_ctrlrequest *ctrl = (void *)udc->ep0_ctrl_buf; udc 1485 drivers/usb/gadget/udc/bcm63xx_udc.c rc = bcm63xx_ep0_read_complete(udc); udc 1488 drivers/usb/gadget/udc/bcm63xx_udc.c dev_err(udc->dev, "missing SETUP packet\n"); udc 1502 drivers/usb/gadget/udc/bcm63xx_udc.c dev_warn_ratelimited(udc->dev, udc 1508 drivers/usb/gadget/udc/bcm63xx_udc.c rc = bcm63xx_ep0_setup_callback(udc, ctrl); udc 1510 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_set_stall(udc, &udc->bep[0], true); udc 1533 drivers/usb/gadget/udc/bcm63xx_udc.c static int bcm63xx_ep0_do_idle(struct bcm63xx_udc *udc) udc 1535 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->ep0_req_reset) { udc 1536 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_reset = 0; udc 1537 drivers/usb/gadget/udc/bcm63xx_udc.c } else if (udc->ep0_req_set_cfg) { udc 1538 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_set_cfg = 0; udc 1539 drivers/usb/gadget/udc/bcm63xx_udc.c if (bcm63xx_ep0_spoof_set_cfg(udc) >= 0) udc 1540 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0state = EP0_IN_FAKE_STATUS_PHASE; udc 1541 drivers/usb/gadget/udc/bcm63xx_udc.c } else if (udc->ep0_req_set_iface) { udc 1542 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_set_iface = 0; udc 1543 drivers/usb/gadget/udc/bcm63xx_udc.c if (bcm63xx_ep0_spoof_set_iface(udc) >= 0) udc 1544 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0state = EP0_IN_FAKE_STATUS_PHASE; udc 1545 drivers/usb/gadget/udc/bcm63xx_udc.c } else if (udc->ep0_req_completed) { udc 1546 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0state = bcm63xx_ep0_do_setup(udc); udc 1547 drivers/usb/gadget/udc/bcm63xx_udc.c return udc->ep0state == EP0_IDLE ? -EAGAIN : 0; udc 1548 drivers/usb/gadget/udc/bcm63xx_udc.c } else if (udc->ep0_req_shutdown) { udc 1549 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_shutdown = 0; udc 1550 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_completed = 0; udc 1551 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_request = NULL; udc 1552 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[IUDMA_EP0_RXCHAN]); udc 1553 drivers/usb/gadget/udc/bcm63xx_udc.c usb_gadget_unmap_request(&udc->gadget, udc 1554 drivers/usb/gadget/udc/bcm63xx_udc.c &udc->ep0_ctrl_req.req, 0); udc 1558 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0state = EP0_SHUTDOWN; udc 1559 drivers/usb/gadget/udc/bcm63xx_udc.c } else if (udc->ep0_reply) { udc 1565 drivers/usb/gadget/udc/bcm63xx_udc.c dev_warn(udc->dev, "nuking unexpected reply\n"); udc 1566 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_nuke_reply(udc, 0); udc 1580 drivers/usb/gadget/udc/bcm63xx_udc.c static int bcm63xx_ep0_one_round(struct bcm63xx_udc *udc) udc 1582 drivers/usb/gadget/udc/bcm63xx_udc.c enum bcm63xx_ep0_state ep0state = udc->ep0state; udc 1583 drivers/usb/gadget/udc/bcm63xx_udc.c bool shutdown = udc->ep0_req_reset || udc->ep0_req_shutdown; udc 1585 drivers/usb/gadget/udc/bcm63xx_udc.c switch (udc->ep0state) { udc 1588 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_internal_request(udc, IUDMA_EP0_RXCHAN, udc 1593 drivers/usb/gadget/udc/bcm63xx_udc.c return bcm63xx_ep0_do_idle(udc); udc 1604 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->ep0_reply) { udc 1605 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_map_write(udc, IUDMA_EP0_TXCHAN, udc 1606 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_reply); udc 1620 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->ep0_req_completed) { udc 1621 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_reply = NULL; udc 1622 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_read_complete(udc); udc 1629 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[IUDMA_EP0_TXCHAN]); udc 1630 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_nuke_reply(udc, 1); udc 1637 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->ep0_reply) { udc 1638 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_map_write(udc, IUDMA_EP0_RXCHAN, udc 1639 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_reply); udc 1647 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->ep0_req_completed) { udc 1648 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_reply = NULL; udc 1649 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_read_complete(udc); udc 1652 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_internal_request(udc, IUDMA_EP0_TXCHAN, 0); udc 1655 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[IUDMA_EP0_RXCHAN]); udc 1656 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_nuke_reply(udc, 0); udc 1670 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->ep0_req_completed) { udc 1671 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_read_complete(udc); udc 1674 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_reset_channel(udc, &udc->iudma[IUDMA_EP0_TXCHAN]); udc 1675 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_request = NULL; udc 1694 drivers/usb/gadget/udc/bcm63xx_udc.c struct usb_request *r = udc->ep0_reply; udc 1702 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_complete(udc, r, 0); udc 1703 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_reply = NULL; udc 1711 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->ep0state == ep0state) udc 1714 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0state = ep0state; udc 1734 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = container_of(w, struct bcm63xx_udc, ep0_wq); udc 1735 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irq(&udc->lock); udc 1736 drivers/usb/gadget/udc/bcm63xx_udc.c while (bcm63xx_ep0_one_round(udc) == 0) udc 1738 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irq(&udc->lock); udc 1751 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = gadget_to_udc(gadget); udc 1753 drivers/usb/gadget/udc/bcm63xx_udc.c return (usbd_readl(udc, USBD_STATUS_REG) & udc 1766 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = gadget_to_udc(gadget); udc 1770 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1771 drivers/usb/gadget/udc/bcm63xx_udc.c if (is_on && udc->ep0state == EP0_SHUTDOWN) { udc 1772 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1773 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0state = EP0_REQUEUE; udc 1774 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_setup(udc); udc 1775 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_reset(udc); udc 1776 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep_setup(udc); udc 1778 drivers/usb/gadget/udc/bcm63xx_udc.c bitmap_zero(&udc->wedgemap, BCM63XX_NUM_EP); udc 1780 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_set_stall(udc, &udc->bep[i], false); udc 1782 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_set_ctrl_irqs(udc, true); udc 1785 drivers/usb/gadget/udc/bcm63xx_udc.c } else if (!is_on && udc->ep0state != EP0_SHUTDOWN) { udc 1788 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_shutdown = 1; udc 1789 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1792 drivers/usb/gadget/udc/bcm63xx_udc.c schedule_work(&udc->ep0_wq); udc 1793 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->ep0state == EP0_SHUTDOWN) udc 1797 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_set_ctrl_irqs(udc, false); udc 1798 drivers/usb/gadget/udc/bcm63xx_udc.c cancel_work_sync(&udc->ep0_wq); udc 1802 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1814 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = gadget_to_udc(gadget); udc 1820 drivers/usb/gadget/udc/bcm63xx_udc.c if (!udc) udc 1822 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->driver) udc 1825 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1827 drivers/usb/gadget/udc/bcm63xx_udc.c set_clocks(udc, true); udc 1828 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_setup(udc); udc 1829 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep_init(udc); udc 1830 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep_setup(udc); udc 1831 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_reset(udc); udc 1832 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_select_phy_mode(udc, true); udc 1834 drivers/usb/gadget/udc/bcm63xx_udc.c udc->driver = driver; udc 1836 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.dev.of_node = udc->dev->of_node; udc 1838 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1850 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = gadget_to_udc(gadget); udc 1853 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1855 drivers/usb/gadget/udc/bcm63xx_udc.c udc->driver = NULL; udc 1865 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_select_phy_mode(udc, false); udc 1866 drivers/usb/gadget/udc/bcm63xx_udc.c set_clocks(udc, false); udc 1868 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1893 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_update_cfg_iface(struct bcm63xx_udc *udc) udc 1895 drivers/usb/gadget/udc/bcm63xx_udc.c u32 reg = usbd_readl(udc, USBD_STATUS_REG); udc 1897 drivers/usb/gadget/udc/bcm63xx_udc.c udc->cfg = (reg & USBD_STATUS_CFG_MASK) >> USBD_STATUS_CFG_SHIFT; udc 1898 drivers/usb/gadget/udc/bcm63xx_udc.c udc->iface = (reg & USBD_STATUS_INTF_MASK) >> USBD_STATUS_INTF_SHIFT; udc 1899 drivers/usb/gadget/udc/bcm63xx_udc.c udc->alt_iface = (reg & USBD_STATUS_ALTINTF_MASK) >> udc 1901 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep_setup(udc); udc 1911 drivers/usb/gadget/udc/bcm63xx_udc.c static int bcm63xx_update_link_speed(struct bcm63xx_udc *udc) udc 1913 drivers/usb/gadget/udc/bcm63xx_udc.c u32 reg = usbd_readl(udc, USBD_STATUS_REG); udc 1914 drivers/usb/gadget/udc/bcm63xx_udc.c enum usb_device_speed oldspeed = udc->gadget.speed; udc 1918 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.speed = USB_SPEED_HIGH; udc 1921 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.speed = USB_SPEED_FULL; udc 1925 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1926 drivers/usb/gadget/udc/bcm63xx_udc.c dev_err(udc->dev, udc 1931 drivers/usb/gadget/udc/bcm63xx_udc.c if (udc->gadget.speed != oldspeed) { udc 1932 drivers/usb/gadget/udc/bcm63xx_udc.c dev_info(udc->dev, "link up, %s-speed mode\n", udc 1933 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.speed == USB_SPEED_HIGH ? "high" : "full"); udc 1951 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_update_wedge(struct bcm63xx_udc *udc, bool new_status) udc 1955 drivers/usb/gadget/udc/bcm63xx_udc.c for_each_set_bit(i, &udc->wedgemap, BCM63XX_NUM_EP) { udc 1956 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_set_stall(udc, &udc->bep[i], new_status); udc 1958 drivers/usb/gadget/udc/bcm63xx_udc.c clear_bit(i, &udc->wedgemap); udc 1972 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = dev_id; udc 1976 drivers/usb/gadget/udc/bcm63xx_udc.c stat = usbd_readl(udc, USBD_EVENT_IRQ_STATUS_REG) & udc 1977 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_readl(udc, USBD_EVENT_IRQ_MASK_REG); udc 1979 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_writel(udc, stat, USBD_EVENT_IRQ_STATUS_REG); udc 1981 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock(&udc->lock); udc 1985 drivers/usb/gadget/udc/bcm63xx_udc.c if (!(usbd_readl(udc, USBD_EVENTS_REG) & udc 1987 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.speed != USB_SPEED_UNKNOWN) udc 1988 drivers/usb/gadget/udc/bcm63xx_udc.c dev_info(udc->dev, "link down\n"); udc 1990 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1994 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_setup(udc); udc 1995 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_reset(udc); udc 1996 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep_setup(udc); udc 1998 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_update_wedge(udc, false); udc 2000 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_reset = 1; udc 2001 drivers/usb/gadget/udc/bcm63xx_udc.c schedule_work(&udc->ep0_wq); udc 2005 drivers/usb/gadget/udc/bcm63xx_udc.c if (bcm63xx_update_link_speed(udc)) { udc 2006 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_fifo_setup(udc); udc 2007 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep_setup(udc); udc 2009 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_update_wedge(udc, true); udc 2012 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_update_cfg_iface(udc); udc 2013 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_set_cfg = 1; udc 2014 drivers/usb/gadget/udc/bcm63xx_udc.c schedule_work(&udc->ep0_wq); udc 2017 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_update_cfg_iface(udc); udc 2018 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_set_iface = 1; udc 2019 drivers/usb/gadget/udc/bcm63xx_udc.c schedule_work(&udc->ep0_wq); udc 2021 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock(&udc->lock); udc 2023 drivers/usb/gadget/udc/bcm63xx_udc.c if (disconnected && udc->driver) udc 2024 drivers/usb/gadget/udc/bcm63xx_udc.c udc->driver->disconnect(&udc->gadget); udc 2025 drivers/usb/gadget/udc/bcm63xx_udc.c else if (bus_reset && udc->driver) udc 2026 drivers/usb/gadget/udc/bcm63xx_udc.c usb_gadget_udc_reset(&udc->gadget, udc->driver); udc 2044 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = iudma->udc; udc 2051 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock(&udc->lock); udc 2053 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmac_writel(udc, ENETDMAC_IR_BUFDONE_MASK, udc 2056 drivers/usb/gadget/udc/bcm63xx_udc.c rc = iudma_read(udc, iudma); udc 2061 drivers/usb/gadget/udc/bcm63xx_udc.c req = udc->ep0_request; udc 2069 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_completed = 1; udc 2071 drivers/usb/gadget/udc/bcm63xx_udc.c schedule_work(&udc->ep0_wq); udc 2077 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, iudma, breq); udc 2098 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, iudma, next); udc 2101 drivers/usb/gadget/udc/bcm63xx_udc.c iudma_write(udc, iudma, breq); udc 2105 drivers/usb/gadget/udc/bcm63xx_udc.c spin_unlock(&udc->lock); udc 2108 drivers/usb/gadget/udc/bcm63xx_udc.c usb_gadget_unmap_request(&udc->gadget, req, iudma->is_tx); udc 2129 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = s->private; udc 2131 drivers/usb/gadget/udc/bcm63xx_udc.c if (!udc->driver) udc 2135 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_ep0_state_names[udc->ep0state]); udc 2137 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_reset ? "reset " : "", udc 2138 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_set_cfg ? "set_cfg " : "", udc 2139 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_set_iface ? "set_iface " : "", udc 2140 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_shutdown ? "shutdown " : "", udc 2141 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_request ? "pending " : "", udc 2142 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_req_completed ? "completed " : "", udc 2143 drivers/usb/gadget/udc/bcm63xx_udc.c udc->ep0_reply ? "reply " : ""); udc 2145 drivers/usb/gadget/udc/bcm63xx_udc.c udc->cfg, udc->iface, udc->alt_iface); udc 2148 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_readl(udc, USBD_CONTROL_REG), udc 2149 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_readl(udc, USBD_STRAPS_REG), udc 2150 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_readl(udc, USBD_STATUS_REG)); udc 2152 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_readl(udc, USBD_EVENTS_REG), udc 2153 drivers/usb/gadget/udc/bcm63xx_udc.c usbd_readl(udc, USBD_STALL_REG)); udc 2168 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = s->private; udc 2172 drivers/usb/gadget/udc/bcm63xx_udc.c if (!udc->driver) udc 2176 drivers/usb/gadget/udc/bcm63xx_udc.c struct iudma_ch *iudma = &udc->iudma[ch_idx]; udc 2195 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmac_readl(udc, ENETDMAC_CHANCFG_REG, ch_idx), udc 2196 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmac_readl(udc, ENETDMAC_IR_REG, ch_idx), udc 2197 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmac_readl(udc, ENETDMAC_IRMASK_REG, ch_idx), udc 2198 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmac_readl(udc, ENETDMAC_MAXBURST_REG, ch_idx)); udc 2200 drivers/usb/gadget/udc/bcm63xx_udc.c sram2 = usb_dmas_readl(udc, ENETDMAS_SRAM2_REG, ch_idx); udc 2201 drivers/usb/gadget/udc/bcm63xx_udc.c sram3 = usb_dmas_readl(udc, ENETDMAS_SRAM3_REG, ch_idx); udc 2203 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmas_readl(udc, ENETDMAS_RSTART_REG, ch_idx), udc 2206 drivers/usb/gadget/udc/bcm63xx_udc.c usb_dmas_readl(udc, ENETDMAS_SRAM4_REG, ch_idx)); udc 2244 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_udc_init_debugfs(struct bcm63xx_udc *udc) udc 2251 drivers/usb/gadget/udc/bcm63xx_udc.c root = debugfs_create_dir(udc->gadget.name, NULL); udc 2252 drivers/usb/gadget/udc/bcm63xx_udc.c udc->debugfs_root = root; udc 2254 drivers/usb/gadget/udc/bcm63xx_udc.c debugfs_create_file("usbd", 0400, root, udc, &bcm63xx_usbd_dbg_fops); udc 2255 drivers/usb/gadget/udc/bcm63xx_udc.c debugfs_create_file("iudma", 0400, root, udc, &bcm63xx_iudma_dbg_fops); udc 2264 drivers/usb/gadget/udc/bcm63xx_udc.c static void bcm63xx_udc_cleanup_debugfs(struct bcm63xx_udc *udc) udc 2266 drivers/usb/gadget/udc/bcm63xx_udc.c debugfs_remove_recursive(udc->debugfs_root); udc 2284 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc; udc 2288 drivers/usb/gadget/udc/bcm63xx_udc.c udc = devm_kzalloc(dev, sizeof(*udc), GFP_KERNEL); udc 2289 drivers/usb/gadget/udc/bcm63xx_udc.c if (!udc) udc 2292 drivers/usb/gadget/udc/bcm63xx_udc.c platform_set_drvdata(pdev, udc); udc 2293 drivers/usb/gadget/udc/bcm63xx_udc.c udc->dev = dev; udc 2294 drivers/usb/gadget/udc/bcm63xx_udc.c udc->pd = pd; udc 2302 drivers/usb/gadget/udc/bcm63xx_udc.c udc->usbd_regs = devm_ioremap_resource(dev, res); udc 2303 drivers/usb/gadget/udc/bcm63xx_udc.c if (IS_ERR(udc->usbd_regs)) udc 2304 drivers/usb/gadget/udc/bcm63xx_udc.c return PTR_ERR(udc->usbd_regs); udc 2307 drivers/usb/gadget/udc/bcm63xx_udc.c udc->iudma_regs = devm_ioremap_resource(dev, res); udc 2308 drivers/usb/gadget/udc/bcm63xx_udc.c if (IS_ERR(udc->iudma_regs)) udc 2309 drivers/usb/gadget/udc/bcm63xx_udc.c return PTR_ERR(udc->iudma_regs); udc 2311 drivers/usb/gadget/udc/bcm63xx_udc.c spin_lock_init(&udc->lock); udc 2312 drivers/usb/gadget/udc/bcm63xx_udc.c INIT_WORK(&udc->ep0_wq, bcm63xx_ep0_process); udc 2314 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.ops = &bcm63xx_udc_ops; udc 2315 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.name = dev_name(dev); udc 2318 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.max_speed = USB_SPEED_HIGH; udc 2320 drivers/usb/gadget/udc/bcm63xx_udc.c udc->gadget.max_speed = USB_SPEED_FULL; udc 2323 drivers/usb/gadget/udc/bcm63xx_udc.c rc = bcm63xx_init_udc_hw(udc); udc 2334 drivers/usb/gadget/udc/bcm63xx_udc.c dev_name(dev), udc) < 0) udc 2343 drivers/usb/gadget/udc/bcm63xx_udc.c dev_name(dev), &udc->iudma[i]) < 0) udc 2347 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_udc_init_debugfs(udc); udc 2348 drivers/usb/gadget/udc/bcm63xx_udc.c rc = usb_add_gadget_udc(dev, &udc->gadget); udc 2352 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_udc_cleanup_debugfs(udc); udc 2354 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_uninit_udc_hw(udc); udc 2368 drivers/usb/gadget/udc/bcm63xx_udc.c struct bcm63xx_udc *udc = platform_get_drvdata(pdev); udc 2370 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_udc_cleanup_debugfs(udc); udc 2371 drivers/usb/gadget/udc/bcm63xx_udc.c usb_del_gadget_udc(&udc->gadget); udc 2372 drivers/usb/gadget/udc/bcm63xx_udc.c BUG_ON(udc->driver); udc 2374 drivers/usb/gadget/udc/bcm63xx_udc.c bcm63xx_uninit_udc_hw(udc); udc 49 drivers/usb/gadget/udc/core.c static int udc_bind_to_driver(struct usb_udc *udc, udc 730 drivers/usb/gadget/udc/core.c gadget->udc->driver->disconnect(gadget); udc 1006 drivers/usb/gadget/udc/core.c struct usb_udc *udc = gadget->udc; udc 1008 drivers/usb/gadget/udc/core.c if (udc) udc 1009 drivers/usb/gadget/udc/core.c sysfs_notify(&udc->dev.kobj, NULL, "state"); udc 1022 drivers/usb/gadget/udc/core.c static void usb_udc_connect_control(struct usb_udc *udc) udc 1024 drivers/usb/gadget/udc/core.c if (udc->vbus) udc 1025 drivers/usb/gadget/udc/core.c usb_gadget_connect(udc->gadget); udc 1027 drivers/usb/gadget/udc/core.c usb_gadget_disconnect(udc->gadget); udc 1041 drivers/usb/gadget/udc/core.c struct usb_udc *udc = gadget->udc; udc 1043 drivers/usb/gadget/udc/core.c if (udc) { udc 1044 drivers/usb/gadget/udc/core.c udc->vbus = status; udc 1045 drivers/usb/gadget/udc/core.c usb_udc_connect_control(udc); udc 1080 drivers/usb/gadget/udc/core.c static inline int usb_gadget_udc_start(struct usb_udc *udc) udc 1082 drivers/usb/gadget/udc/core.c return udc->gadget->ops->udc_start(udc->gadget, udc->driver); udc 1097 drivers/usb/gadget/udc/core.c static inline void usb_gadget_udc_stop(struct usb_udc *udc) udc 1099 drivers/usb/gadget/udc/core.c udc->gadget->ops->udc_stop(udc->gadget); udc 1112 drivers/usb/gadget/udc/core.c static inline void usb_gadget_udc_set_speed(struct usb_udc *udc, udc 1115 drivers/usb/gadget/udc/core.c if (udc->gadget->ops->udc_set_speed) { udc 1118 drivers/usb/gadget/udc/core.c s = min(speed, udc->gadget->max_speed); udc 1119 drivers/usb/gadget/udc/core.c udc->gadget->ops->udc_set_speed(udc->gadget, s); udc 1132 drivers/usb/gadget/udc/core.c struct usb_udc *udc; udc 1134 drivers/usb/gadget/udc/core.c udc = container_of(dev, struct usb_udc, dev); udc 1136 drivers/usb/gadget/udc/core.c kfree(udc); udc 1147 drivers/usb/gadget/udc/core.c static int check_pending_gadget_drivers(struct usb_udc *udc) udc 1154 drivers/usb/gadget/udc/core.c dev_name(&udc->dev)) == 0) { udc 1155 drivers/usb/gadget/udc/core.c ret = udc_bind_to_driver(udc, driver); udc 1177 drivers/usb/gadget/udc/core.c struct usb_udc *udc; udc 1191 drivers/usb/gadget/udc/core.c udc = kzalloc(sizeof(*udc), GFP_KERNEL); udc 1192 drivers/usb/gadget/udc/core.c if (!udc) udc 1195 drivers/usb/gadget/udc/core.c device_initialize(&udc->dev); udc 1196 drivers/usb/gadget/udc/core.c udc->dev.release = usb_udc_release; udc 1197 drivers/usb/gadget/udc/core.c udc->dev.class = udc_class; udc 1198 drivers/usb/gadget/udc/core.c udc->dev.groups = usb_udc_attr_groups; udc 1199 drivers/usb/gadget/udc/core.c udc->dev.parent = parent; udc 1200 drivers/usb/gadget/udc/core.c ret = dev_set_name(&udc->dev, "%s", kobject_name(&parent->kobj)); udc 1208 drivers/usb/gadget/udc/core.c udc->gadget = gadget; udc 1209 drivers/usb/gadget/udc/core.c gadget->udc = udc; udc 1212 drivers/usb/gadget/udc/core.c list_add_tail(&udc->list, &udc_list); udc 1214 drivers/usb/gadget/udc/core.c ret = device_add(&udc->dev); udc 1219 drivers/usb/gadget/udc/core.c udc->vbus = true; udc 1222 drivers/usb/gadget/udc/core.c ret = check_pending_gadget_drivers(udc); udc 1231 drivers/usb/gadget/udc/core.c device_del(&udc->dev); udc 1234 drivers/usb/gadget/udc/core.c list_del(&udc->list); udc 1240 drivers/usb/gadget/udc/core.c put_device(&udc->dev); udc 1262 drivers/usb/gadget/udc/core.c struct usb_udc *udc; udc 1267 drivers/usb/gadget/udc/core.c list_for_each_entry(udc, &udc_list, list) { udc 1268 drivers/usb/gadget/udc/core.c if (!udc->driver) { udc 1269 drivers/usb/gadget/udc/core.c name = kstrdup(udc->gadget->name, GFP_KERNEL); udc 1292 drivers/usb/gadget/udc/core.c static void usb_gadget_remove_driver(struct usb_udc *udc) udc 1294 drivers/usb/gadget/udc/core.c dev_dbg(&udc->dev, "unregistering UDC driver [%s]\n", udc 1295 drivers/usb/gadget/udc/core.c udc->driver->function); udc 1297 drivers/usb/gadget/udc/core.c kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); udc 1299 drivers/usb/gadget/udc/core.c usb_gadget_disconnect(udc->gadget); udc 1300 drivers/usb/gadget/udc/core.c udc->driver->unbind(udc->gadget); udc 1301 drivers/usb/gadget/udc/core.c usb_gadget_udc_stop(udc); udc 1303 drivers/usb/gadget/udc/core.c udc->driver = NULL; udc 1304 drivers/usb/gadget/udc/core.c udc->dev.driver = NULL; udc 1305 drivers/usb/gadget/udc/core.c udc->gadget->dev.driver = NULL; udc 1317 drivers/usb/gadget/udc/core.c struct usb_udc *udc = gadget->udc; udc 1319 drivers/usb/gadget/udc/core.c if (!udc) udc 1325 drivers/usb/gadget/udc/core.c list_del(&udc->list); udc 1327 drivers/usb/gadget/udc/core.c if (udc->driver) { udc 1328 drivers/usb/gadget/udc/core.c struct usb_gadget_driver *driver = udc->driver; udc 1330 drivers/usb/gadget/udc/core.c usb_gadget_remove_driver(udc); udc 1335 drivers/usb/gadget/udc/core.c kobject_uevent(&udc->dev.kobj, KOBJ_REMOVE); udc 1337 drivers/usb/gadget/udc/core.c device_unregister(&udc->dev); udc 1345 drivers/usb/gadget/udc/core.c static int udc_bind_to_driver(struct usb_udc *udc, struct usb_gadget_driver *driver) udc 1349 drivers/usb/gadget/udc/core.c dev_dbg(&udc->dev, "registering UDC driver [%s]\n", udc 1352 drivers/usb/gadget/udc/core.c udc->driver = driver; udc 1353 drivers/usb/gadget/udc/core.c udc->dev.driver = &driver->driver; udc 1354 drivers/usb/gadget/udc/core.c udc->gadget->dev.driver = &driver->driver; udc 1356 drivers/usb/gadget/udc/core.c usb_gadget_udc_set_speed(udc, driver->max_speed); udc 1358 drivers/usb/gadget/udc/core.c ret = driver->bind(udc->gadget, driver); udc 1361 drivers/usb/gadget/udc/core.c ret = usb_gadget_udc_start(udc); udc 1363 drivers/usb/gadget/udc/core.c driver->unbind(udc->gadget); udc 1366 drivers/usb/gadget/udc/core.c usb_udc_connect_control(udc); udc 1368 drivers/usb/gadget/udc/core.c kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); udc 1372 drivers/usb/gadget/udc/core.c dev_err(&udc->dev, "failed to start %s: %d\n", udc 1373 drivers/usb/gadget/udc/core.c udc->driver->function, ret); udc 1374 drivers/usb/gadget/udc/core.c udc->driver = NULL; udc 1375 drivers/usb/gadget/udc/core.c udc->dev.driver = NULL; udc 1376 drivers/usb/gadget/udc/core.c udc->gadget->dev.driver = NULL; udc 1382 drivers/usb/gadget/udc/core.c struct usb_udc *udc = NULL; udc 1390 drivers/usb/gadget/udc/core.c list_for_each_entry(udc, &udc_list, list) { udc 1391 drivers/usb/gadget/udc/core.c ret = strcmp(driver->udc_name, dev_name(&udc->dev)); udc 1397 drivers/usb/gadget/udc/core.c else if (udc->driver) udc 1402 drivers/usb/gadget/udc/core.c list_for_each_entry(udc, &udc_list, list) { udc 1404 drivers/usb/gadget/udc/core.c if (!udc->driver) udc 1419 drivers/usb/gadget/udc/core.c ret = udc_bind_to_driver(udc, driver); udc 1427 drivers/usb/gadget/udc/core.c struct usb_udc *udc = NULL; udc 1434 drivers/usb/gadget/udc/core.c list_for_each_entry(udc, &udc_list, list) { udc 1435 drivers/usb/gadget/udc/core.c if (udc->driver == driver) { udc 1436 drivers/usb/gadget/udc/core.c usb_gadget_remove_driver(udc); udc 1437 drivers/usb/gadget/udc/core.c usb_gadget_set_state(udc->gadget, udc 1441 drivers/usb/gadget/udc/core.c check_pending_gadget_drivers(udc); udc 1465 drivers/usb/gadget/udc/core.c struct usb_udc *udc = container_of(dev, struct usb_udc, dev); udc 1468 drivers/usb/gadget/udc/core.c usb_gadget_wakeup(udc->gadget); udc 1477 drivers/usb/gadget/udc/core.c struct usb_udc *udc = container_of(dev, struct usb_udc, dev); udc 1479 drivers/usb/gadget/udc/core.c if (!udc->driver) { udc 1485 drivers/usb/gadget/udc/core.c usb_gadget_udc_start(udc); udc 1486 drivers/usb/gadget/udc/core.c usb_gadget_connect(udc->gadget); udc 1488 drivers/usb/gadget/udc/core.c usb_gadget_disconnect(udc->gadget); udc 1489 drivers/usb/gadget/udc/core.c usb_gadget_udc_stop(udc); udc 1502 drivers/usb/gadget/udc/core.c struct usb_udc *udc = container_of(dev, struct usb_udc, dev); udc 1503 drivers/usb/gadget/udc/core.c struct usb_gadget *gadget = udc->gadget; udc 1512 drivers/usb/gadget/udc/core.c struct usb_udc *udc = container_of(dev, struct usb_udc, dev); udc 1513 drivers/usb/gadget/udc/core.c struct usb_gadget_driver *drv = udc->driver; udc 1525 drivers/usb/gadget/udc/core.c struct usb_udc *udc = container_of(dev, struct usb_udc, dev); \ udc 1527 drivers/usb/gadget/udc/core.c usb_speed_string(udc->gadget->param)); \ udc 1538 drivers/usb/gadget/udc/core.c struct usb_udc *udc = container_of(dev, struct usb_udc, dev); \ udc 1539 drivers/usb/gadget/udc/core.c struct usb_gadget *gadget = udc->gadget; \ udc 1580 drivers/usb/gadget/udc/core.c struct usb_udc *udc = container_of(dev, struct usb_udc, dev); udc 1583 drivers/usb/gadget/udc/core.c ret = add_uevent_var(env, "USB_UDC_NAME=%s", udc->gadget->name); udc 1589 drivers/usb/gadget/udc/core.c if (udc->driver) { udc 1591 drivers/usb/gadget/udc/core.c udc->driver->function); udc 78 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 94 drivers/usb/gadget/udc/fsl_qe_udc.c dma_unmap_single(udc->gadget.dev.parent, udc 102 drivers/usb/gadget/udc/fsl_qe_udc.c dma_sync_single_for_cpu(udc->gadget.dev.parent, udc 109 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(udc->dev, "complete %s req %p stat %d len %u/%u\n", udc 115 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock(&udc->lock); udc 119 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock(&udc->lock); udc 146 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 148 drivers/usb/gadget/udc/fsl_qe_udc.c tem_usep = in_be16(&udc->usb_regs->usb_usep[epnum]); udc 155 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usep[epnum], tem_usep); udc 163 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 165 drivers/usb/gadget/udc/fsl_qe_udc.c tem_usep = in_be16(&udc->usb_regs->usb_usep[epnum]); udc 172 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usep[epnum], tem_usep); udc 177 drivers/usb/gadget/udc/fsl_qe_udc.c static int qe_ep0_stall(struct qe_udc *udc) udc 179 drivers/usb/gadget/udc/fsl_qe_udc.c qe_eptx_stall_change(&udc->eps[0], 1); udc 180 drivers/usb/gadget/udc/fsl_qe_udc.c qe_eprx_stall_change(&udc->eps[0], 1); udc 181 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = WAIT_FOR_SETUP; udc 182 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = 0; udc 189 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 193 drivers/usb/gadget/udc/fsl_qe_udc.c clrsetbits_be16(&udc->usb_regs->usb_usep[epnum], udc 197 drivers/usb/gadget/udc/fsl_qe_udc.c clrbits16(&udc->usb_regs->usb_usbmr, udc 207 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 210 drivers/usb/gadget/udc/fsl_qe_udc.c clrsetbits_be16(&udc->usb_regs->usb_usep[ep->epnum], udc 214 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usber, udc 216 drivers/usb/gadget/udc/fsl_qe_udc.c setbits16(&udc->usb_regs->usb_usbmr, udc 228 drivers/usb/gadget/udc/fsl_qe_udc.c if (ep->udc->soc_type == PORT_CPM) udc 240 drivers/usb/gadget/udc/fsl_qe_udc.c if (ep->udc->soc_type == PORT_CPM) udc 252 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 258 drivers/usb/gadget/udc/fsl_qe_udc.c out_8(&udc->usb_regs->usb_uscom, udc 260 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->ep_param[i]->tbptr, in_be16(&udc->ep_param[i]->tbase)); udc 261 drivers/usb/gadget/udc/fsl_qe_udc.c out_be32(&udc->ep_param[i]->tstate, 0); udc 262 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->ep_param[i]->tbcnt, 0); udc 272 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 274 drivers/usb/gadget/udc/fsl_qe_udc.c out_8(&udc->usb_regs->usb_uscom, udc 279 drivers/usb/gadget/udc/fsl_qe_udc.c static int qe_epbds_reset(struct qe_udc *udc, int pipe_num) udc 286 drivers/usb/gadget/udc/fsl_qe_udc.c ep = &udc->eps[pipe_num]; udc 311 drivers/usb/gadget/udc/fsl_qe_udc.c static int qe_ep_reset(struct qe_udc *udc, int pipe_num) udc 316 drivers/usb/gadget/udc/fsl_qe_udc.c ep = &udc->eps[pipe_num]; udc 317 drivers/usb/gadget/udc/fsl_qe_udc.c tmpusep = in_be16(&udc->usb_regs->usb_usep[pipe_num]); udc 334 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usep[pipe_num], tmpusep); udc 336 drivers/usb/gadget/udc/fsl_qe_udc.c qe_epbds_reset(udc, pipe_num); udc 347 drivers/usb/gadget/udc/fsl_qe_udc.c static int qe_ep_bd_init(struct qe_udc *udc, unsigned char pipe_num) udc 349 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_ep *ep = &udc->eps[pipe_num]; udc 361 drivers/usb/gadget/udc/fsl_qe_udc.c epparam = udc->ep_param[pipe_num]; udc 439 drivers/usb/gadget/udc/fsl_qe_udc.c ep->rxbuf_d = dma_map_single(ep->udc->gadget.dev.parent, udc 445 drivers/usb/gadget/udc/fsl_qe_udc.c dma_sync_single_for_device(ep->udc->gadget.dev.parent, udc 467 drivers/usb/gadget/udc/fsl_qe_udc.c static int qe_ep_register_init(struct qe_udc *udc, unsigned char pipe_num) udc 469 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_ep *ep = &udc->eps[pipe_num]; udc 475 drivers/usb/gadget/udc/fsl_qe_udc.c epparam = udc->ep_param[pipe_num]; udc 506 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usep[pipe_num], usep); udc 520 drivers/usb/gadget/udc/fsl_qe_udc.c static int qe_ep_init(struct qe_udc *udc, udc 524 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_ep *ep = &udc->eps[pipe_num]; udc 540 drivers/usb/gadget/udc/fsl_qe_udc.c switch (udc->gadget.speed) { udc 561 drivers/usb/gadget/udc/fsl_qe_udc.c switch (udc->gadget.speed) { udc 578 drivers/usb/gadget/udc/fsl_qe_udc.c switch (udc->gadget.speed) { udc 593 drivers/usb/gadget/udc/fsl_qe_udc.c switch (udc->gadget.speed) { udc 628 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock_irqsave(&udc->lock, flags); udc 639 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = USB_DIR_OUT; udc 640 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = WAIT_FOR_SETUP; udc 654 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep_bd_init(udc, pipe_num); udc 668 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep_register_init(udc, pipe_num); udc 672 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 679 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 681 drivers/usb/gadget/udc/fsl_qe_udc.c dev_err(udc->dev, "failed to initialize %s\n", ep->ep.name); udc 685 drivers/usb/gadget/udc/fsl_qe_udc.c static inline void qe_usb_enable(struct qe_udc *udc) udc 687 drivers/usb/gadget/udc/fsl_qe_udc.c setbits8(&udc->usb_regs->usb_usmod, USB_MODE_EN); udc 690 drivers/usb/gadget/udc/fsl_qe_udc.c static inline void qe_usb_disable(struct qe_udc *udc) udc 692 drivers/usb/gadget/udc/fsl_qe_udc.c clrbits8(&udc->usb_regs->usb_usmod, USB_MODE_EN); udc 749 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 754 drivers/usb/gadget/udc/fsl_qe_udc.c ((in_be16(&udc->ep_param[epnum]->rbptr) - udc 755 drivers/usb/gadget/udc/fsl_qe_udc.c in_be16(&udc->ep_param[epnum]->rbase)) udc 770 drivers/usb/gadget/udc/fsl_qe_udc.c if (in_be16(&udc->usb_regs->usb_usber) & USB_E_BSY_MASK) udc 771 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usber, USB_E_BSY_MASK); udc 779 drivers/usb/gadget/udc/fsl_qe_udc.c static void setup_received_handle(struct qe_udc *udc, udc 782 drivers/usb/gadget/udc/fsl_qe_udc.c static void ep0_req_complete(struct qe_udc *udc, struct qe_req *req); udc 784 drivers/usb/gadget/udc/fsl_qe_udc.c static int ep0_setup_handle(struct qe_udc *udc) udc 786 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_ep *ep = &udc->eps[0]; udc 793 drivers/usb/gadget/udc/fsl_qe_udc.c && (udc->ep0_state == WAIT_FOR_SETUP)) { udc 797 drivers/usb/gadget/udc/fsl_qe_udc.c cp = (u8 *)&udc->local_setup_buff; udc 802 drivers/usb/gadget/udc/fsl_qe_udc.c setup_received_handle(udc, &udc->local_setup_buff); udc 808 drivers/usb/gadget/udc/fsl_qe_udc.c static int qe_ep0_rx(struct qe_udc *udc) udc 810 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_ep *ep = &udc->eps[0]; udc 819 drivers/usb/gadget/udc/fsl_qe_udc.c dev_err(udc->dev, "ep0 not a control endpoint\n"); udc 831 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = WAIT_FOR_SETUP; udc 832 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(udc->dev, udc 854 drivers/usb/gadget/udc/fsl_qe_udc.c ep0_setup_handle(udc); udc 859 drivers/usb/gadget/udc/fsl_qe_udc.c dev_err(udc->dev, "The receive frame with error!\n"); udc 895 drivers/usb/gadget/udc/fsl_qe_udc.c dev_err(ep->udc->dev, "the data01 error!\n"); udc 901 drivers/usb/gadget/udc/fsl_qe_udc.c dev_err(ep->udc->dev, "the %s have no requeue!\n", ep->name); udc 912 drivers/usb/gadget/udc/fsl_qe_udc.c ep0_req_complete(ep->udc, req); udc 928 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = (struct qe_udc *)data; udc 936 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock_irqsave(&udc->lock, flags); udc 939 drivers/usb/gadget/udc/fsl_qe_udc.c ep = &udc->eps[i]; udc 942 drivers/usb/gadget/udc/fsl_qe_udc.c dev_dbg(udc->dev, udc 955 drivers/usb/gadget/udc/fsl_qe_udc.c dev_dbg(udc->dev, udc 983 drivers/usb/gadget/udc/fsl_qe_udc.c dev_err(udc->dev, udc 1011 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1016 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc; udc 1021 drivers/usb/gadget/udc/fsl_qe_udc.c udc = ep->udc; udc 1025 drivers/usb/gadget/udc/fsl_qe_udc.c dev_err(udc->dev, "transmit ep in rx function\n"); udc 1032 drivers/usb/gadget/udc/fsl_qe_udc.c ucoffs = (u16)((in_be16(&udc->ep_param[ep->epnum]->rbptr) - udc 1033 drivers/usb/gadget/udc/fsl_qe_udc.c in_be16(&udc->ep_param[ep->epnum]->rbase)) >> 3); udc 1042 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(udc->dev, "%d empty bds, send NACK\n", emptybds); udc 1048 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(udc->dev, "The rxep have no req queued with %d BDs\n", udc 1053 drivers/usb/gadget/udc/fsl_qe_udc.c tasklet_schedule(&udc->rx_tasklet); udc 1062 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 1069 drivers/usb/gadget/udc/fsl_qe_udc.c dev_err(udc->dev, "receive ep passed to tx function\n"); udc 1074 drivers/usb/gadget/udc/fsl_qe_udc.c saveusbmr = in_be16(&udc->usb_regs->usb_usbmr); udc 1075 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usbmr, udc 1083 drivers/usb/gadget/udc/fsl_qe_udc.c frame_set_data(frame, udc->nullbuf); udc 1086 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(udc->dev, "the frame size = 0\n"); udc 1098 drivers/usb/gadget/udc/fsl_qe_udc.c if ((ep->epnum == 0) && (udc->ep0_state == DATA_STATE_NEED_ZLP)) udc 1114 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usbmr, saveusbmr); udc 1124 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usbmr, saveusbmr); udc 1125 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(udc->dev, "The tx bd is not ready!\n"); udc 1206 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 1212 drivers/usb/gadget/udc/fsl_qe_udc.c frame_set_data(frame, (u8 *)udc->nullbuf); udc 1239 drivers/usb/gadget/udc/fsl_qe_udc.c static int ep0_prime_status(struct qe_udc *udc, int direction) udc 1242 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_ep *ep = &udc->eps[0]; udc 1245 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = DATA_STATE_NEED_ZLP; udc 1246 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = USB_DIR_IN; udc 1249 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = USB_DIR_OUT; udc 1250 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = WAIT_FOR_OUT_STATUS; udc 1257 drivers/usb/gadget/udc/fsl_qe_udc.c static void ep0_req_complete(struct qe_udc *udc, struct qe_req *req) udc 1259 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_ep *ep = &udc->eps[0]; udc 1262 drivers/usb/gadget/udc/fsl_qe_udc.c switch (udc->ep0_state) { udc 1266 drivers/usb/gadget/udc/fsl_qe_udc.c if (ep0_prime_status(udc, USB_DIR_OUT)) udc 1267 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep0_stall(udc); udc 1272 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = WAIT_FOR_SETUP; udc 1278 drivers/usb/gadget/udc/fsl_qe_udc.c if (ep0_prime_status(udc, USB_DIR_IN)) udc 1279 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep0_stall(udc); udc 1284 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = WAIT_FOR_SETUP; udc 1288 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(udc->dev, "Unexpected interrupt\n"); udc 1292 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep0_stall(udc); udc 1304 drivers/usb/gadget/udc/fsl_qe_udc.c ep->udc->ep0_state = WAIT_FOR_SETUP; udc 1323 drivers/usb/gadget/udc/fsl_qe_udc.c ep0_req_complete(ep->udc, ep->tx_req); udc 1329 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(ep->udc->dev, "the ep0_controller have no req\n"); udc 1340 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(ep->udc->dev, "The EP0 transmit data have error!\n"); udc 1395 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(ep->udc->dev, "The EP0 transmit data have error!\n"); udc 1465 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 1475 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(udc->dev, "the req already finish!\n"); udc 1508 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(udc->dev, "the data01 error!\n"); udc 1528 drivers/usb/gadget/udc/fsl_qe_udc.c dev_err(udc->dev, "The receive frame with error!\n"); udc 1578 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc; udc 1590 drivers/usb/gadget/udc/fsl_qe_udc.c udc = ep->udc; udc 1591 drivers/usb/gadget/udc/fsl_qe_udc.c if (!udc->driver || (udc->gadget.speed == USB_SPEED_UNKNOWN)) udc 1596 drivers/usb/gadget/udc/fsl_qe_udc.c retval = qe_ep_init(udc, epnum, desc); udc 1599 drivers/usb/gadget/udc/fsl_qe_udc.c dev_dbg(udc->dev, "enable ep%d failed\n", ep->epnum); udc 1602 drivers/usb/gadget/udc/fsl_qe_udc.c dev_dbg(udc->dev, "enable ep%d successful\n", ep->epnum); udc 1608 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc; udc 1614 drivers/usb/gadget/udc/fsl_qe_udc.c udc = ep->udc; udc 1617 drivers/usb/gadget/udc/fsl_qe_udc.c dev_dbg(udc->dev, "%s not enabled\n", _ep ? ep->ep.name : NULL); udc 1621 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1627 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep_reset(udc, ep->epnum); udc 1628 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1642 drivers/usb/gadget/udc/fsl_qe_udc.c dma_unmap_single(udc->gadget.dev.parent, udc 1648 drivers/usb/gadget/udc/fsl_qe_udc.c udc->gadget.dev.parent, udc 1658 drivers/usb/gadget/udc/fsl_qe_udc.c dev_dbg(udc->dev, "disabled %s OK\n", _ep->name); udc 1691 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc; udc 1694 drivers/usb/gadget/udc/fsl_qe_udc.c udc = ep->udc; udc 1698 drivers/usb/gadget/udc/fsl_qe_udc.c dev_dbg(udc->dev, "bad params\n"); udc 1702 drivers/usb/gadget/udc/fsl_qe_udc.c dev_dbg(udc->dev, "bad ep\n"); udc 1706 drivers/usb/gadget/udc/fsl_qe_udc.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) udc 1713 drivers/usb/gadget/udc/fsl_qe_udc.c req->req.dma = dma_map_single(ep->udc->gadget.dev.parent, udc 1721 drivers/usb/gadget/udc/fsl_qe_udc.c dma_sync_single_for_device(ep->udc->gadget.dev.parent, udc 1733 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(udc->dev, "gadget have request in %s! %d\n", udc 1743 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = DATA_STATE_XMIT; udc 1745 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = DATA_STATE_RECV; udc 1759 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = ep->udc; udc 1763 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1765 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1779 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock_irqsave(&ep->udc->lock, flags); udc 1788 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 1794 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 1809 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc; udc 1817 drivers/usb/gadget/udc/fsl_qe_udc.c udc = ep->udc; udc 1826 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock_irqsave(&ep->udc->lock, flags); udc 1829 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 1832 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = WAIT_FOR_SETUP; udc 1833 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = 0; udc 1840 drivers/usb/gadget/udc/fsl_qe_udc.c dev_vdbg(udc->dev, "%s %s halt stat %d\n", ep->ep.name, udc 1866 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = container_of(gadget, struct qe_udc, gadget); udc 1869 drivers/usb/gadget/udc/fsl_qe_udc.c tmp = in_be16(&udc->usb_param->frame_n); udc 1889 drivers/usb/gadget/udc/fsl_qe_udc.c static int udc_reset_ep_queue(struct qe_udc *udc, u8 pipe) udc 1891 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_ep *ep = &udc->eps[pipe]; udc 1898 drivers/usb/gadget/udc/fsl_qe_udc.c static int reset_queues(struct qe_udc *udc) udc 1903 drivers/usb/gadget/udc/fsl_qe_udc.c udc_reset_ep_queue(udc, pipe); udc 1906 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock(&udc->lock); udc 1907 drivers/usb/gadget/udc/fsl_qe_udc.c usb_gadget_udc_reset(&udc->gadget, udc->driver); udc 1908 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock(&udc->lock); udc 1913 drivers/usb/gadget/udc/fsl_qe_udc.c static void ch9setaddress(struct qe_udc *udc, u16 value, u16 index, udc 1917 drivers/usb/gadget/udc/fsl_qe_udc.c udc->device_address = (u8) value; udc 1919 drivers/usb/gadget/udc/fsl_qe_udc.c udc->usb_state = USB_STATE_ADDRESS; udc 1922 drivers/usb/gadget/udc/fsl_qe_udc.c if (ep0_prime_status(udc, USB_DIR_IN)) udc 1923 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep0_stall(udc); udc 1934 drivers/usb/gadget/udc/fsl_qe_udc.c static void ch9getstatus(struct qe_udc *udc, u8 request_type, u16 value, udc 1942 drivers/usb/gadget/udc/fsl_qe_udc.c ep = &udc->eps[0]; udc 1953 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_ep *target_ep = &udc->eps[pipe]; udc 1960 drivers/usb/gadget/udc/fsl_qe_udc.c usep = in_be16(&udc->usb_regs->usb_usep[pipe]); udc 1977 drivers/usb/gadget/udc/fsl_qe_udc.c req->req.buf = udc->statusbuf; udc 1983 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = USB_DIR_IN; udc 1991 drivers/usb/gadget/udc/fsl_qe_udc.c dev_err(udc->dev, "Can't respond to getstatus request \n"); udc 1992 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep0_stall(udc); udc 1996 drivers/usb/gadget/udc/fsl_qe_udc.c static void setup_received_handle(struct qe_udc *udc, udc 2005 drivers/usb/gadget/udc/fsl_qe_udc.c udc_reset_ep_queue(udc, 0); udc 2008 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = USB_DIR_IN; udc 2010 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = USB_DIR_OUT; udc 2018 drivers/usb/gadget/udc/fsl_qe_udc.c ch9getstatus(udc, setup->bRequestType, wValue, wIndex, udc 2027 drivers/usb/gadget/udc/fsl_qe_udc.c ch9setaddress(udc, wValue, wIndex, wLength); udc 2045 drivers/usb/gadget/udc/fsl_qe_udc.c ep = &udc->eps[pipe]; udc 2047 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock(&udc->lock); udc 2051 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock(&udc->lock); udc 2054 drivers/usb/gadget/udc/fsl_qe_udc.c ep0_prime_status(udc, USB_DIR_IN); udc 2065 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = DATA_STATE_XMIT; udc 2066 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = USB_DIR_IN; udc 2068 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = DATA_STATE_RECV; udc 2069 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = USB_DIR_OUT; udc 2071 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock(&udc->lock); udc 2072 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->driver->setup(&udc->gadget, udc 2073 drivers/usb/gadget/udc/fsl_qe_udc.c &udc->local_setup_buff) < 0) udc 2074 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep0_stall(udc); udc 2075 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock(&udc->lock); udc 2078 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = USB_DIR_IN; udc 2079 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock(&udc->lock); udc 2080 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->driver->setup(&udc->gadget, udc 2081 drivers/usb/gadget/udc/fsl_qe_udc.c &udc->local_setup_buff) < 0) udc 2082 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep0_stall(udc); udc 2083 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock(&udc->lock); udc 2084 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = DATA_STATE_NEED_ZLP; udc 2091 drivers/usb/gadget/udc/fsl_qe_udc.c static void suspend_irq(struct qe_udc *udc) udc 2093 drivers/usb/gadget/udc/fsl_qe_udc.c udc->resume_state = udc->usb_state; udc 2094 drivers/usb/gadget/udc/fsl_qe_udc.c udc->usb_state = USB_STATE_SUSPENDED; udc 2097 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->driver->suspend) udc 2098 drivers/usb/gadget/udc/fsl_qe_udc.c udc->driver->suspend(&udc->gadget); udc 2101 drivers/usb/gadget/udc/fsl_qe_udc.c static void resume_irq(struct qe_udc *udc) udc 2103 drivers/usb/gadget/udc/fsl_qe_udc.c udc->usb_state = udc->resume_state; udc 2104 drivers/usb/gadget/udc/fsl_qe_udc.c udc->resume_state = 0; udc 2107 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->driver->resume) udc 2108 drivers/usb/gadget/udc/fsl_qe_udc.c udc->driver->resume(&udc->gadget); udc 2111 drivers/usb/gadget/udc/fsl_qe_udc.c static void idle_irq(struct qe_udc *udc) udc 2115 drivers/usb/gadget/udc/fsl_qe_udc.c usbs = in_8(&udc->usb_regs->usb_usbs); udc 2117 drivers/usb/gadget/udc/fsl_qe_udc.c if ((udc->usb_state) != USB_STATE_SUSPENDED) udc 2118 drivers/usb/gadget/udc/fsl_qe_udc.c suspend_irq(udc); udc 2120 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->usb_state == USB_STATE_SUSPENDED) udc 2121 drivers/usb/gadget/udc/fsl_qe_udc.c resume_irq(udc); udc 2125 drivers/usb/gadget/udc/fsl_qe_udc.c static int reset_irq(struct qe_udc *udc) udc 2129 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->usb_state == USB_STATE_DEFAULT) udc 2132 drivers/usb/gadget/udc/fsl_qe_udc.c qe_usb_disable(udc); udc 2133 drivers/usb/gadget/udc/fsl_qe_udc.c out_8(&udc->usb_regs->usb_usadr, 0); udc 2136 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->eps[i].init) udc 2137 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep_reset(udc, i); udc 2140 drivers/usb/gadget/udc/fsl_qe_udc.c reset_queues(udc); udc 2141 drivers/usb/gadget/udc/fsl_qe_udc.c udc->usb_state = USB_STATE_DEFAULT; udc 2142 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = WAIT_FOR_SETUP; udc 2143 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = USB_DIR_OUT; udc 2144 drivers/usb/gadget/udc/fsl_qe_udc.c qe_usb_enable(udc); udc 2148 drivers/usb/gadget/udc/fsl_qe_udc.c static int bsy_irq(struct qe_udc *udc) udc 2153 drivers/usb/gadget/udc/fsl_qe_udc.c static int txe_irq(struct qe_udc *udc) udc 2159 drivers/usb/gadget/udc/fsl_qe_udc.c static int tx_irq(struct qe_udc *udc) udc 2165 drivers/usb/gadget/udc/fsl_qe_udc.c if ((udc->usb_state == USB_STATE_ADDRESS) udc 2166 drivers/usb/gadget/udc/fsl_qe_udc.c && (in_8(&udc->usb_regs->usb_usadr) == 0)) udc 2167 drivers/usb/gadget/udc/fsl_qe_udc.c out_8(&udc->usb_regs->usb_usadr, udc->device_address); udc 2170 drivers/usb/gadget/udc/fsl_qe_udc.c ep = &udc->eps[i]; udc 2188 drivers/usb/gadget/udc/fsl_qe_udc.c static void rx_irq(struct qe_udc *udc) udc 2195 drivers/usb/gadget/udc/fsl_qe_udc.c ep = &udc->eps[i]; udc 2201 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep0_rx(udc); udc 2213 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = (struct qe_udc *)_udc; udc 2218 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2220 drivers/usb/gadget/udc/fsl_qe_udc.c irq_src = in_be16(&udc->usb_regs->usb_usber) & udc 2221 drivers/usb/gadget/udc/fsl_qe_udc.c in_be16(&udc->usb_regs->usb_usbmr); udc 2223 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usber, irq_src); udc 2226 drivers/usb/gadget/udc/fsl_qe_udc.c idle_irq(udc); udc 2232 drivers/usb/gadget/udc/fsl_qe_udc.c tx_irq(udc); udc 2238 drivers/usb/gadget/udc/fsl_qe_udc.c rx_irq(udc); udc 2244 drivers/usb/gadget/udc/fsl_qe_udc.c reset_irq(udc); udc 2250 drivers/usb/gadget/udc/fsl_qe_udc.c bsy_irq(udc); udc 2256 drivers/usb/gadget/udc/fsl_qe_udc.c txe_irq(udc); udc 2261 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2272 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc; udc 2275 drivers/usb/gadget/udc/fsl_qe_udc.c udc = container_of(gadget, struct qe_udc, gadget); udc 2277 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2281 drivers/usb/gadget/udc/fsl_qe_udc.c udc->driver = driver; udc 2282 drivers/usb/gadget/udc/fsl_qe_udc.c udc->gadget.speed = driver->max_speed; udc 2285 drivers/usb/gadget/udc/fsl_qe_udc.c qe_usb_enable(udc); udc 2287 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usber, 0xffff); udc 2288 drivers/usb/gadget/udc/fsl_qe_udc.c out_be16(&udc->usb_regs->usb_usbmr, USB_E_DEFAULT_DEVICE); udc 2289 drivers/usb/gadget/udc/fsl_qe_udc.c udc->usb_state = USB_STATE_ATTACHED; udc 2290 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = WAIT_FOR_SETUP; udc 2291 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = USB_DIR_OUT; udc 2292 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2299 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc; udc 2303 drivers/usb/gadget/udc/fsl_qe_udc.c udc = container_of(gadget, struct qe_udc, gadget); udc 2305 drivers/usb/gadget/udc/fsl_qe_udc.c qe_usb_disable(udc); udc 2308 drivers/usb/gadget/udc/fsl_qe_udc.c udc->usb_state = USB_STATE_ATTACHED; udc 2309 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_state = WAIT_FOR_SETUP; udc 2310 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = 0; udc 2313 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2314 drivers/usb/gadget/udc/fsl_qe_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 2315 drivers/usb/gadget/udc/fsl_qe_udc.c nuke(&udc->eps[0], -ESHUTDOWN); udc 2316 drivers/usb/gadget/udc/fsl_qe_udc.c list_for_each_entry(loop_ep, &udc->gadget.ep_list, ep.ep_list) udc 2318 drivers/usb/gadget/udc/fsl_qe_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2320 drivers/usb/gadget/udc/fsl_qe_udc.c udc->driver = NULL; udc 2328 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc; udc 2336 drivers/usb/gadget/udc/fsl_qe_udc.c udc = kzalloc(sizeof(*udc), GFP_KERNEL); udc 2337 drivers/usb/gadget/udc/fsl_qe_udc.c if (!udc) udc 2340 drivers/usb/gadget/udc/fsl_qe_udc.c udc->dev = &ofdev->dev; udc 2344 drivers/usb/gadget/udc/fsl_qe_udc.c udc->usb_param = cpm_muram_addr(offset); udc 2345 drivers/usb/gadget/udc/fsl_qe_udc.c memset_io(udc->usb_param, 0, size); udc 2347 drivers/usb/gadget/udc/fsl_qe_udc.c usbpram = udc->usb_param; udc 2359 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep_param[i] = cpm_muram_addr(tmp_addr); udc 2363 drivers/usb/gadget/udc/fsl_qe_udc.c memset_io(udc->ep_param[0], 0, udc 2366 drivers/usb/gadget/udc/fsl_qe_udc.c udc->resume_state = USB_STATE_NOTATTACHED; udc 2367 drivers/usb/gadget/udc/fsl_qe_udc.c udc->usb_state = USB_STATE_POWERED; udc 2368 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep0_dir = 0; udc 2370 drivers/usb/gadget/udc/fsl_qe_udc.c spin_lock_init(&udc->lock); udc 2371 drivers/usb/gadget/udc/fsl_qe_udc.c return udc; udc 2374 drivers/usb/gadget/udc/fsl_qe_udc.c kfree(udc); udc 2379 drivers/usb/gadget/udc/fsl_qe_udc.c static int qe_udc_reg_init(struct qe_udc *udc) udc 2382 drivers/usb/gadget/udc/fsl_qe_udc.c qe_usbregs = udc->usb_regs; udc 2397 drivers/usb/gadget/udc/fsl_qe_udc.c static int qe_ep_config(struct qe_udc *udc, unsigned char pipe_num) udc 2399 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_ep *ep = &udc->eps[pipe_num]; udc 2401 drivers/usb/gadget/udc/fsl_qe_udc.c ep->udc = udc; udc 2436 drivers/usb/gadget/udc/fsl_qe_udc.c list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); udc 2438 drivers/usb/gadget/udc/fsl_qe_udc.c ep->gadget = &udc->gadget; udc 2448 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = container_of(dev, struct qe_udc, gadget.dev); udc 2451 drivers/usb/gadget/udc/fsl_qe_udc.c complete(udc->done); udc 2452 drivers/usb/gadget/udc/fsl_qe_udc.c cpm_muram_free(cpm_muram_offset(udc->ep_param[0])); udc 2454 drivers/usb/gadget/udc/fsl_qe_udc.c udc->ep_param[i] = NULL; udc 2456 drivers/usb/gadget/udc/fsl_qe_udc.c kfree(udc); udc 2463 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc; udc 2480 drivers/usb/gadget/udc/fsl_qe_udc.c udc = qe_udc_config(ofdev); udc 2481 drivers/usb/gadget/udc/fsl_qe_udc.c if (!udc) { udc 2486 drivers/usb/gadget/udc/fsl_qe_udc.c udc->soc_type = (unsigned long)match->data; udc 2487 drivers/usb/gadget/udc/fsl_qe_udc.c udc->usb_regs = of_iomap(np, 0); udc 2488 drivers/usb/gadget/udc/fsl_qe_udc.c if (!udc->usb_regs) { udc 2495 drivers/usb/gadget/udc/fsl_qe_udc.c qe_udc_reg_init(udc); udc 2499 drivers/usb/gadget/udc/fsl_qe_udc.c udc->gadget.ops = &qe_gadget_ops; udc 2502 drivers/usb/gadget/udc/fsl_qe_udc.c udc->gadget.ep0 = &udc->eps[0].ep; udc 2504 drivers/usb/gadget/udc/fsl_qe_udc.c INIT_LIST_HEAD(&udc->gadget.ep_list); udc 2507 drivers/usb/gadget/udc/fsl_qe_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 2510 drivers/usb/gadget/udc/fsl_qe_udc.c udc->gadget.name = driver_name; udc 2511 drivers/usb/gadget/udc/fsl_qe_udc.c udc->gadget.dev.parent = &ofdev->dev; udc 2520 drivers/usb/gadget/udc/fsl_qe_udc.c qe_ep_config(udc, (unsigned char)i); udc 2524 drivers/usb/gadget/udc/fsl_qe_udc.c ret = qe_ep_init(udc, 0, &qe_ep0_desc); udc 2529 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullbuf = devm_kzalloc(&ofdev->dev, 256, GFP_KERNEL); udc 2530 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->nullbuf == NULL) { udc 2536 drivers/usb/gadget/udc/fsl_qe_udc.c udc->statusbuf = devm_kzalloc(&ofdev->dev, 2, GFP_KERNEL); udc 2537 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->statusbuf == NULL) { udc 2542 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullp = virt_to_phys((void *)udc->nullbuf); udc 2543 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->nullp == DMA_ADDR_INVALID) { udc 2544 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullp = dma_map_single( udc 2545 drivers/usb/gadget/udc/fsl_qe_udc.c udc->gadget.dev.parent, udc 2546 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullbuf, udc 2549 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullmap = 1; udc 2551 drivers/usb/gadget/udc/fsl_qe_udc.c dma_sync_single_for_device(udc->gadget.dev.parent, udc 2552 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullp, 256, udc 2556 drivers/usb/gadget/udc/fsl_qe_udc.c tasklet_init(&udc->rx_tasklet, ep_rx_tasklet, udc 2557 drivers/usb/gadget/udc/fsl_qe_udc.c (unsigned long)udc); udc 2559 drivers/usb/gadget/udc/fsl_qe_udc.c udc->usb_irq = irq_of_parse_and_map(np, 0); udc 2560 drivers/usb/gadget/udc/fsl_qe_udc.c if (!udc->usb_irq) { udc 2565 drivers/usb/gadget/udc/fsl_qe_udc.c ret = request_irq(udc->usb_irq, qe_udc_irq, 0, udc 2566 drivers/usb/gadget/udc/fsl_qe_udc.c driver_name, udc); udc 2568 drivers/usb/gadget/udc/fsl_qe_udc.c dev_err(udc->dev, "cannot request irq %d err %d\n", udc 2569 drivers/usb/gadget/udc/fsl_qe_udc.c udc->usb_irq, ret); udc 2573 drivers/usb/gadget/udc/fsl_qe_udc.c ret = usb_add_gadget_udc_release(&ofdev->dev, &udc->gadget, udc 2578 drivers/usb/gadget/udc/fsl_qe_udc.c platform_set_drvdata(ofdev, udc); udc 2579 drivers/usb/gadget/udc/fsl_qe_udc.c dev_info(udc->dev, udc 2581 drivers/usb/gadget/udc/fsl_qe_udc.c (udc->soc_type == PORT_QE) ? "QE" : "CPM"); udc 2585 drivers/usb/gadget/udc/fsl_qe_udc.c free_irq(udc->usb_irq, udc); udc 2587 drivers/usb/gadget/udc/fsl_qe_udc.c irq_dispose_mapping(udc->usb_irq); udc 2589 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->nullmap) { udc 2590 drivers/usb/gadget/udc/fsl_qe_udc.c dma_unmap_single(udc->gadget.dev.parent, udc 2591 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullp, 256, udc 2593 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullp = DMA_ADDR_INVALID; udc 2595 drivers/usb/gadget/udc/fsl_qe_udc.c dma_sync_single_for_cpu(udc->gadget.dev.parent, udc 2596 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullp, 256, udc 2600 drivers/usb/gadget/udc/fsl_qe_udc.c ep = &udc->eps[0]; udc 2606 drivers/usb/gadget/udc/fsl_qe_udc.c iounmap(udc->usb_regs); udc 2608 drivers/usb/gadget/udc/fsl_qe_udc.c kfree(udc); udc 2626 drivers/usb/gadget/udc/fsl_qe_udc.c struct qe_udc *udc = platform_get_drvdata(ofdev); udc 2631 drivers/usb/gadget/udc/fsl_qe_udc.c usb_del_gadget_udc(&udc->gadget); udc 2633 drivers/usb/gadget/udc/fsl_qe_udc.c udc->done = &done; udc 2634 drivers/usb/gadget/udc/fsl_qe_udc.c tasklet_disable(&udc->rx_tasklet); udc 2636 drivers/usb/gadget/udc/fsl_qe_udc.c if (udc->nullmap) { udc 2637 drivers/usb/gadget/udc/fsl_qe_udc.c dma_unmap_single(udc->gadget.dev.parent, udc 2638 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullp, 256, udc 2640 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullp = DMA_ADDR_INVALID; udc 2642 drivers/usb/gadget/udc/fsl_qe_udc.c dma_sync_single_for_cpu(udc->gadget.dev.parent, udc 2643 drivers/usb/gadget/udc/fsl_qe_udc.c udc->nullp, 256, udc 2647 drivers/usb/gadget/udc/fsl_qe_udc.c ep = &udc->eps[0]; udc 2653 drivers/usb/gadget/udc/fsl_qe_udc.c dma_unmap_single(udc->gadget.dev.parent, udc 2658 drivers/usb/gadget/udc/fsl_qe_udc.c dma_sync_single_for_cpu(udc->gadget.dev.parent, udc 2666 drivers/usb/gadget/udc/fsl_qe_udc.c free_irq(udc->usb_irq, udc); udc 2667 drivers/usb/gadget/udc/fsl_qe_udc.c irq_dispose_mapping(udc->usb_irq); udc 2669 drivers/usb/gadget/udc/fsl_qe_udc.c tasklet_kill(&udc->rx_tasklet); udc 2671 drivers/usb/gadget/udc/fsl_qe_udc.c iounmap(udc->usb_regs); udc 154 drivers/usb/gadget/udc/fsl_qe_udc.h #define ep_is_in(EP) ((ep_index(EP) == 0) ? (EP->udc->ep0_dir == \ udc 264 drivers/usb/gadget/udc/fsl_qe_udc.h struct qe_udc *udc; udc 158 drivers/usb/gadget/udc/fsl_udc_core.c __releases(ep->udc->lock) udc 159 drivers/usb/gadget/udc/fsl_udc_core.c __acquires(ep->udc->lock) udc 161 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc = NULL; udc 166 drivers/usb/gadget/udc/fsl_udc_core.c udc = (struct fsl_udc *)ep->udc; udc 183 drivers/usb/gadget/udc/fsl_udc_core.c dma_pool_free(udc->td_pool, curr_td, curr_td->td_dma); udc 186 drivers/usb/gadget/udc/fsl_udc_core.c usb_gadget_unmap_request(&ep->udc->gadget, &req->req, ep_is_in(ep)); udc 195 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock(&ep->udc->lock); udc 199 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock(&ep->udc->lock); udc 227 drivers/usb/gadget/udc/fsl_udc_core.c static int dr_controller_setup(struct fsl_udc *udc) udc 239 drivers/usb/gadget/udc/fsl_udc_core.c switch (udc->phy_mode) { udc 241 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->pdata->have_sysif_regs) { udc 242 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->pdata->controller_ver) { udc 257 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->pdata->have_sysif_regs) { udc 258 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->pdata->controller_ver) { udc 303 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->pdata->es) udc 310 drivers/usb/gadget/udc/fsl_udc_core.c tmp = udc->ep_qh_dma; udc 315 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep_qh, (int)tmp, udc 328 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->pdata->have_sysif_regs) { udc 339 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->pdata->have_sysif_regs) { udc 352 drivers/usb/gadget/udc/fsl_udc_core.c static void dr_controller_run(struct fsl_udc *udc) udc 364 drivers/usb/gadget/udc/fsl_udc_core.c udc->stopped = 0; udc 377 drivers/usb/gadget/udc/fsl_udc_core.c static void dr_controller_stop(struct fsl_udc *udc) udc 387 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->gadget.is_otg) { udc 398 drivers/usb/gadget/udc/fsl_udc_core.c udc->stopped = 1; udc 482 drivers/usb/gadget/udc/fsl_udc_core.c static void struct_ep_qh_setup(struct fsl_udc *udc, unsigned char ep_num, udc 487 drivers/usb/gadget/udc/fsl_udc_core.c struct ep_queue_head *p_QH = &udc->ep_qh[2 * ep_num + dir]; udc 518 drivers/usb/gadget/udc/fsl_udc_core.c static void ep0_setup(struct fsl_udc *udc) udc 522 drivers/usb/gadget/udc/fsl_udc_core.c struct_ep_qh_setup(udc, 0, USB_RECV, USB_ENDPOINT_XFER_CONTROL, udc 524 drivers/usb/gadget/udc/fsl_udc_core.c struct_ep_qh_setup(udc, 0, USB_SEND, USB_ENDPOINT_XFER_CONTROL, udc 546 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc = NULL; udc 560 drivers/usb/gadget/udc/fsl_udc_core.c udc = ep->udc; udc 562 drivers/usb/gadget/udc/fsl_udc_core.c if (!udc->driver || (udc->gadget.speed == USB_SPEED_UNKNOWN)) udc 594 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 602 drivers/usb/gadget/udc/fsl_udc_core.c struct_ep_qh_setup(udc, (unsigned char) ep_index(ep), udc 616 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 633 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc = NULL; udc 657 drivers/usb/gadget/udc/fsl_udc_core.c udc = (struct fsl_udc *)ep->udc; udc 658 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 665 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 872 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc; udc 891 drivers/usb/gadget/udc/fsl_udc_core.c udc = ep->udc; udc 892 drivers/usb/gadget/udc/fsl_udc_core.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) udc 897 drivers/usb/gadget/udc/fsl_udc_core.c ret = usb_gadget_map_request(&ep->udc->gadget, &req->req, ep_is_in(ep)); udc 907 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 916 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 933 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock_irqsave(&ep->udc->lock, flags); udc 990 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 1008 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc = NULL; udc 1011 drivers/usb/gadget/udc/fsl_udc_core.c udc = ep->udc; udc 1032 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock_irqsave(&ep->udc->lock, flags); udc 1034 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 1037 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_state = WAIT_FOR_SETUP; udc 1038 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_dir = 0; udc 1050 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc; udc 1059 drivers/usb/gadget/udc/fsl_udc_core.c udc = (struct fsl_udc *)ep->udc; udc 1061 drivers/usb/gadget/udc/fsl_udc_core.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) udc 1150 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc = container_of(gadget, struct fsl_udc, gadget); udc 1154 drivers/usb/gadget/udc/fsl_udc_core.c if (!udc->remote_wakeup) udc 1167 drivers/usb/gadget/udc/fsl_udc_core.c static int can_pullup(struct fsl_udc *udc) udc 1169 drivers/usb/gadget/udc/fsl_udc_core.c return udc->driver && udc->softconnect && udc->vbus_active; udc 1176 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc; udc 1179 drivers/usb/gadget/udc/fsl_udc_core.c udc = container_of(gadget, struct fsl_udc, gadget); udc 1180 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 1182 drivers/usb/gadget/udc/fsl_udc_core.c udc->vbus_active = (is_active != 0); udc 1183 drivers/usb/gadget/udc/fsl_udc_core.c if (can_pullup(udc)) udc 1189 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 1202 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc; udc 1204 drivers/usb/gadget/udc/fsl_udc_core.c udc = container_of(gadget, struct fsl_udc, gadget); udc 1205 drivers/usb/gadget/udc/fsl_udc_core.c if (!IS_ERR_OR_NULL(udc->transceiver)) udc 1206 drivers/usb/gadget/udc/fsl_udc_core.c return usb_phy_set_power(udc->transceiver, mA); udc 1215 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc; udc 1217 drivers/usb/gadget/udc/fsl_udc_core.c udc = container_of(gadget, struct fsl_udc, gadget); udc 1219 drivers/usb/gadget/udc/fsl_udc_core.c if (!udc->vbus_active) udc 1222 drivers/usb/gadget/udc/fsl_udc_core.c udc->softconnect = (is_on != 0); udc 1223 drivers/usb/gadget/udc/fsl_udc_core.c if (can_pullup(udc)) udc 1256 drivers/usb/gadget/udc/fsl_udc_core.c static void ep0stall(struct fsl_udc *udc) udc 1264 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_state = WAIT_FOR_SETUP; udc 1265 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_dir = 0; udc 1269 drivers/usb/gadget/udc/fsl_udc_core.c static int ep0_prime_status(struct fsl_udc *udc, int direction) udc 1271 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_req *req = udc->status_req; udc 1276 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_dir = USB_DIR_IN; udc 1278 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_dir = USB_DIR_OUT; udc 1280 drivers/usb/gadget/udc/fsl_udc_core.c ep = &udc->eps[0]; udc 1281 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->ep0_state != DATA_STATE_XMIT) udc 1282 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_state = WAIT_FOR_OUT_STATUS; udc 1291 drivers/usb/gadget/udc/fsl_udc_core.c ret = usb_gadget_map_request(&ep->udc->gadget, &req->req, ep_is_in(ep)); udc 1305 drivers/usb/gadget/udc/fsl_udc_core.c static void udc_reset_ep_queue(struct fsl_udc *udc, u8 pipe) udc 1307 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_ep *ep = get_ep_by_pipe(udc, pipe); udc 1316 drivers/usb/gadget/udc/fsl_udc_core.c static void ch9setaddress(struct fsl_udc *udc, u16 value, u16 index, u16 length) udc 1319 drivers/usb/gadget/udc/fsl_udc_core.c udc->device_address = (u8) value; udc 1321 drivers/usb/gadget/udc/fsl_udc_core.c udc->usb_state = USB_STATE_ADDRESS; udc 1323 drivers/usb/gadget/udc/fsl_udc_core.c if (ep0_prime_status(udc, EP_DIR_IN)) udc 1324 drivers/usb/gadget/udc/fsl_udc_core.c ep0stall(udc); udc 1330 drivers/usb/gadget/udc/fsl_udc_core.c static void ch9getstatus(struct fsl_udc *udc, u8 request_type, u16 value, udc 1338 drivers/usb/gadget/udc/fsl_udc_core.c ep = &udc->eps[0]; udc 1342 drivers/usb/gadget/udc/fsl_udc_core.c tmp = udc->gadget.is_selfpowered; udc 1343 drivers/usb/gadget/udc/fsl_udc_core.c tmp |= udc->remote_wakeup << USB_DEVICE_REMOTE_WAKEUP; udc 1352 drivers/usb/gadget/udc/fsl_udc_core.c target_ep = get_ep_by_pipe(udc, get_pipe_by_windex(index)); udc 1361 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_dir = USB_DIR_IN; udc 1363 drivers/usb/gadget/udc/fsl_udc_core.c req = udc->status_req; udc 1374 drivers/usb/gadget/udc/fsl_udc_core.c ret = usb_gadget_map_request(&ep->udc->gadget, &req->req, ep_is_in(ep)); udc 1385 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_state = DATA_STATE_XMIT; udc 1386 drivers/usb/gadget/udc/fsl_udc_core.c if (ep0_prime_status(udc, EP_DIR_OUT)) udc 1387 drivers/usb/gadget/udc/fsl_udc_core.c ep0stall(udc); udc 1391 drivers/usb/gadget/udc/fsl_udc_core.c ep0stall(udc); udc 1394 drivers/usb/gadget/udc/fsl_udc_core.c static void setup_received_irq(struct fsl_udc *udc, udc 1396 drivers/usb/gadget/udc/fsl_udc_core.c __releases(udc->lock) udc 1397 drivers/usb/gadget/udc/fsl_udc_core.c __acquires(udc->lock) udc 1403 drivers/usb/gadget/udc/fsl_udc_core.c udc_reset_ep_queue(udc, 0); udc 1412 drivers/usb/gadget/udc/fsl_udc_core.c ch9getstatus(udc, setup->bRequestType, wValue, wIndex, wLength); udc 1420 drivers/usb/gadget/udc/fsl_udc_core.c ch9setaddress(udc, wValue, wIndex, wLength); udc 1435 drivers/usb/gadget/udc/fsl_udc_core.c if (wValue != 0 || wLength != 0 || pipe >= udc->max_ep) udc 1437 drivers/usb/gadget/udc/fsl_udc_core.c ep = get_ep_by_pipe(udc, pipe); udc 1439 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock(&udc->lock); udc 1443 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock(&udc->lock); udc 1452 drivers/usb/gadget/udc/fsl_udc_core.c else if (gadget_is_otg(&udc->gadget)) { udc 1455 drivers/usb/gadget/udc/fsl_udc_core.c udc->gadget.b_hnp_enable = 1; udc 1458 drivers/usb/gadget/udc/fsl_udc_core.c udc->gadget.a_hnp_support = 1; udc 1461 drivers/usb/gadget/udc/fsl_udc_core.c udc->gadget.a_alt_hnp_support = 1; udc 1468 drivers/usb/gadget/udc/fsl_udc_core.c if (ep0_prime_status(udc, EP_DIR_IN)) udc 1469 drivers/usb/gadget/udc/fsl_udc_core.c ep0stall(udc); udc 1490 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_dir = (setup->bRequestType & USB_DIR_IN) udc 1492 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock(&udc->lock); udc 1493 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->driver->setup(&udc->gadget, udc 1494 drivers/usb/gadget/udc/fsl_udc_core.c &udc->local_setup_buff) < 0) udc 1495 drivers/usb/gadget/udc/fsl_udc_core.c ep0stall(udc); udc 1496 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock(&udc->lock); udc 1497 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_state = (setup->bRequestType & USB_DIR_IN) udc 1503 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->ep0_state == DATA_STATE_XMIT) udc 1504 drivers/usb/gadget/udc/fsl_udc_core.c if (ep0_prime_status(udc, EP_DIR_OUT)) udc 1505 drivers/usb/gadget/udc/fsl_udc_core.c ep0stall(udc); udc 1509 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_dir = USB_DIR_IN; udc 1510 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock(&udc->lock); udc 1511 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->driver->setup(&udc->gadget, udc 1512 drivers/usb/gadget/udc/fsl_udc_core.c &udc->local_setup_buff) < 0) udc 1513 drivers/usb/gadget/udc/fsl_udc_core.c ep0stall(udc); udc 1514 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock(&udc->lock); udc 1515 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_state = WAIT_FOR_OUT_STATUS; udc 1521 drivers/usb/gadget/udc/fsl_udc_core.c static void ep0_req_complete(struct fsl_udc *udc, struct fsl_ep *ep0, udc 1524 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->usb_state == USB_STATE_ADDRESS) { udc 1526 drivers/usb/gadget/udc/fsl_udc_core.c u32 new_address = (u32) udc->device_address; udc 1533 drivers/usb/gadget/udc/fsl_udc_core.c switch (udc->ep0_state) { udc 1536 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_state = WAIT_FOR_OUT_STATUS; udc 1540 drivers/usb/gadget/udc/fsl_udc_core.c if (ep0_prime_status(udc, EP_DIR_IN)) udc 1541 drivers/usb/gadget/udc/fsl_udc_core.c ep0stall(udc); udc 1544 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_state = WAIT_FOR_SETUP; udc 1550 drivers/usb/gadget/udc/fsl_udc_core.c ep0stall(udc); udc 1557 drivers/usb/gadget/udc/fsl_udc_core.c static void tripwire_handler(struct fsl_udc *udc, u8 ep_num, u8 *buffer_ptr) udc 1561 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_usb2_platform_data *pdata = udc->pdata; udc 1563 drivers/usb/gadget/udc/fsl_udc_core.c qh = &udc->ep_qh[ep_num * 2 + EP_DIR_OUT]; udc 1594 drivers/usb/gadget/udc/fsl_udc_core.c static int process_ep_req(struct fsl_udc *udc, int pipe, udc 1601 drivers/usb/gadget/udc/fsl_udc_core.c struct ep_queue_head *curr_qh = &udc->ep_qh[pipe]; udc 1671 drivers/usb/gadget/udc/fsl_udc_core.c static void dtd_complete_irq(struct fsl_udc *udc) udc 1685 drivers/usb/gadget/udc/fsl_udc_core.c for (i = 0; i < udc->max_ep; i++) { udc 1694 drivers/usb/gadget/udc/fsl_udc_core.c curr_ep = get_ep_by_pipe(udc, i); udc 1705 drivers/usb/gadget/udc/fsl_udc_core.c status = process_ep_req(udc, i, curr_req); udc 1715 drivers/usb/gadget/udc/fsl_udc_core.c ep0_req_complete(udc, curr_ep, curr_req); udc 1738 drivers/usb/gadget/udc/fsl_udc_core.c static void port_change_irq(struct fsl_udc *udc) udc 1740 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->bus_reset) udc 1741 drivers/usb/gadget/udc/fsl_udc_core.c udc->bus_reset = 0; udc 1746 drivers/usb/gadget/udc/fsl_udc_core.c udc->gadget.speed = udc 1750 drivers/usb/gadget/udc/fsl_udc_core.c if (!udc->resume_state) udc 1751 drivers/usb/gadget/udc/fsl_udc_core.c udc->usb_state = USB_STATE_DEFAULT; udc 1755 drivers/usb/gadget/udc/fsl_udc_core.c static void suspend_irq(struct fsl_udc *udc) udc 1757 drivers/usb/gadget/udc/fsl_udc_core.c udc->resume_state = udc->usb_state; udc 1758 drivers/usb/gadget/udc/fsl_udc_core.c udc->usb_state = USB_STATE_SUSPENDED; udc 1761 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->driver->suspend) udc 1762 drivers/usb/gadget/udc/fsl_udc_core.c udc->driver->suspend(&udc->gadget); udc 1765 drivers/usb/gadget/udc/fsl_udc_core.c static void bus_resume(struct fsl_udc *udc) udc 1767 drivers/usb/gadget/udc/fsl_udc_core.c udc->usb_state = udc->resume_state; udc 1768 drivers/usb/gadget/udc/fsl_udc_core.c udc->resume_state = 0; udc 1771 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->driver->resume) udc 1772 drivers/usb/gadget/udc/fsl_udc_core.c udc->driver->resume(&udc->gadget); udc 1776 drivers/usb/gadget/udc/fsl_udc_core.c static int reset_queues(struct fsl_udc *udc, bool bus_reset) udc 1780 drivers/usb/gadget/udc/fsl_udc_core.c for (pipe = 0; pipe < udc->max_pipes; pipe++) udc 1781 drivers/usb/gadget/udc/fsl_udc_core.c udc_reset_ep_queue(udc, pipe); udc 1784 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock(&udc->lock); udc 1786 drivers/usb/gadget/udc/fsl_udc_core.c usb_gadget_udc_reset(&udc->gadget, udc->driver); udc 1788 drivers/usb/gadget/udc/fsl_udc_core.c udc->driver->disconnect(&udc->gadget); udc 1789 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock(&udc->lock); udc 1795 drivers/usb/gadget/udc/fsl_udc_core.c static void reset_irq(struct fsl_udc *udc) udc 1804 drivers/usb/gadget/udc/fsl_udc_core.c udc->device_address = 0; udc 1807 drivers/usb/gadget/udc/fsl_udc_core.c udc->resume_state = 0; udc 1808 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_dir = 0; udc 1809 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_state = WAIT_FOR_SETUP; udc 1810 drivers/usb/gadget/udc/fsl_udc_core.c udc->remote_wakeup = 0; /* default to 0 on reset */ udc 1811 drivers/usb/gadget/udc/fsl_udc_core.c udc->gadget.b_hnp_enable = 0; udc 1812 drivers/usb/gadget/udc/fsl_udc_core.c udc->gadget.a_hnp_support = 0; udc 1813 drivers/usb/gadget/udc/fsl_udc_core.c udc->gadget.a_alt_hnp_support = 0; udc 1839 drivers/usb/gadget/udc/fsl_udc_core.c udc->bus_reset = 1; udc 1842 drivers/usb/gadget/udc/fsl_udc_core.c reset_queues(udc, true); udc 1843 drivers/usb/gadget/udc/fsl_udc_core.c udc->usb_state = USB_STATE_DEFAULT; udc 1848 drivers/usb/gadget/udc/fsl_udc_core.c dr_controller_setup(udc); udc 1851 drivers/usb/gadget/udc/fsl_udc_core.c reset_queues(udc, false); udc 1853 drivers/usb/gadget/udc/fsl_udc_core.c ep0_setup(udc); udc 1856 drivers/usb/gadget/udc/fsl_udc_core.c dr_controller_run(udc); udc 1857 drivers/usb/gadget/udc/fsl_udc_core.c udc->usb_state = USB_STATE_ATTACHED; udc 1866 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc = _udc; udc 1872 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->stopped) udc 1874 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 1882 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->usb_state == USB_STATE_SUSPENDED) udc 1884 drivers/usb/gadget/udc/fsl_udc_core.c bus_resume(udc); udc 1891 drivers/usb/gadget/udc/fsl_udc_core.c tripwire_handler(udc, 0, udc 1892 drivers/usb/gadget/udc/fsl_udc_core.c (u8 *) (&udc->local_setup_buff)); udc 1893 drivers/usb/gadget/udc/fsl_udc_core.c setup_received_irq(udc, &udc->local_setup_buff); udc 1899 drivers/usb/gadget/udc/fsl_udc_core.c dtd_complete_irq(udc); udc 1911 drivers/usb/gadget/udc/fsl_udc_core.c port_change_irq(udc); udc 1918 drivers/usb/gadget/udc/fsl_udc_core.c reset_irq(udc); udc 1924 drivers/usb/gadget/udc/fsl_udc_core.c suspend_irq(udc); udc 1932 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 2030 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc = udc_controller; udc 2032 drivers/usb/gadget/udc/fsl_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 2040 drivers/usb/gadget/udc/fsl_udc_core.c udc->driver ? udc->driver->driver.name : "(none)"); udc 2152 drivers/usb/gadget/udc/fsl_udc_core.c for (i = 0; i < udc->max_ep / 2; i++) { udc 2160 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->pdata->have_sysif_regs) { udc 2170 drivers/usb/gadget/udc/fsl_udc_core.c ep = &udc->eps[0]; udc 2185 drivers/usb/gadget/udc/fsl_udc_core.c list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) { udc 2207 drivers/usb/gadget/udc/fsl_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 2242 drivers/usb/gadget/udc/fsl_udc_core.c static int struct_udc_setup(struct fsl_udc *udc, udc 2249 drivers/usb/gadget/udc/fsl_udc_core.c udc->phy_mode = pdata->phy_mode; udc 2251 drivers/usb/gadget/udc/fsl_udc_core.c udc->eps = kcalloc(udc->max_ep, sizeof(struct fsl_ep), GFP_KERNEL); udc 2252 drivers/usb/gadget/udc/fsl_udc_core.c if (!udc->eps) { udc 2258 drivers/usb/gadget/udc/fsl_udc_core.c size = udc->max_ep * sizeof(struct ep_queue_head); udc 2265 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep_qh = dma_alloc_coherent(&pdev->dev, size, udc 2266 drivers/usb/gadget/udc/fsl_udc_core.c &udc->ep_qh_dma, GFP_KERNEL); udc 2267 drivers/usb/gadget/udc/fsl_udc_core.c if (!udc->ep_qh) { udc 2272 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep_qh_size = size; udc 2276 drivers/usb/gadget/udc/fsl_udc_core.c udc->status_req = container_of(fsl_alloc_request(NULL, GFP_KERNEL), udc 2278 drivers/usb/gadget/udc/fsl_udc_core.c if (!udc->status_req) { udc 2284 drivers/usb/gadget/udc/fsl_udc_core.c udc->status_req->req.buf = kmalloc(8, GFP_KERNEL); udc 2285 drivers/usb/gadget/udc/fsl_udc_core.c if (!udc->status_req->req.buf) { udc 2290 drivers/usb/gadget/udc/fsl_udc_core.c udc->resume_state = USB_STATE_NOTATTACHED; udc 2291 drivers/usb/gadget/udc/fsl_udc_core.c udc->usb_state = USB_STATE_POWERED; udc 2292 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep0_dir = 0; udc 2293 drivers/usb/gadget/udc/fsl_udc_core.c udc->remote_wakeup = 0; /* default to 0 on reset */ udc 2298 drivers/usb/gadget/udc/fsl_udc_core.c kfree(udc->status_req); udc 2300 drivers/usb/gadget/udc/fsl_udc_core.c kfree(udc->ep_qh); udc 2301 drivers/usb/gadget/udc/fsl_udc_core.c udc->ep_qh_size = 0; udc 2303 drivers/usb/gadget/udc/fsl_udc_core.c kfree(udc->eps); udc 2305 drivers/usb/gadget/udc/fsl_udc_core.c udc->phy_mode = 0; udc 2316 drivers/usb/gadget/udc/fsl_udc_core.c static int struct_ep_setup(struct fsl_udc *udc, unsigned char index, udc 2319 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_ep *ep = &udc->eps[index]; udc 2321 drivers/usb/gadget/udc/fsl_udc_core.c ep->udc = udc; udc 2351 drivers/usb/gadget/udc/fsl_udc_core.c list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); udc 2352 drivers/usb/gadget/udc/fsl_udc_core.c ep->gadget = &udc->gadget; udc 2353 drivers/usb/gadget/udc/fsl_udc_core.c ep->qh = &udc->ep_qh[index]; udc 2624 drivers/usb/gadget/udc/fsl_udc_core.c struct fsl_udc *udc = udc_controller; udc 2629 drivers/usb/gadget/udc/fsl_udc_core.c pr_debug("%s(): mode 0x%x stopped %d\n", __func__, mode, udc->stopped); udc 2636 drivers/usb/gadget/udc/fsl_udc_core.c if (udc->stopped) { udc 2638 drivers/usb/gadget/udc/fsl_udc_core.c udc->already_stopped = 1; udc 2651 drivers/usb/gadget/udc/fsl_udc_core.c udc->stopped = 1; udc 461 drivers/usb/gadget/udc/fsl_usb2_udc.h struct fsl_udc *udc; udc 572 drivers/usb/gadget/udc/fsl_usb2_udc.h #define ep_is_in(EP) ( (ep_index(EP) == 0) ? (EP->udc->ep0_dir == \ udc 575 drivers/usb/gadget/udc/fsl_usb2_udc.h #define get_ep_by_pipe(udc, pipe) ((pipe == 1)? &udc->eps[0]: \ udc 576 drivers/usb/gadget/udc/fsl_usb2_udc.h &udc->eps[pipe]) udc 587 drivers/usb/gadget/udc/fsl_usb2_udc.h return &ep->udc->ep_qh[(ep->udc->ep0_dir == udc 101 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc; udc 189 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(epp->udc->dev, "%s: " fmt, __func__, ## arg) udc 191 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(epp->udc->dev, "%s: " fmt, __func__, ## arg) udc 193 drivers/usb/gadget/udc/lpc32xx_udc.c dev_info(epp->udc->dev, "%s: " fmt, __func__, ## arg) udc 195 drivers/usb/gadget/udc/lpc32xx_udc.c dev_warn(epp->udc->dev, "%s:" fmt, __func__, ## arg) udc 500 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = s->private; udc 506 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 509 drivers/usb/gadget/udc/lpc32xx_udc.c udc->vbus ? "present" : "off", udc 510 drivers/usb/gadget/udc/lpc32xx_udc.c udc->enabled ? (udc->vbus ? "active" : "enabled") : udc 512 drivers/usb/gadget/udc/lpc32xx_udc.c udc->gadget.is_selfpowered ? "self" : "VBUS", udc 513 drivers/usb/gadget/udc/lpc32xx_udc.c udc->suspended ? ", suspended" : "", udc 514 drivers/usb/gadget/udc/lpc32xx_udc.c udc->driver ? udc->driver->driver.name : "(none)"); udc 516 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->enabled && udc->vbus) { udc 517 drivers/usb/gadget/udc/lpc32xx_udc.c proc_ep_show(s, &udc->ep[0]); udc 518 drivers/usb/gadget/udc/lpc32xx_udc.c list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) udc 522 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 540 drivers/usb/gadget/udc/lpc32xx_udc.c static void create_debug_file(struct lpc32xx_udc *udc) udc 542 drivers/usb/gadget/udc/lpc32xx_udc.c udc->pde = debugfs_create_file(debug_filename, 0, NULL, udc, &proc_ops); udc 545 drivers/usb/gadget/udc/lpc32xx_udc.c static void remove_debug_file(struct lpc32xx_udc *udc) udc 547 drivers/usb/gadget/udc/lpc32xx_udc.c debugfs_remove(udc->pde); udc 551 drivers/usb/gadget/udc/lpc32xx_udc.c static inline void create_debug_file(struct lpc32xx_udc *udc) {} udc 552 drivers/usb/gadget/udc/lpc32xx_udc.c static inline void remove_debug_file(struct lpc32xx_udc *udc) {} udc 556 drivers/usb/gadget/udc/lpc32xx_udc.c static void isp1301_udc_configure(struct lpc32xx_udc *udc) udc 561 drivers/usb/gadget/udc/lpc32xx_udc.c vendor = i2c_smbus_read_word_data(udc->isp1301_i2c_client, 0x00); udc 562 drivers/usb/gadget/udc/lpc32xx_udc.c product = i2c_smbus_read_word_data(udc->isp1301_i2c_client, 0x02); udc 565 drivers/usb/gadget/udc/lpc32xx_udc.c udc->atx = STOTG04; udc 571 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 576 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 578 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 584 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 588 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->atx != STOTG04) udc 590 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 594 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->board->vbus_drv_pol != 0) udc 595 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 598 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 605 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 607 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 612 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 615 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 619 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 622 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 624 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 627 drivers/usb/gadget/udc/lpc32xx_udc.c dev_info(udc->dev, "ISP1301 Vendor ID : 0x%04x\n", vendor); udc 628 drivers/usb/gadget/udc/lpc32xx_udc.c dev_info(udc->dev, "ISP1301 Product ID : 0x%04x\n", product); udc 629 drivers/usb/gadget/udc/lpc32xx_udc.c dev_info(udc->dev, "ISP1301 Version ID : 0x%04x\n", udc 630 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_read_word_data(udc->isp1301_i2c_client, 0x14)); udc 635 drivers/usb/gadget/udc/lpc32xx_udc.c static void isp1301_pullup_set(struct lpc32xx_udc *udc) udc 637 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->pullup) udc 639 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 643 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 650 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = udc 653 drivers/usb/gadget/udc/lpc32xx_udc.c isp1301_pullup_set(udc); udc 656 drivers/usb/gadget/udc/lpc32xx_udc.c static void isp1301_pullup_enable(struct lpc32xx_udc *udc, int en_pullup, udc 659 drivers/usb/gadget/udc/lpc32xx_udc.c if (en_pullup == udc->pullup) udc 662 drivers/usb/gadget/udc/lpc32xx_udc.c udc->pullup = en_pullup; udc 664 drivers/usb/gadget/udc/lpc32xx_udc.c isp1301_pullup_set(udc); udc 667 drivers/usb/gadget/udc/lpc32xx_udc.c schedule_work(&udc->pullup_job); udc 672 drivers/usb/gadget/udc/lpc32xx_udc.c static void isp1301_set_powerstate(struct lpc32xx_udc *udc, int enable) udc 675 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->atx == STOTG04) udc 681 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 686 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 692 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = udc 695 drivers/usb/gadget/udc/lpc32xx_udc.c isp1301_set_powerstate(udc, udc->poweron); udc 705 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_protocol_cmd_w(struct lpc32xx_udc *udc, u32 cmd) udc 711 drivers/usb/gadget/udc/lpc32xx_udc.c u32 tmp = readl(USBD_DEVINTST(udc->udp_baseaddr)); udc 715 drivers/usb/gadget/udc/lpc32xx_udc.c writel(USBD_CCEMPTY, USBD_DEVINTCLR(udc->udp_baseaddr)); udc 718 drivers/usb/gadget/udc/lpc32xx_udc.c writel(cmd, USBD_CMDCODE(udc->udp_baseaddr)); udc 720 drivers/usb/gadget/udc/lpc32xx_udc.c while (((readl(USBD_DEVINTST(udc->udp_baseaddr)) & udc 733 drivers/usb/gadget/udc/lpc32xx_udc.c static inline void udc_protocol_cmd_data_w(struct lpc32xx_udc *udc, u32 cmd, udc 736 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_w(udc, cmd); udc 737 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_w(udc, data); udc 742 drivers/usb/gadget/udc/lpc32xx_udc.c static u32 udc_protocol_cmd_r(struct lpc32xx_udc *udc, u32 cmd) udc 748 drivers/usb/gadget/udc/lpc32xx_udc.c USBD_DEVINTCLR(udc->udp_baseaddr)); udc 751 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_w(udc, cmd); udc 753 drivers/usb/gadget/udc/lpc32xx_udc.c while ((!(readl(USBD_DEVINTST(udc->udp_baseaddr)) & USBD_CDFULL)) udc 757 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, udc 760 drivers/usb/gadget/udc/lpc32xx_udc.c return readl(USBD_CMDDATA(udc->udp_baseaddr)); udc 769 drivers/usb/gadget/udc/lpc32xx_udc.c static inline void uda_enable_devint(struct lpc32xx_udc *udc, u32 devmask) udc 771 drivers/usb/gadget/udc/lpc32xx_udc.c udc->enabled_devints |= devmask; udc 772 drivers/usb/gadget/udc/lpc32xx_udc.c writel(udc->enabled_devints, USBD_DEVINTEN(udc->udp_baseaddr)); udc 776 drivers/usb/gadget/udc/lpc32xx_udc.c static inline void uda_disable_devint(struct lpc32xx_udc *udc, u32 mask) udc 778 drivers/usb/gadget/udc/lpc32xx_udc.c udc->enabled_devints &= ~mask; udc 779 drivers/usb/gadget/udc/lpc32xx_udc.c writel(udc->enabled_devints, USBD_DEVINTEN(udc->udp_baseaddr)); udc 783 drivers/usb/gadget/udc/lpc32xx_udc.c static inline void uda_clear_devint(struct lpc32xx_udc *udc, u32 mask) udc 785 drivers/usb/gadget/udc/lpc32xx_udc.c writel(mask, USBD_DEVINTCLR(udc->udp_baseaddr)); udc 794 drivers/usb/gadget/udc/lpc32xx_udc.c static void uda_enable_hwepint(struct lpc32xx_udc *udc, u32 hwep) udc 796 drivers/usb/gadget/udc/lpc32xx_udc.c udc->enabled_hwepints |= (1 << hwep); udc 797 drivers/usb/gadget/udc/lpc32xx_udc.c writel(udc->enabled_hwepints, USBD_EPINTEN(udc->udp_baseaddr)); udc 801 drivers/usb/gadget/udc/lpc32xx_udc.c static void uda_disable_hwepint(struct lpc32xx_udc *udc, u32 hwep) udc 803 drivers/usb/gadget/udc/lpc32xx_udc.c udc->enabled_hwepints &= ~(1 << hwep); udc 804 drivers/usb/gadget/udc/lpc32xx_udc.c writel(udc->enabled_hwepints, USBD_EPINTEN(udc->udp_baseaddr)); udc 808 drivers/usb/gadget/udc/lpc32xx_udc.c static inline void uda_clear_hwepint(struct lpc32xx_udc *udc, u32 hwep) udc 810 drivers/usb/gadget/udc/lpc32xx_udc.c writel((1 << hwep), USBD_EPINTCLR(udc->udp_baseaddr)); udc 814 drivers/usb/gadget/udc/lpc32xx_udc.c static inline void udc_ep_dma_enable(struct lpc32xx_udc *udc, u32 hwep) udc 816 drivers/usb/gadget/udc/lpc32xx_udc.c writel((1 << hwep), USBD_EPDMAEN(udc->udp_baseaddr)); udc 820 drivers/usb/gadget/udc/lpc32xx_udc.c static inline void udc_ep_dma_disable(struct lpc32xx_udc *udc, u32 hwep) udc 822 drivers/usb/gadget/udc/lpc32xx_udc.c writel((1 << hwep), USBD_EPDMADIS(udc->udp_baseaddr)); udc 833 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_realize_hwep(struct lpc32xx_udc *udc, u32 hwep, udc 838 drivers/usb/gadget/udc/lpc32xx_udc.c writel(USBD_EP_RLZED, USBD_DEVINTCLR(udc->udp_baseaddr)); udc 839 drivers/usb/gadget/udc/lpc32xx_udc.c writel(hwep, USBD_EPIND(udc->udp_baseaddr)); udc 840 drivers/usb/gadget/udc/lpc32xx_udc.c udc->realized_eps |= (1 << hwep); udc 841 drivers/usb/gadget/udc/lpc32xx_udc.c writel(udc->realized_eps, USBD_REEP(udc->udp_baseaddr)); udc 842 drivers/usb/gadget/udc/lpc32xx_udc.c writel(maxpacket, USBD_EPMAXPSIZE(udc->udp_baseaddr)); udc 845 drivers/usb/gadget/udc/lpc32xx_udc.c while ((!(readl(USBD_DEVINTST(udc->udp_baseaddr)) & udc 849 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, "EP not correctly realized in hardware\n"); udc 851 drivers/usb/gadget/udc/lpc32xx_udc.c writel(USBD_EP_RLZED, USBD_DEVINTCLR(udc->udp_baseaddr)); udc 855 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_unrealize_hwep(struct lpc32xx_udc *udc, u32 hwep) udc 857 drivers/usb/gadget/udc/lpc32xx_udc.c udc->realized_eps &= ~(1 << hwep); udc 858 drivers/usb/gadget/udc/lpc32xx_udc.c writel(udc->realized_eps, USBD_REEP(udc->udp_baseaddr)); udc 867 drivers/usb/gadget/udc/lpc32xx_udc.c static u32 udc_selep_clrint(struct lpc32xx_udc *udc, u32 hwep) udc 869 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_w(udc, CMD_SEL_EP_CLRI(hwep)); udc 870 drivers/usb/gadget/udc/lpc32xx_udc.c return udc_protocol_cmd_r(udc, DAT_SEL_EP_CLRI(hwep)); udc 874 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_disable_hwep(struct lpc32xx_udc *udc, u32 hwep) udc 876 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_SET_EP_STAT(hwep), udc 881 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_stall_hwep(struct lpc32xx_udc *udc, u32 hwep) udc 883 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_SET_EP_STAT(hwep), udc 888 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_clrstall_hwep(struct lpc32xx_udc *udc, u32 hwep) udc 890 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_SET_EP_STAT(hwep), udc 895 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_select_hwep(struct lpc32xx_udc *udc, u32 hwep) udc 897 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_w(udc, CMD_SEL_EP(hwep)); udc 906 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_clr_buffer_hwep(struct lpc32xx_udc *udc, u32 hwep) udc 908 drivers/usb/gadget/udc/lpc32xx_udc.c udc_select_hwep(udc, hwep); udc 909 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_w(udc, CMD_CLR_BUF); udc 913 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_val_buffer_hwep(struct lpc32xx_udc *udc, u32 hwep) udc 915 drivers/usb/gadget/udc/lpc32xx_udc.c udc_select_hwep(udc, hwep); udc 916 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_w(udc, CMD_VALID_BUF); udc 919 drivers/usb/gadget/udc/lpc32xx_udc.c static inline u32 udc_clearep_getsts(struct lpc32xx_udc *udc, u32 hwep) udc 922 drivers/usb/gadget/udc/lpc32xx_udc.c uda_clear_hwepint(udc, hwep); udc 923 drivers/usb/gadget/udc/lpc32xx_udc.c return udc_selep_clrint(udc, hwep); udc 932 drivers/usb/gadget/udc/lpc32xx_udc.c static struct lpc32xx_usbd_dd_gad *udc_dd_alloc(struct lpc32xx_udc *udc) udc 937 drivers/usb/gadget/udc/lpc32xx_udc.c dd = dma_pool_alloc(udc->dd_cache, GFP_ATOMIC | GFP_DMA, &dma); udc 945 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_dd_free(struct lpc32xx_udc *udc, struct lpc32xx_usbd_dd_gad *dd) udc 947 drivers/usb/gadget/udc/lpc32xx_udc.c dma_pool_free(udc->dd_cache, dd, dd->this_dma); udc 958 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_clk_set(struct lpc32xx_udc *udc, int enable) udc 961 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->clocked) udc 964 drivers/usb/gadget/udc/lpc32xx_udc.c udc->clocked = 1; udc 965 drivers/usb/gadget/udc/lpc32xx_udc.c clk_prepare_enable(udc->usb_slv_clk); udc 967 drivers/usb/gadget/udc/lpc32xx_udc.c if (!udc->clocked) udc 970 drivers/usb/gadget/udc/lpc32xx_udc.c udc->clocked = 0; udc 971 drivers/usb/gadget/udc/lpc32xx_udc.c clk_disable_unprepare(udc->usb_slv_clk); udc 976 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_set_address(struct lpc32xx_udc *udc, u32 addr) udc 980 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_SET_ADDR, udc 987 drivers/usb/gadget/udc/lpc32xx_udc.c static int udc_ep_in_req_dma(struct lpc32xx_udc *udc, struct lpc32xx_ep *ep) udc 998 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udca_v_base[hwep] = req->dd_desc_ptr->this_dma; udc 1001 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_dma_enable(udc, hwep); udc 1013 drivers/usb/gadget/udc/lpc32xx_udc.c static int udc_ep_out_req_dma(struct lpc32xx_udc *udc, struct lpc32xx_ep *ep) udc 1024 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udca_v_base[hwep] = req->dd_desc_ptr->this_dma; udc 1027 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_dma_enable(udc, hwep); udc 1031 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_disable(struct lpc32xx_udc *udc) udc 1036 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_CFG_DEV, DAT_WR_BYTE(0)); udc 1037 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_SET_DEV_STAT, DAT_WR_BYTE(0)); udc 1040 drivers/usb/gadget/udc/lpc32xx_udc.c uda_disable_devint(udc, 0x3FF); udc 1044 drivers/usb/gadget/udc/lpc32xx_udc.c uda_disable_hwepint(udc, i); udc 1045 drivers/usb/gadget/udc/lpc32xx_udc.c uda_clear_hwepint(udc, i); udc 1046 drivers/usb/gadget/udc/lpc32xx_udc.c udc_disable_hwep(udc, i); udc 1047 drivers/usb/gadget/udc/lpc32xx_udc.c udc_unrealize_hwep(udc, i); udc 1048 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udca_v_base[i] = 0; udc 1051 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_dma_disable(udc, i); udc 1052 drivers/usb/gadget/udc/lpc32xx_udc.c writel((1 << i), USBD_EOTINTCLR(udc->udp_baseaddr)); udc 1053 drivers/usb/gadget/udc/lpc32xx_udc.c writel((1 << i), USBD_NDDRTINTCLR(udc->udp_baseaddr)); udc 1054 drivers/usb/gadget/udc/lpc32xx_udc.c writel((1 << i), USBD_SYSERRTINTCLR(udc->udp_baseaddr)); udc 1055 drivers/usb/gadget/udc/lpc32xx_udc.c writel((1 << i), USBD_DMARCLR(udc->udp_baseaddr)); udc 1059 drivers/usb/gadget/udc/lpc32xx_udc.c writel(0, USBD_DMAINTEN(udc->udp_baseaddr)); udc 1061 drivers/usb/gadget/udc/lpc32xx_udc.c writel(0, USBD_UDCAH(udc->udp_baseaddr)); udc 1064 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_enable(struct lpc32xx_udc *udc) udc 1067 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_ep *ep = &udc->ep[0]; udc 1070 drivers/usb/gadget/udc/lpc32xx_udc.c udc_disable(udc); udc 1073 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_SET_DEV_STAT, DAT_WR_BYTE(DEV_CON)); udc 1076 drivers/usb/gadget/udc/lpc32xx_udc.c writel(USBD_EP_FAST, USBD_DEVINTPRI(udc->udp_baseaddr)); udc 1077 drivers/usb/gadget/udc/lpc32xx_udc.c writel(0xFFFF, USBD_EPINTPRI(udc->udp_baseaddr)); udc 1080 drivers/usb/gadget/udc/lpc32xx_udc.c writel(0x3FF, USBD_DEVINTCLR(udc->udp_baseaddr)); udc 1083 drivers/usb/gadget/udc/lpc32xx_udc.c writel(udc->udca_p_base, USBD_UDCAH(udc->udp_baseaddr)); udc 1087 drivers/usb/gadget/udc/lpc32xx_udc.c udc_realize_hwep(udc, i, ep->ep.maxpacket); udc 1088 drivers/usb/gadget/udc/lpc32xx_udc.c uda_enable_hwepint(udc, i); udc 1089 drivers/usb/gadget/udc/lpc32xx_udc.c udc_select_hwep(udc, i); udc 1090 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clrstall_hwep(udc, i); udc 1091 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clr_buffer_hwep(udc, i); udc 1095 drivers/usb/gadget/udc/lpc32xx_udc.c uda_clear_devint(udc, (USBD_ERR_INT | USBD_DEV_STAT | USBD_EP_SLOW | udc 1097 drivers/usb/gadget/udc/lpc32xx_udc.c uda_enable_devint(udc, (USBD_ERR_INT | USBD_DEV_STAT | USBD_EP_SLOW | udc 1102 drivers/usb/gadget/udc/lpc32xx_udc.c udc_set_address(udc, 0); udc 1103 drivers/usb/gadget/udc/lpc32xx_udc.c udc_set_address(udc, 0); udc 1107 drivers/usb/gadget/udc/lpc32xx_udc.c USBD_DMAINTEN(udc->udp_baseaddr)); udc 1109 drivers/usb/gadget/udc/lpc32xx_udc.c udc->dev_status = 0; udc 1118 drivers/usb/gadget/udc/lpc32xx_udc.c static void uda_power_event(struct lpc32xx_udc *udc, u32 conn) udc 1121 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->board->conn_chgb != NULL) udc 1122 drivers/usb/gadget/udc/lpc32xx_udc.c udc->board->conn_chgb(conn); udc 1126 drivers/usb/gadget/udc/lpc32xx_udc.c static void uda_resm_susp_event(struct lpc32xx_udc *udc, u32 conn) udc 1129 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->board->susp_chgb != NULL) udc 1130 drivers/usb/gadget/udc/lpc32xx_udc.c udc->board->susp_chgb(conn); udc 1133 drivers/usb/gadget/udc/lpc32xx_udc.c udc->suspended = 0; udc 1135 drivers/usb/gadget/udc/lpc32xx_udc.c udc->suspended = 1; udc 1139 drivers/usb/gadget/udc/lpc32xx_udc.c static void uda_remwkp_cgh(struct lpc32xx_udc *udc) udc 1141 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->board->rmwk_chgb != NULL) udc 1142 drivers/usb/gadget/udc/lpc32xx_udc.c udc->board->rmwk_chgb(udc->dev_status & udc 1147 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_pop_fifo(struct lpc32xx_udc *udc, u8 *data, u32 bytes) udc 1161 drivers/usb/gadget/udc/lpc32xx_udc.c *p32++ = readl(USBD_RXDATA(udc->udp_baseaddr)); udc 1166 drivers/usb/gadget/udc/lpc32xx_udc.c tmp = readl(USBD_RXDATA(udc->udp_baseaddr)); udc 1177 drivers/usb/gadget/udc/lpc32xx_udc.c tmp = readl(USBD_RXDATA(udc->udp_baseaddr)); udc 1194 drivers/usb/gadget/udc/lpc32xx_udc.c tmp = readl(USBD_RXDATA(udc->udp_baseaddr)); udc 1202 drivers/usb/gadget/udc/lpc32xx_udc.c tmp = readl(USBD_RXDATA(udc->udp_baseaddr)); udc 1214 drivers/usb/gadget/udc/lpc32xx_udc.c static u32 udc_read_hwep(struct lpc32xx_udc *udc, u32 hwep, u32 *data, udc 1222 drivers/usb/gadget/udc/lpc32xx_udc.c writel(hwrep, USBD_CTRL(udc->udp_baseaddr)); udc 1225 drivers/usb/gadget/udc/lpc32xx_udc.c while ((((tmpv = readl(USBD_RXPLEN(udc->udp_baseaddr))) & udc 1229 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, "No packet ready on FIFO EP read\n"); udc 1237 drivers/usb/gadget/udc/lpc32xx_udc.c udc_pop_fifo(udc, (u8 *) data, tmp); udc 1239 drivers/usb/gadget/udc/lpc32xx_udc.c writel(((hwep & 0x1E) << 1), USBD_CTRL(udc->udp_baseaddr)); udc 1242 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clr_buffer_hwep(udc, hwep); udc 1248 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_stuff_fifo(struct lpc32xx_udc *udc, u8 *data, u32 bytes) udc 1262 drivers/usb/gadget/udc/lpc32xx_udc.c writel(*p32++, USBD_TXDATA(udc->udp_baseaddr)); udc 1271 drivers/usb/gadget/udc/lpc32xx_udc.c writel(tmp, USBD_TXDATA(udc->udp_baseaddr)); udc 1287 drivers/usb/gadget/udc/lpc32xx_udc.c writel(tmp, USBD_TXDATA(udc->udp_baseaddr)); udc 1299 drivers/usb/gadget/udc/lpc32xx_udc.c writel(tmp, USBD_TXDATA(udc->udp_baseaddr)); udc 1309 drivers/usb/gadget/udc/lpc32xx_udc.c writel(tmp, USBD_TXDATA(udc->udp_baseaddr)); udc 1318 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_write_hwep(struct lpc32xx_udc *udc, u32 hwep, u32 *data, udc 1327 drivers/usb/gadget/udc/lpc32xx_udc.c writel(hwwep, USBD_CTRL(udc->udp_baseaddr)); udc 1329 drivers/usb/gadget/udc/lpc32xx_udc.c writel(bytes, USBD_TXPLEN(udc->udp_baseaddr)); udc 1333 drivers/usb/gadget/udc/lpc32xx_udc.c writel(0, USBD_TXDATA(udc->udp_baseaddr)); udc 1335 drivers/usb/gadget/udc/lpc32xx_udc.c udc_stuff_fifo(udc, (u8 *) data, bytes); udc 1337 drivers/usb/gadget/udc/lpc32xx_udc.c writel(((hwep & 0x1E) << 1), USBD_CTRL(udc->udp_baseaddr)); udc 1339 drivers/usb/gadget/udc/lpc32xx_udc.c udc_val_buffer_hwep(udc, hwep); udc 1344 drivers/usb/gadget/udc/lpc32xx_udc.c static void uda_usb_reset(struct lpc32xx_udc *udc) udc 1348 drivers/usb/gadget/udc/lpc32xx_udc.c udc_enable(udc); udc 1349 drivers/usb/gadget/udc/lpc32xx_udc.c udc->gadget.speed = USB_SPEED_FULL; udc 1352 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_ep *ep = &udc->ep[i]; udc 1358 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_ep0_send_zlp(struct lpc32xx_udc *udc) udc 1360 drivers/usb/gadget/udc/lpc32xx_udc.c udc_write_hwep(udc, EP_IN, NULL, 0); udc 1364 drivers/usb/gadget/udc/lpc32xx_udc.c static u16 udc_get_current_frame(struct lpc32xx_udc *udc) udc 1368 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_w(udc, CMD_RD_FRAME); udc 1369 drivers/usb/gadget/udc/lpc32xx_udc.c flo = (u16) udc_protocol_cmd_r(udc, DAT_RD_FRAME); udc 1370 drivers/usb/gadget/udc/lpc32xx_udc.c fhi = (u16) udc_protocol_cmd_r(udc, DAT_RD_FRAME); udc 1376 drivers/usb/gadget/udc/lpc32xx_udc.c static inline void udc_set_device_configured(struct lpc32xx_udc *udc) udc 1378 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_CFG_DEV, DAT_WR_BYTE(CONF_DVICE)); udc 1382 drivers/usb/gadget/udc/lpc32xx_udc.c static inline void udc_set_device_unconfigured(struct lpc32xx_udc *udc) udc 1384 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_CFG_DEV, DAT_WR_BYTE(0)); udc 1388 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_reinit(struct lpc32xx_udc *udc) udc 1392 drivers/usb/gadget/udc/lpc32xx_udc.c INIT_LIST_HEAD(&udc->gadget.ep_list); udc 1393 drivers/usb/gadget/udc/lpc32xx_udc.c INIT_LIST_HEAD(&udc->gadget.ep0->ep_list); udc 1396 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_ep *ep = &udc->ep[i]; udc 1399 drivers/usb/gadget/udc/lpc32xx_udc.c list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); udc 1405 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = WAIT_FOR_SETUP; udc 1411 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = ep->udc; udc 1420 drivers/usb/gadget/udc/lpc32xx_udc.c usb_gadget_unmap_request(&udc->gadget, &req->req, ep->is_in); udc 1423 drivers/usb/gadget/udc/lpc32xx_udc.c udc_dd_free(udc, req->dd_desc_ptr); udc 1430 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock(&udc->lock); udc 1432 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock(&udc->lock); udc 1446 drivers/usb/gadget/udc/lpc32xx_udc.c uda_disable_hwepint(ep->udc, ep->hwep_num); udc 1447 drivers/usb/gadget/udc/lpc32xx_udc.c udc_disable_hwep(ep->udc, ep->hwep_num); udc 1452 drivers/usb/gadget/udc/lpc32xx_udc.c static int udc_ep0_in_req(struct lpc32xx_udc *udc) udc 1455 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_ep *ep0 = &udc->ep[0]; udc 1468 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep0_send_zlp(udc); udc 1475 drivers/usb/gadget/udc/lpc32xx_udc.c udc_write_hwep(udc, EP_IN, (req->req.buf + req->req.actual), ts); udc 1484 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = WAIT_FOR_SETUP; udc 1490 drivers/usb/gadget/udc/lpc32xx_udc.c static int udc_ep0_out_req(struct lpc32xx_udc *udc) udc 1493 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_ep *ep0 = &udc->ep[0]; udc 1506 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = WAIT_FOR_SETUP; udc 1517 drivers/usb/gadget/udc/lpc32xx_udc.c tr = udc_read_hwep(udc, EP_OUT, req->req.buf + req->req.actual, udc 1524 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = WAIT_FOR_SETUP; udc 1533 drivers/usb/gadget/udc/lpc32xx_udc.c static void stop_activity(struct lpc32xx_udc *udc) udc 1535 drivers/usb/gadget/udc/lpc32xx_udc.c struct usb_gadget_driver *driver = udc->driver; udc 1538 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->gadget.speed == USB_SPEED_UNKNOWN) udc 1541 drivers/usb/gadget/udc/lpc32xx_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1542 drivers/usb/gadget/udc/lpc32xx_udc.c udc->suspended = 0; udc 1545 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_ep *ep = &udc->ep[i]; udc 1549 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock(&udc->lock); udc 1550 drivers/usb/gadget/udc/lpc32xx_udc.c driver->disconnect(&udc->gadget); udc 1551 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock(&udc->lock); udc 1554 drivers/usb/gadget/udc/lpc32xx_udc.c isp1301_pullup_enable(udc, 0, 0); udc 1555 drivers/usb/gadget/udc/lpc32xx_udc.c udc_disable(udc); udc 1556 drivers/usb/gadget/udc/lpc32xx_udc.c udc_reinit(udc); udc 1563 drivers/usb/gadget/udc/lpc32xx_udc.c static void pullup(struct lpc32xx_udc *udc, int is_on) udc 1565 drivers/usb/gadget/udc/lpc32xx_udc.c if (!udc->clocked) udc 1568 drivers/usb/gadget/udc/lpc32xx_udc.c if (!udc->enabled || !udc->vbus) udc 1571 drivers/usb/gadget/udc/lpc32xx_udc.c if (is_on != udc->pullup) udc 1572 drivers/usb/gadget/udc/lpc32xx_udc.c isp1301_pullup_enable(udc, is_on, 0); udc 1579 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = ep->udc; udc 1584 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1589 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_dma_disable(udc, ep->hwep_num); udc 1590 drivers/usb/gadget/udc/lpc32xx_udc.c writel(1 << ep->hwep_num, USBD_EOTINTCLR(udc->udp_baseaddr)); udc 1591 drivers/usb/gadget/udc/lpc32xx_udc.c writel(1 << ep->hwep_num, USBD_NDDRTINTCLR(udc->udp_baseaddr)); udc 1592 drivers/usb/gadget/udc/lpc32xx_udc.c writel(1 << ep->hwep_num, USBD_SYSERRTINTCLR(udc->udp_baseaddr)); udc 1593 drivers/usb/gadget/udc/lpc32xx_udc.c writel(1 << ep->hwep_num, USBD_DMARCLR(udc->udp_baseaddr)); udc 1596 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udca_v_base[ep->hwep_num] = 0; udc 1599 drivers/usb/gadget/udc/lpc32xx_udc.c uda_clear_hwepint(udc, ep->hwep_num); udc 1600 drivers/usb/gadget/udc/lpc32xx_udc.c udc_unrealize_hwep(udc, ep->hwep_num); udc 1604 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1606 drivers/usb/gadget/udc/lpc32xx_udc.c atomic_dec(&udc->enabled_ep_cnt); udc 1607 drivers/usb/gadget/udc/lpc32xx_udc.c wake_up(&udc->ep_disable_wait_queue); udc 1617 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = ep->udc; udc 1625 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, "bad ep or descriptor\n"); udc 1630 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, "bad ep descriptor's packet size\n"); udc 1636 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, "Can't re-enable EP0!!!\n"); udc 1641 drivers/usb/gadget/udc/lpc32xx_udc.c if ((!udc->driver) || (udc->gadget.speed == USB_SPEED_UNKNOWN)) { udc 1642 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, "bogus device state\n"); udc 1653 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, udc 1668 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, udc 1677 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1695 drivers/usb/gadget/udc/lpc32xx_udc.c udc_realize_hwep(udc, ep->hwep_num, ep->ep.maxpacket); udc 1696 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clr_buffer_hwep(udc, ep->hwep_num); udc 1697 drivers/usb/gadget/udc/lpc32xx_udc.c uda_disable_hwepint(udc, ep->hwep_num); udc 1698 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clrstall_hwep(udc, ep->hwep_num); udc 1701 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_dma_disable(udc, ep->hwep_num); udc 1702 drivers/usb/gadget/udc/lpc32xx_udc.c writel(1 << ep->hwep_num, USBD_EOTINTCLR(udc->udp_baseaddr)); udc 1703 drivers/usb/gadget/udc/lpc32xx_udc.c writel(1 << ep->hwep_num, USBD_NDDRTINTCLR(udc->udp_baseaddr)); udc 1704 drivers/usb/gadget/udc/lpc32xx_udc.c writel(1 << ep->hwep_num, USBD_SYSERRTINTCLR(udc->udp_baseaddr)); udc 1705 drivers/usb/gadget/udc/lpc32xx_udc.c writel(1 << ep->hwep_num, USBD_DMARCLR(udc->udp_baseaddr)); udc 1707 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1709 drivers/usb/gadget/udc/lpc32xx_udc.c atomic_inc(&udc->enabled_ep_cnt); udc 1750 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc; udc 1761 drivers/usb/gadget/udc/lpc32xx_udc.c udc = ep->udc; udc 1763 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->gadget.speed == USB_SPEED_UNKNOWN) udc 1769 drivers/usb/gadget/udc/lpc32xx_udc.c status = usb_gadget_map_request(&udc->gadget, _req, ep->is_in); udc 1774 drivers/usb/gadget/udc/lpc32xx_udc.c dd = udc_dd_alloc(udc); udc 1804 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1818 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = DATA_IN; udc 1819 drivers/usb/gadget/udc/lpc32xx_udc.c status = udc_ep0_in_req(udc); udc 1822 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = DATA_OUT; udc 1823 drivers/usb/gadget/udc/lpc32xx_udc.c status = udc_ep0_out_req(udc); udc 1828 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_in_req_dma(udc, ep); udc 1832 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_out_req_dma(udc, ep); udc 1836 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1852 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock_irqsave(&ep->udc->lock, flags); udc 1860 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 1866 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 1875 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = ep->udc; udc 1885 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1889 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_SET_EP_STAT(ep->hwep_num), udc 1894 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_SET_EP_STAT(ep->hwep_num), udc 1898 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1908 drivers/usb/gadget/udc/lpc32xx_udc.c if (!_ep || !ep->udc) udc 1928 drivers/usb/gadget/udc/lpc32xx_udc.c void udc_send_in_zlp(struct lpc32xx_udc *udc, struct lpc32xx_ep *ep) udc 1931 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clearep_getsts(udc, ep->hwep_num); udc 1934 drivers/usb/gadget/udc/lpc32xx_udc.c udc_write_hwep(udc, ep->hwep_num, NULL, 0); udc 1942 drivers/usb/gadget/udc/lpc32xx_udc.c void udc_handle_eps(struct lpc32xx_udc *udc, struct lpc32xx_ep *ep) udc 1950 drivers/usb/gadget/udc/lpc32xx_udc.c uda_clear_hwepint(udc, ep->hwep_num); udc 1953 drivers/usb/gadget/udc/lpc32xx_udc.c if (!(udc->enabled_hwepints & (1 << ep->hwep_num))) udc 1957 drivers/usb/gadget/udc/lpc32xx_udc.c epstatus = udc_clearep_getsts(udc, ep->hwep_num); udc 1967 drivers/usb/gadget/udc/lpc32xx_udc.c udc_send_in_zlp(udc, ep); udc 1968 drivers/usb/gadget/udc/lpc32xx_udc.c uda_disable_hwepint(udc, ep->hwep_num); udc 1980 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_in_req_dma(udc, ep); udc 1982 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_out_req_dma(udc, ep); udc 1990 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_handle_dma_ep(struct lpc32xx_udc *udc, struct lpc32xx_ep *ep) udc 2012 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_dma_disable(udc, ep->hwep_num); udc 2013 drivers/usb/gadget/udc/lpc32xx_udc.c writel((1 << ep->hwep_num), USBD_EOTINTCLR(udc->udp_baseaddr)); udc 2014 drivers/usb/gadget/udc/lpc32xx_udc.c writel((1 << ep->hwep_num), USBD_NDDRTINTCLR(udc->udp_baseaddr)); udc 2017 drivers/usb/gadget/udc/lpc32xx_udc.c if (readl(USBD_SYSERRTINTST(udc->udp_baseaddr)) & udc 2020 drivers/usb/gadget/udc/lpc32xx_udc.c USBD_SYSERRTINTCLR(udc->udp_baseaddr)); udc 2083 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc_clearep_getsts(udc, ep->hwep_num) & EP_SEL_F) { udc 2084 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clearep_getsts(udc, ep->hwep_num); udc 2085 drivers/usb/gadget/udc/lpc32xx_udc.c uda_enable_hwepint(udc, ep->hwep_num); udc 2086 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clearep_getsts(udc, ep->hwep_num); udc 2091 drivers/usb/gadget/udc/lpc32xx_udc.c udc_send_in_zlp(udc, ep); udc 2098 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clearep_getsts(udc, ep->hwep_num); udc 2101 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_in_req_dma(udc, ep); udc 2103 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep_out_req_dma(udc, ep); udc 2114 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_handle_dev(struct lpc32xx_udc *udc) udc 2118 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_w(udc, CMD_GET_DEV_STAT); udc 2119 drivers/usb/gadget/udc/lpc32xx_udc.c tmp = udc_protocol_cmd_r(udc, DAT_GET_DEV_STAT); udc 2122 drivers/usb/gadget/udc/lpc32xx_udc.c uda_usb_reset(udc); udc 2124 drivers/usb/gadget/udc/lpc32xx_udc.c uda_power_event(udc, (tmp & DEV_CON)); udc 2127 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->vbus == 0) udc 2128 drivers/usb/gadget/udc/lpc32xx_udc.c stop_activity(udc); udc 2129 drivers/usb/gadget/udc/lpc32xx_udc.c else if ((udc->gadget.speed != USB_SPEED_UNKNOWN) && udc 2130 drivers/usb/gadget/udc/lpc32xx_udc.c udc->driver) { udc 2132 drivers/usb/gadget/udc/lpc32xx_udc.c udc->poweron = 0; udc 2133 drivers/usb/gadget/udc/lpc32xx_udc.c schedule_work(&udc->pullup_job); udc 2134 drivers/usb/gadget/udc/lpc32xx_udc.c uda_resm_susp_event(udc, 1); udc 2136 drivers/usb/gadget/udc/lpc32xx_udc.c } else if ((udc->gadget.speed != USB_SPEED_UNKNOWN) && udc 2137 drivers/usb/gadget/udc/lpc32xx_udc.c udc->driver && udc->vbus) { udc 2138 drivers/usb/gadget/udc/lpc32xx_udc.c uda_resm_susp_event(udc, 0); udc 2140 drivers/usb/gadget/udc/lpc32xx_udc.c udc->poweron = 1; udc 2141 drivers/usb/gadget/udc/lpc32xx_udc.c schedule_work(&udc->pullup_job); udc 2146 drivers/usb/gadget/udc/lpc32xx_udc.c static int udc_get_status(struct lpc32xx_udc *udc, u16 reqtype, u16 wIndex) udc 2156 drivers/usb/gadget/udc/lpc32xx_udc.c ep0buff = udc->gadget.is_selfpowered; udc 2157 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->dev_status & (1 << USB_DEVICE_REMOTE_WAKEUP)) udc 2163 drivers/usb/gadget/udc/lpc32xx_udc.c ep = &udc->ep[tmp]; udc 2174 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_w(udc, CMD_SEL_EP(ep->hwep_num)); udc 2175 drivers/usb/gadget/udc/lpc32xx_udc.c tmp = udc_protocol_cmd_r(udc, DAT_SEL_EP(ep->hwep_num)); udc 2188 drivers/usb/gadget/udc/lpc32xx_udc.c udc_write_hwep(udc, EP_IN, &ep0buff, 2); udc 2193 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_handle_ep0_setup(struct lpc32xx_udc *udc) udc 2195 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_ep *ep, *ep0 = &udc->ep[0]; udc 2204 drivers/usb/gadget/udc/lpc32xx_udc.c bytes = udc_read_hwep(udc, EP_OUT, (u32 *) &ctrlpkt, 8); udc 2234 drivers/usb/gadget/udc/lpc32xx_udc.c udc->dev_status &= udc 2237 drivers/usb/gadget/udc/lpc32xx_udc.c udc->dev_status |= udc 2239 drivers/usb/gadget/udc/lpc32xx_udc.c uda_remwkp_cgh(udc); udc 2249 drivers/usb/gadget/udc/lpc32xx_udc.c ep = &udc->ep[tmp]; udc 2255 drivers/usb/gadget/udc/lpc32xx_udc.c udc_stall_hwep(udc, tmp); udc 2257 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clrstall_hwep(udc, tmp); udc 2268 drivers/usb/gadget/udc/lpc32xx_udc.c udc_set_address(udc, wValue); udc 2274 drivers/usb/gadget/udc/lpc32xx_udc.c udc_get_status(udc, reqtype, wIndex); udc 2281 drivers/usb/gadget/udc/lpc32xx_udc.c if (likely(udc->driver)) { udc 2284 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock(&udc->lock); udc 2285 drivers/usb/gadget/udc/lpc32xx_udc.c i = udc->driver->setup(&udc->gadget, &ctrlpkt); udc 2287 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock(&udc->lock); udc 2292 drivers/usb/gadget/udc/lpc32xx_udc.c udc_set_device_configured(udc); udc 2294 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_SET_MODE, udc 2299 drivers/usb/gadget/udc/lpc32xx_udc.c udc_set_device_unconfigured(udc); udc 2302 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_data_w(udc, CMD_SET_MODE, udc 2309 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, udc 2312 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = WAIT_FOR_SETUP; udc 2318 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep0_send_zlp(udc); /* ZLP IN packet on data phase */ udc 2323 drivers/usb/gadget/udc/lpc32xx_udc.c udc_stall_hwep(udc, EP_IN); udc 2327 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep0_send_zlp(udc); udc 2332 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_handle_ep0_in(struct lpc32xx_udc *udc) udc 2334 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_ep *ep0 = &udc->ep[0]; udc 2338 drivers/usb/gadget/udc/lpc32xx_udc.c epstatus = udc_clearep_getsts(udc, EP_IN); udc 2346 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clrstall_hwep(udc, EP_IN); udc 2348 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = WAIT_FOR_SETUP; udc 2355 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->ep0state == DATA_IN) udc 2356 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep0_in_req(udc); udc 2360 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = WAIT_FOR_SETUP; udc 2366 drivers/usb/gadget/udc/lpc32xx_udc.c static void udc_handle_ep0_out(struct lpc32xx_udc *udc) udc 2368 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_ep *ep0 = &udc->ep[0]; udc 2372 drivers/usb/gadget/udc/lpc32xx_udc.c epstatus = udc_clearep_getsts(udc, EP_OUT); udc 2381 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clrstall_hwep(udc, EP_OUT); udc 2383 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = WAIT_FOR_SETUP; udc 2393 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = WAIT_FOR_SETUP; udc 2399 drivers/usb/gadget/udc/lpc32xx_udc.c switch (udc->ep0state) { udc 2401 drivers/usb/gadget/udc/lpc32xx_udc.c udc_handle_ep0_setup(udc); udc 2405 drivers/usb/gadget/udc/lpc32xx_udc.c udc_ep0_out_req(udc); udc 2411 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep0state = WAIT_FOR_SETUP; udc 2420 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = to_udc(gadget); udc 2422 drivers/usb/gadget/udc/lpc32xx_udc.c if (!udc->clocked) udc 2425 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2427 drivers/usb/gadget/udc/lpc32xx_udc.c frame = (int) udc_get_current_frame(udc); udc 2429 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2453 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = to_udc(gadget); udc 2455 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2458 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->driver) { udc 2459 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clk_set(udc, 1); udc 2460 drivers/usb/gadget/udc/lpc32xx_udc.c udc_enable(udc); udc 2461 drivers/usb/gadget/udc/lpc32xx_udc.c pullup(udc, is_active); udc 2463 drivers/usb/gadget/udc/lpc32xx_udc.c stop_activity(udc); udc 2464 drivers/usb/gadget/udc/lpc32xx_udc.c pullup(udc, 0); udc 2466 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2472 drivers/usb/gadget/udc/lpc32xx_udc.c if (atomic_read(&udc->enabled_ep_cnt)) udc 2473 drivers/usb/gadget/udc/lpc32xx_udc.c wait_event_interruptible(udc->ep_disable_wait_queue, udc 2474 drivers/usb/gadget/udc/lpc32xx_udc.c (atomic_read(&udc->enabled_ep_cnt) == 0)); udc 2476 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2478 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clk_set(udc, 0); udc 2481 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2489 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = to_udc(gadget); udc 2492 drivers/usb/gadget/udc/lpc32xx_udc.c pullup(udc, is_on); udc 2738 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = _udc; udc 2740 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock(&udc->lock); udc 2743 drivers/usb/gadget/udc/lpc32xx_udc.c devstat = readl(USBD_DEVINTST(udc->udp_baseaddr)); udc 2746 drivers/usb/gadget/udc/lpc32xx_udc.c writel(devstat, USBD_DEVINTCLR(udc->udp_baseaddr)); udc 2747 drivers/usb/gadget/udc/lpc32xx_udc.c devstat = devstat & udc->enabled_devints; udc 2751 drivers/usb/gadget/udc/lpc32xx_udc.c udc_handle_dev(udc); udc 2763 drivers/usb/gadget/udc/lpc32xx_udc.c udc_protocol_cmd_w(udc, CMD_RD_ERR_STAT); udc 2764 drivers/usb/gadget/udc/lpc32xx_udc.c tmp = udc_protocol_cmd_r(udc, DAT_RD_ERR_STAT); udc 2765 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, "Device error (0x%x)!\n", tmp); udc 2768 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock(&udc->lock); udc 2777 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = _udc; udc 2779 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock(&udc->lock); udc 2782 drivers/usb/gadget/udc/lpc32xx_udc.c writel(USBD_EP_FAST, USBD_DEVINTCLR(udc->udp_baseaddr)); udc 2785 drivers/usb/gadget/udc/lpc32xx_udc.c tmp = readl(USBD_EPINTST(udc->udp_baseaddr)); udc 2791 drivers/usb/gadget/udc/lpc32xx_udc.c udc_handle_ep0_in(udc); udc 2795 drivers/usb/gadget/udc/lpc32xx_udc.c udc_handle_ep0_out(udc); udc 2804 drivers/usb/gadget/udc/lpc32xx_udc.c if (tmp & (1 << udc->ep[i].hwep_num)) udc 2805 drivers/usb/gadget/udc/lpc32xx_udc.c udc_handle_eps(udc, &udc->ep[i]); udc 2809 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock(&udc->lock); udc 2816 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = _udc; udc 2821 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock(&udc->lock); udc 2824 drivers/usb/gadget/udc/lpc32xx_udc.c tmp = readl(USBD_EOTINTST(udc->udp_baseaddr)) | udc 2825 drivers/usb/gadget/udc/lpc32xx_udc.c (readl(USBD_EPDMAST(udc->udp_baseaddr)) & udc 2826 drivers/usb/gadget/udc/lpc32xx_udc.c readl(USBD_NDDRTINTST(udc->udp_baseaddr))) | udc 2827 drivers/usb/gadget/udc/lpc32xx_udc.c readl(USBD_SYSERRTINTST(udc->udp_baseaddr)); udc 2829 drivers/usb/gadget/udc/lpc32xx_udc.c if (tmp & (1 << udc->ep[i].hwep_num)) udc 2830 drivers/usb/gadget/udc/lpc32xx_udc.c udc_handle_dma_ep(udc, &udc->ep[i]); udc 2833 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock(&udc->lock); udc 2843 drivers/usb/gadget/udc/lpc32xx_udc.c static void vbus_work(struct lpc32xx_udc *udc) udc 2847 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->enabled != 0) { udc 2849 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 2856 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 2861 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 2866 drivers/usb/gadget/udc/lpc32xx_udc.c value = i2c_smbus_read_byte_data(udc->isp1301_i2c_client, udc 2871 drivers/usb/gadget/udc/lpc32xx_udc.c udc->vbus = 1; udc 2873 drivers/usb/gadget/udc/lpc32xx_udc.c udc->vbus = 0; udc 2876 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->last_vbus != udc->vbus) { udc 2877 drivers/usb/gadget/udc/lpc32xx_udc.c udc->last_vbus = udc->vbus; udc 2878 drivers/usb/gadget/udc/lpc32xx_udc.c lpc32xx_vbus_session(&udc->gadget, udc->vbus); udc 2885 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = _udc; udc 2887 drivers/usb/gadget/udc/lpc32xx_udc.c vbus_work(udc); udc 2895 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = to_udc(gadget); udc 2898 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "bad parameter.\n"); udc 2902 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->driver) { udc 2903 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "UDC already has a gadget driver\n"); udc 2907 drivers/usb/gadget/udc/lpc32xx_udc.c udc->driver = driver; udc 2908 drivers/usb/gadget/udc/lpc32xx_udc.c udc->gadget.dev.of_node = udc->dev->of_node; udc 2909 drivers/usb/gadget/udc/lpc32xx_udc.c udc->enabled = 1; udc 2910 drivers/usb/gadget/udc/lpc32xx_udc.c udc->gadget.is_selfpowered = 1; udc 2911 drivers/usb/gadget/udc/lpc32xx_udc.c udc->vbus = 0; udc 2914 drivers/usb/gadget/udc/lpc32xx_udc.c udc->last_vbus = udc->vbus = 0; udc 2915 drivers/usb/gadget/udc/lpc32xx_udc.c vbus_work(udc); udc 2918 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 2920 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 2928 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = to_udc(gadget); udc 2930 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 2932 drivers/usb/gadget/udc/lpc32xx_udc.c i2c_smbus_write_byte_data(udc->isp1301_i2c_client, udc 2935 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->clocked) { udc 2936 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock(&udc->lock); udc 2937 drivers/usb/gadget/udc/lpc32xx_udc.c stop_activity(udc); udc 2938 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock(&udc->lock); udc 2945 drivers/usb/gadget/udc/lpc32xx_udc.c if (atomic_read(&udc->enabled_ep_cnt)) udc 2946 drivers/usb/gadget/udc/lpc32xx_udc.c wait_event_interruptible(udc->ep_disable_wait_queue, udc 2947 drivers/usb/gadget/udc/lpc32xx_udc.c (atomic_read(&udc->enabled_ep_cnt) == 0)); udc 2949 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock(&udc->lock); udc 2950 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clk_set(udc, 0); udc 2951 drivers/usb/gadget/udc/lpc32xx_udc.c spin_unlock(&udc->lock); udc 2954 drivers/usb/gadget/udc/lpc32xx_udc.c udc->enabled = 0; udc 2955 drivers/usb/gadget/udc/lpc32xx_udc.c udc->driver = NULL; udc 2963 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = platform_get_drvdata(dev); udc 2965 drivers/usb/gadget/udc/lpc32xx_udc.c pullup(udc, 0); udc 3001 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc; udc 3007 drivers/usb/gadget/udc/lpc32xx_udc.c udc = devm_kmemdup(dev, &controller_template, sizeof(*udc), GFP_KERNEL); udc 3008 drivers/usb/gadget/udc/lpc32xx_udc.c if (!udc) udc 3012 drivers/usb/gadget/udc/lpc32xx_udc.c udc->ep[i].udc = udc; udc 3013 drivers/usb/gadget/udc/lpc32xx_udc.c udc->gadget.ep0 = &udc->ep[0].ep; udc 3016 drivers/usb/gadget/udc/lpc32xx_udc.c udc->gadget.dev.parent = dev; udc 3017 drivers/usb/gadget/udc/lpc32xx_udc.c udc->pdev = pdev; udc 3018 drivers/usb/gadget/udc/lpc32xx_udc.c udc->dev = &pdev->dev; udc 3019 drivers/usb/gadget/udc/lpc32xx_udc.c udc->enabled = 0; udc 3028 drivers/usb/gadget/udc/lpc32xx_udc.c udc->isp1301_i2c_client = isp1301_get_client(isp1301_node); udc 3029 drivers/usb/gadget/udc/lpc32xx_udc.c if (!udc->isp1301_i2c_client) { udc 3033 drivers/usb/gadget/udc/lpc32xx_udc.c dev_info(udc->dev, "ISP1301 I2C device at address 0x%x\n", udc 3034 drivers/usb/gadget/udc/lpc32xx_udc.c udc->isp1301_i2c_client->addr); udc 3041 drivers/usb/gadget/udc/lpc32xx_udc.c udc->board = &lpc32xx_usbddata; udc 3055 drivers/usb/gadget/udc/lpc32xx_udc.c spin_lock_init(&udc->lock); udc 3059 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udp_irq[i] = platform_get_irq(pdev, i); udc 3060 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->udp_irq[i] < 0) udc 3061 drivers/usb/gadget/udc/lpc32xx_udc.c return udc->udp_irq[i]; udc 3064 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udp_baseaddr = devm_ioremap_resource(dev, res); udc 3065 drivers/usb/gadget/udc/lpc32xx_udc.c if (IS_ERR(udc->udp_baseaddr)) { udc 3066 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "IO map failure\n"); udc 3067 drivers/usb/gadget/udc/lpc32xx_udc.c return PTR_ERR(udc->udp_baseaddr); udc 3071 drivers/usb/gadget/udc/lpc32xx_udc.c udc->usb_slv_clk = devm_clk_get(&pdev->dev, NULL); udc 3072 drivers/usb/gadget/udc/lpc32xx_udc.c if (IS_ERR(udc->usb_slv_clk)) { udc 3073 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "failed to acquire USB device clock\n"); udc 3074 drivers/usb/gadget/udc/lpc32xx_udc.c return PTR_ERR(udc->usb_slv_clk); udc 3078 drivers/usb/gadget/udc/lpc32xx_udc.c retval = clk_prepare_enable(udc->usb_slv_clk); udc 3080 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "failed to start USB device clock\n"); udc 3085 drivers/usb/gadget/udc/lpc32xx_udc.c udc->poweron = udc->pullup = 0; udc 3086 drivers/usb/gadget/udc/lpc32xx_udc.c INIT_WORK(&udc->pullup_job, pullup_work); udc 3088 drivers/usb/gadget/udc/lpc32xx_udc.c INIT_WORK(&udc->power_job, power_work); udc 3092 drivers/usb/gadget/udc/lpc32xx_udc.c udc->clocked = 1; udc 3094 drivers/usb/gadget/udc/lpc32xx_udc.c isp1301_udc_configure(udc); udc 3096 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udca_v_base = dma_alloc_coherent(&pdev->dev, UDCA_BUFF_SIZE, udc 3099 drivers/usb/gadget/udc/lpc32xx_udc.c if (!udc->udca_v_base) { udc 3100 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "error getting UDCA region\n"); udc 3104 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udca_p_base = dma_handle; udc 3105 drivers/usb/gadget/udc/lpc32xx_udc.c dev_dbg(udc->dev, "DMA buffer(0x%x bytes), P:0x%08x, V:0x%p\n", udc 3106 drivers/usb/gadget/udc/lpc32xx_udc.c UDCA_BUFF_SIZE, udc->udca_p_base, udc->udca_v_base); udc 3109 drivers/usb/gadget/udc/lpc32xx_udc.c udc->dd_cache = dma_pool_create("udc_dd", udc->dev, udc 3112 drivers/usb/gadget/udc/lpc32xx_udc.c if (!udc->dd_cache) { udc 3113 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "error getting DD DMA region\n"); udc 3119 drivers/usb/gadget/udc/lpc32xx_udc.c udc_disable(udc); udc 3120 drivers/usb/gadget/udc/lpc32xx_udc.c udc_reinit(udc); udc 3124 drivers/usb/gadget/udc/lpc32xx_udc.c retval = devm_request_irq(dev, udc->udp_irq[IRQ_USB_LP], udc 3125 drivers/usb/gadget/udc/lpc32xx_udc.c lpc32xx_usb_lp_irq, 0, "udc_lp", udc); udc 3127 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "LP request irq %d failed\n", udc 3128 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udp_irq[IRQ_USB_LP]); udc 3131 drivers/usb/gadget/udc/lpc32xx_udc.c retval = devm_request_irq(dev, udc->udp_irq[IRQ_USB_HP], udc 3132 drivers/usb/gadget/udc/lpc32xx_udc.c lpc32xx_usb_hp_irq, 0, "udc_hp", udc); udc 3134 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "HP request irq %d failed\n", udc 3135 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udp_irq[IRQ_USB_HP]); udc 3139 drivers/usb/gadget/udc/lpc32xx_udc.c retval = devm_request_irq(dev, udc->udp_irq[IRQ_USB_DEVDMA], udc 3140 drivers/usb/gadget/udc/lpc32xx_udc.c lpc32xx_usb_devdma_irq, 0, "udc_dma", udc); udc 3142 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "DEV request irq %d failed\n", udc 3143 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udp_irq[IRQ_USB_DEVDMA]); udc 3149 drivers/usb/gadget/udc/lpc32xx_udc.c retval = devm_request_threaded_irq(dev, udc->udp_irq[IRQ_USB_ATX], NULL, udc 3151 drivers/usb/gadget/udc/lpc32xx_udc.c "udc_otg", udc); udc 3153 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "VBUS request irq %d failed\n", udc 3154 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udp_irq[IRQ_USB_ATX]); udc 3159 drivers/usb/gadget/udc/lpc32xx_udc.c init_waitqueue_head(&udc->ep_disable_wait_queue); udc 3160 drivers/usb/gadget/udc/lpc32xx_udc.c atomic_set(&udc->enabled_ep_cnt, 0); udc 3162 drivers/usb/gadget/udc/lpc32xx_udc.c retval = usb_add_gadget_udc(dev, &udc->gadget); udc 3166 drivers/usb/gadget/udc/lpc32xx_udc.c dev_set_drvdata(dev, udc); udc 3168 drivers/usb/gadget/udc/lpc32xx_udc.c create_debug_file(udc); udc 3171 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clk_set(udc, 0); udc 3173 drivers/usb/gadget/udc/lpc32xx_udc.c dev_info(udc->dev, "%s version %s\n", driver_name, DRIVER_VERSION); udc 3178 drivers/usb/gadget/udc/lpc32xx_udc.c dma_pool_destroy(udc->dd_cache); udc 3181 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udca_v_base, udc->udca_p_base); udc 3183 drivers/usb/gadget/udc/lpc32xx_udc.c clk_disable_unprepare(udc->usb_slv_clk); udc 3184 drivers/usb/gadget/udc/lpc32xx_udc.c dev_err(udc->dev, "%s probe failed, %d\n", driver_name, retval); udc 3191 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = platform_get_drvdata(pdev); udc 3193 drivers/usb/gadget/udc/lpc32xx_udc.c usb_del_gadget_udc(&udc->gadget); udc 3194 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->driver) udc 3197 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clk_set(udc, 1); udc 3198 drivers/usb/gadget/udc/lpc32xx_udc.c udc_disable(udc); udc 3199 drivers/usb/gadget/udc/lpc32xx_udc.c pullup(udc, 0); udc 3202 drivers/usb/gadget/udc/lpc32xx_udc.c remove_debug_file(udc); udc 3204 drivers/usb/gadget/udc/lpc32xx_udc.c dma_pool_destroy(udc->dd_cache); udc 3206 drivers/usb/gadget/udc/lpc32xx_udc.c udc->udca_v_base, udc->udca_p_base); udc 3208 drivers/usb/gadget/udc/lpc32xx_udc.c clk_disable_unprepare(udc->usb_slv_clk); udc 3216 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = platform_get_drvdata(pdev); udc 3218 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->clocked) { udc 3220 drivers/usb/gadget/udc/lpc32xx_udc.c udc->poweron = 0; udc 3221 drivers/usb/gadget/udc/lpc32xx_udc.c isp1301_set_powerstate(udc, 0); udc 3224 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clk_set(udc, 0); udc 3228 drivers/usb/gadget/udc/lpc32xx_udc.c udc->clocked = 1; udc 3231 drivers/usb/gadget/udc/lpc32xx_udc.c clk_disable_unprepare(udc->usb_slv_clk); udc 3239 drivers/usb/gadget/udc/lpc32xx_udc.c struct lpc32xx_udc *udc = platform_get_drvdata(pdev); udc 3241 drivers/usb/gadget/udc/lpc32xx_udc.c if (udc->clocked) { udc 3243 drivers/usb/gadget/udc/lpc32xx_udc.c clk_prepare_enable(udc->usb_slv_clk); udc 3246 drivers/usb/gadget/udc/lpc32xx_udc.c udc_clk_set(udc, 1); udc 3249 drivers/usb/gadget/udc/lpc32xx_udc.c udc->poweron = 1; udc 3250 drivers/usb/gadget/udc/lpc32xx_udc.c isp1301_set_powerstate(udc, 1); udc 176 drivers/usb/gadget/udc/mv_u3d_core.c __releases(&ep->udc->lock) udc 177 drivers/usb/gadget/udc/mv_u3d_core.c __acquires(&ep->udc->lock) udc 227 drivers/usb/gadget/udc/mv_udc.h struct mv_udc *udc; udc 40 drivers/usb/gadget/udc/mv_udc_core.c ((ep)->udc->ep0_dir) : ((ep)->direction)) udc 59 drivers/usb/gadget/udc/mv_udc_core.c static void stop_activity(struct mv_udc *udc, struct usb_gadget_driver *driver); udc 70 drivers/usb/gadget/udc/mv_udc_core.c static void ep0_reset(struct mv_udc *udc) udc 78 drivers/usb/gadget/udc/mv_udc_core.c ep = &udc->eps[i]; udc 79 drivers/usb/gadget/udc/mv_udc_core.c ep->udc = udc; udc 82 drivers/usb/gadget/udc/mv_udc_core.c ep->dqh = &udc->ep_dqh[i]; udc 91 drivers/usb/gadget/udc/mv_udc_core.c epctrlx = readl(&udc->op_regs->epctrlx[0]); udc 103 drivers/usb/gadget/udc/mv_udc_core.c writel(epctrlx, &udc->op_regs->epctrlx[0]); udc 108 drivers/usb/gadget/udc/mv_udc_core.c static void ep0_stall(struct mv_udc *udc) udc 113 drivers/usb/gadget/udc/mv_udc_core.c epctrlx = readl(&udc->op_regs->epctrlx[0]); udc 115 drivers/usb/gadget/udc/mv_udc_core.c writel(epctrlx, &udc->op_regs->epctrlx[0]); udc 118 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_state = WAIT_FOR_SETUP; udc 119 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_dir = EP_DIR_OUT; udc 122 drivers/usb/gadget/udc/mv_udc_core.c static int process_ep_req(struct mv_udc *udc, int index, udc 133 drivers/usb/gadget/udc/mv_udc_core.c curr_dqh = &udc->ep_dqh[index]; udc 141 drivers/usb/gadget/udc/mv_udc_core.c dev_dbg(&udc->dev->dev, "%s, dTD not completed\n", udc 142 drivers/usb/gadget/udc/mv_udc_core.c udc->eps[index].name); udc 155 drivers/usb/gadget/udc/mv_udc_core.c dev_dbg(&udc->dev->dev, udc 163 drivers/usb/gadget/udc/mv_udc_core.c dev_info(&udc->dev->dev, udc 190 drivers/usb/gadget/udc/mv_udc_core.c while (readl(&udc->op_regs->epstatus) & bit_pos) udc 208 drivers/usb/gadget/udc/mv_udc_core.c __releases(&ep->udc->lock) udc 209 drivers/usb/gadget/udc/mv_udc_core.c __acquires(&ep->udc->lock) udc 211 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc = NULL; udc 216 drivers/usb/gadget/udc/mv_udc_core.c udc = (struct mv_udc *)ep->udc; udc 232 drivers/usb/gadget/udc/mv_udc_core.c dma_pool_free(udc->dtd_pool, curr_td, curr_td->td_dma); udc 235 drivers/usb/gadget/udc/mv_udc_core.c usb_gadget_unmap_request(&udc->gadget, &req->req, ep_dir(ep)); udc 238 drivers/usb/gadget/udc/mv_udc_core.c dev_info(&udc->dev->dev, "complete %s req %p stat %d len %u/%u", udc 244 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&ep->udc->lock); udc 248 drivers/usb/gadget/udc/mv_udc_core.c spin_lock(&ep->udc->lock); udc 254 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 261 drivers/usb/gadget/udc/mv_udc_core.c udc = ep->udc; udc 263 drivers/usb/gadget/udc/mv_udc_core.c dqh = &(udc->ep_dqh[ep->ep_num * 2 + direction]); udc 275 drivers/usb/gadget/udc/mv_udc_core.c if (readl(&udc->op_regs->epprime) & bit_pos) udc 281 drivers/usb/gadget/udc/mv_udc_core.c usbcmd = readl(&udc->op_regs->usbcmd); udc 283 drivers/usb/gadget/udc/mv_udc_core.c writel(usbcmd, &udc->op_regs->usbcmd); udc 286 drivers/usb/gadget/udc/mv_udc_core.c epstatus = readl(&udc->op_regs->epstatus) & bit_pos; udc 295 drivers/usb/gadget/udc/mv_udc_core.c if (readl(&udc->op_regs->usbcmd) udc 301 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, udc 310 drivers/usb/gadget/udc/mv_udc_core.c usbcmd = readl(&udc->op_regs->usbcmd); udc 312 drivers/usb/gadget/udc/mv_udc_core.c writel(usbcmd, &udc->op_regs->usbcmd); udc 329 drivers/usb/gadget/udc/mv_udc_core.c writel(bit_pos, &udc->op_regs->epprime); udc 339 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 354 drivers/usb/gadget/udc/mv_udc_core.c udc = req->ep->udc; udc 360 drivers/usb/gadget/udc/mv_udc_core.c dtd = dma_pool_alloc(udc->dtd_pool, GFP_ATOMIC, dma); udc 438 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 448 drivers/usb/gadget/udc/mv_udc_core.c udc = ep->udc; udc 454 drivers/usb/gadget/udc/mv_udc_core.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) udc 467 drivers/usb/gadget/udc/mv_udc_core.c if ((readl(&udc->op_regs->epprime) & bit_pos) udc 468 drivers/usb/gadget/udc/mv_udc_core.c || (readl(&udc->op_regs->epstatus) & bit_pos)) { udc 469 drivers/usb/gadget/udc/mv_udc_core.c dev_info(&udc->dev->dev, udc 473 drivers/usb/gadget/udc/mv_udc_core.c (unsigned)readl(&udc->op_regs->epprime), udc 474 drivers/usb/gadget/udc/mv_udc_core.c (unsigned)readl(&udc->op_regs->epstatus), udc 500 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 515 drivers/usb/gadget/udc/mv_udc_core.c epctrlx = readl(&udc->op_regs->epctrlx[ep->ep_num]); udc 527 drivers/usb/gadget/udc/mv_udc_core.c writel(epctrlx, &udc->op_regs->epctrlx[ep->ep_num]); udc 533 drivers/usb/gadget/udc/mv_udc_core.c epctrlx = readl(&udc->op_regs->epctrlx[ep->ep_num]); udc 537 drivers/usb/gadget/udc/mv_udc_core.c writel(epctrlx, &udc->op_regs->epctrlx[ep->ep_num]); udc 540 drivers/usb/gadget/udc/mv_udc_core.c epctrlx = readl(&udc->op_regs->epctrlx[ep->ep_num]); udc 544 drivers/usb/gadget/udc/mv_udc_core.c writel(epctrlx, &udc->op_regs->epctrlx[ep->ep_num]); udc 547 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 556 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 566 drivers/usb/gadget/udc/mv_udc_core.c udc = ep->udc; udc 571 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 579 drivers/usb/gadget/udc/mv_udc_core.c epctrlx = readl(&udc->op_regs->epctrlx[ep->ep_num]); udc 583 drivers/usb/gadget/udc/mv_udc_core.c writel(epctrlx, &udc->op_regs->epctrlx[ep->ep_num]); udc 591 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 623 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 635 drivers/usb/gadget/udc/mv_udc_core.c udc = ep->udc; udc 650 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, udc 652 drivers/usb/gadget/udc/mv_udc_core.c (unsigned)readl(&udc->op_regs->epstatus), udc 657 drivers/usb/gadget/udc/mv_udc_core.c writel(bit_pos, &udc->op_regs->epflush); udc 661 drivers/usb/gadget/udc/mv_udc_core.c while (readl(&udc->op_regs->epflush)) { udc 667 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, udc 670 drivers/usb/gadget/udc/mv_udc_core.c (unsigned)readl(&udc->op_regs->epflush), udc 678 drivers/usb/gadget/udc/mv_udc_core.c } while (readl(&udc->op_regs->epstatus) & bit_pos); udc 687 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc = ep->udc; udc 694 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, "%s, bad params", __func__); udc 698 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, "%s, bad ep", __func__); udc 702 drivers/usb/gadget/udc/mv_udc_core.c udc = ep->udc; udc 703 drivers/usb/gadget/udc/mv_udc_core.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) udc 709 drivers/usb/gadget/udc/mv_udc_core.c retval = usb_gadget_map_request(&udc->gadget, _req, ep_dir(ep)); udc 717 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 723 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 724 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, "Failed to queue dtd\n"); udc 728 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 729 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, "Failed to dma_pool_alloc\n"); udc 736 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_state = DATA_STATE_XMIT; udc 740 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 745 drivers/usb/gadget/udc/mv_udc_core.c usb_gadget_unmap_request(&udc->gadget, _req, ep_dir(ep)); udc 768 drivers/usb/gadget/udc/mv_udc_core.c writel(bit_pos, &ep->udc->op_regs->epprime); udc 776 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc = ep->udc; udc 784 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_irqsave(&ep->udc->lock, flags); udc 789 drivers/usb/gadget/udc/mv_udc_core.c epctrlx = readl(&udc->op_regs->epctrlx[ep->ep_num]); udc 794 drivers/usb/gadget/udc/mv_udc_core.c writel(epctrlx, &udc->op_regs->epctrlx[ep->ep_num]); udc 842 drivers/usb/gadget/udc/mv_udc_core.c epctrlx = readl(&udc->op_regs->epctrlx[ep->ep_num]); udc 847 drivers/usb/gadget/udc/mv_udc_core.c writel(epctrlx, &udc->op_regs->epctrlx[ep->ep_num]); udc 850 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 854 drivers/usb/gadget/udc/mv_udc_core.c static void ep_set_stall(struct mv_udc *udc, u8 ep_num, u8 direction, int stall) udc 858 drivers/usb/gadget/udc/mv_udc_core.c epctrlx = readl(&udc->op_regs->epctrlx[ep_num]); udc 874 drivers/usb/gadget/udc/mv_udc_core.c writel(epctrlx, &udc->op_regs->epctrlx[ep_num]); udc 877 drivers/usb/gadget/udc/mv_udc_core.c static int ep_is_stall(struct mv_udc *udc, u8 ep_num, u8 direction) udc 881 drivers/usb/gadget/udc/mv_udc_core.c epctrlx = readl(&udc->op_regs->epctrlx[ep_num]); udc 894 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 897 drivers/usb/gadget/udc/mv_udc_core.c udc = ep->udc; udc 917 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_irqsave(&ep->udc->lock, flags); udc 918 drivers/usb/gadget/udc/mv_udc_core.c ep_set_stall(udc, ep->ep_num, ep_dir(ep), halt); udc 923 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 926 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_state = WAIT_FOR_SETUP; udc 927 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_dir = EP_DIR_OUT; udc 958 drivers/usb/gadget/udc/mv_udc_core.c static int udc_clock_enable(struct mv_udc *udc) udc 960 drivers/usb/gadget/udc/mv_udc_core.c return clk_prepare_enable(udc->clk); udc 963 drivers/usb/gadget/udc/mv_udc_core.c static void udc_clock_disable(struct mv_udc *udc) udc 965 drivers/usb/gadget/udc/mv_udc_core.c clk_disable_unprepare(udc->clk); udc 968 drivers/usb/gadget/udc/mv_udc_core.c static void udc_stop(struct mv_udc *udc) udc 973 drivers/usb/gadget/udc/mv_udc_core.c tmp = readl(&udc->op_regs->usbintr); udc 976 drivers/usb/gadget/udc/mv_udc_core.c writel(tmp, &udc->op_regs->usbintr); udc 978 drivers/usb/gadget/udc/mv_udc_core.c udc->stopped = 1; udc 981 drivers/usb/gadget/udc/mv_udc_core.c tmp = readl(&udc->op_regs->usbcmd); udc 983 drivers/usb/gadget/udc/mv_udc_core.c writel(tmp, &udc->op_regs->usbcmd); udc 986 drivers/usb/gadget/udc/mv_udc_core.c static void udc_start(struct mv_udc *udc) udc 994 drivers/usb/gadget/udc/mv_udc_core.c writel(usbintr, &udc->op_regs->usbintr); udc 996 drivers/usb/gadget/udc/mv_udc_core.c udc->stopped = 0; udc 999 drivers/usb/gadget/udc/mv_udc_core.c writel(USBCMD_RUN_STOP, &udc->op_regs->usbcmd); udc 1002 drivers/usb/gadget/udc/mv_udc_core.c static int udc_reset(struct mv_udc *udc) udc 1008 drivers/usb/gadget/udc/mv_udc_core.c tmp = readl(&udc->op_regs->usbcmd); udc 1010 drivers/usb/gadget/udc/mv_udc_core.c writel(tmp, &udc->op_regs->usbcmd); udc 1013 drivers/usb/gadget/udc/mv_udc_core.c writel(USBCMD_CTRL_RESET, &udc->op_regs->usbcmd); udc 1017 drivers/usb/gadget/udc/mv_udc_core.c while (readl(&udc->op_regs->usbcmd) & USBCMD_CTRL_RESET) { udc 1019 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, udc 1028 drivers/usb/gadget/udc/mv_udc_core.c tmp = readl(&udc->op_regs->usbmode); udc 1034 drivers/usb/gadget/udc/mv_udc_core.c writel(tmp, &udc->op_regs->usbmode); udc 1036 drivers/usb/gadget/udc/mv_udc_core.c writel(0x0, &udc->op_regs->epsetupstat); udc 1039 drivers/usb/gadget/udc/mv_udc_core.c writel(udc->ep_dqh_dma & USB_EP_LIST_ADDRESS_MASK, udc 1040 drivers/usb/gadget/udc/mv_udc_core.c &udc->op_regs->eplistaddr); udc 1042 drivers/usb/gadget/udc/mv_udc_core.c portsc = readl(&udc->op_regs->portsc[0]); udc 1043 drivers/usb/gadget/udc/mv_udc_core.c if (readl(&udc->cap_regs->hcsparams) & HCSPARAMS_PPC) udc 1046 drivers/usb/gadget/udc/mv_udc_core.c if (udc->force_fs) udc 1051 drivers/usb/gadget/udc/mv_udc_core.c writel(portsc, &udc->op_regs->portsc[0]); udc 1053 drivers/usb/gadget/udc/mv_udc_core.c tmp = readl(&udc->op_regs->epctrlx[0]); udc 1055 drivers/usb/gadget/udc/mv_udc_core.c writel(tmp, &udc->op_regs->epctrlx[0]); udc 1060 drivers/usb/gadget/udc/mv_udc_core.c static int mv_udc_enable_internal(struct mv_udc *udc) udc 1064 drivers/usb/gadget/udc/mv_udc_core.c if (udc->active) udc 1067 drivers/usb/gadget/udc/mv_udc_core.c dev_dbg(&udc->dev->dev, "enable udc\n"); udc 1068 drivers/usb/gadget/udc/mv_udc_core.c retval = udc_clock_enable(udc); udc 1072 drivers/usb/gadget/udc/mv_udc_core.c if (udc->pdata->phy_init) { udc 1073 drivers/usb/gadget/udc/mv_udc_core.c retval = udc->pdata->phy_init(udc->phy_regs); udc 1075 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, udc 1077 drivers/usb/gadget/udc/mv_udc_core.c udc_clock_disable(udc); udc 1081 drivers/usb/gadget/udc/mv_udc_core.c udc->active = 1; udc 1086 drivers/usb/gadget/udc/mv_udc_core.c static int mv_udc_enable(struct mv_udc *udc) udc 1088 drivers/usb/gadget/udc/mv_udc_core.c if (udc->clock_gating) udc 1089 drivers/usb/gadget/udc/mv_udc_core.c return mv_udc_enable_internal(udc); udc 1094 drivers/usb/gadget/udc/mv_udc_core.c static void mv_udc_disable_internal(struct mv_udc *udc) udc 1096 drivers/usb/gadget/udc/mv_udc_core.c if (udc->active) { udc 1097 drivers/usb/gadget/udc/mv_udc_core.c dev_dbg(&udc->dev->dev, "disable udc\n"); udc 1098 drivers/usb/gadget/udc/mv_udc_core.c if (udc->pdata->phy_deinit) udc 1099 drivers/usb/gadget/udc/mv_udc_core.c udc->pdata->phy_deinit(udc->phy_regs); udc 1100 drivers/usb/gadget/udc/mv_udc_core.c udc_clock_disable(udc); udc 1101 drivers/usb/gadget/udc/mv_udc_core.c udc->active = 0; udc 1105 drivers/usb/gadget/udc/mv_udc_core.c static void mv_udc_disable(struct mv_udc *udc) udc 1107 drivers/usb/gadget/udc/mv_udc_core.c if (udc->clock_gating) udc 1108 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_disable_internal(udc); udc 1113 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 1119 drivers/usb/gadget/udc/mv_udc_core.c udc = container_of(gadget, struct mv_udc, gadget); udc 1121 drivers/usb/gadget/udc/mv_udc_core.c retval = readl(&udc->op_regs->frindex) & USB_FRINDEX_MASKS; udc 1129 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc = container_of(gadget, struct mv_udc, gadget); udc 1133 drivers/usb/gadget/udc/mv_udc_core.c if (!udc->remote_wakeup) udc 1136 drivers/usb/gadget/udc/mv_udc_core.c portsc = readl(&udc->op_regs->portsc); udc 1142 drivers/usb/gadget/udc/mv_udc_core.c writel(portsc, &udc->op_regs->portsc[0]); udc 1148 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 1152 drivers/usb/gadget/udc/mv_udc_core.c udc = container_of(gadget, struct mv_udc, gadget); udc 1153 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 1155 drivers/usb/gadget/udc/mv_udc_core.c udc->vbus_active = (is_active != 0); udc 1157 drivers/usb/gadget/udc/mv_udc_core.c dev_dbg(&udc->dev->dev, "%s: softconnect %d, vbus_active %d\n", udc 1158 drivers/usb/gadget/udc/mv_udc_core.c __func__, udc->softconnect, udc->vbus_active); udc 1160 drivers/usb/gadget/udc/mv_udc_core.c if (udc->driver && udc->softconnect && udc->vbus_active) { udc 1161 drivers/usb/gadget/udc/mv_udc_core.c retval = mv_udc_enable(udc); udc 1164 drivers/usb/gadget/udc/mv_udc_core.c udc_reset(udc); udc 1165 drivers/usb/gadget/udc/mv_udc_core.c ep0_reset(udc); udc 1166 drivers/usb/gadget/udc/mv_udc_core.c udc_start(udc); udc 1168 drivers/usb/gadget/udc/mv_udc_core.c } else if (udc->driver && udc->softconnect) { udc 1169 drivers/usb/gadget/udc/mv_udc_core.c if (!udc->active) udc 1173 drivers/usb/gadget/udc/mv_udc_core.c stop_activity(udc, udc->driver); udc 1174 drivers/usb/gadget/udc/mv_udc_core.c udc_stop(udc); udc 1175 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_disable(udc); udc 1179 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 1185 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 1189 drivers/usb/gadget/udc/mv_udc_core.c udc = container_of(gadget, struct mv_udc, gadget); udc 1190 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 1192 drivers/usb/gadget/udc/mv_udc_core.c udc->softconnect = (is_on != 0); udc 1194 drivers/usb/gadget/udc/mv_udc_core.c dev_dbg(&udc->dev->dev, "%s: softconnect %d, vbus_active %d\n", udc 1195 drivers/usb/gadget/udc/mv_udc_core.c __func__, udc->softconnect, udc->vbus_active); udc 1197 drivers/usb/gadget/udc/mv_udc_core.c if (udc->driver && udc->softconnect && udc->vbus_active) { udc 1198 drivers/usb/gadget/udc/mv_udc_core.c retval = mv_udc_enable(udc); udc 1201 drivers/usb/gadget/udc/mv_udc_core.c udc_reset(udc); udc 1202 drivers/usb/gadget/udc/mv_udc_core.c ep0_reset(udc); udc 1203 drivers/usb/gadget/udc/mv_udc_core.c udc_start(udc); udc 1205 drivers/usb/gadget/udc/mv_udc_core.c } else if (udc->driver && udc->vbus_active) { udc 1207 drivers/usb/gadget/udc/mv_udc_core.c stop_activity(udc, udc->driver); udc 1208 drivers/usb/gadget/udc/mv_udc_core.c udc_stop(udc); udc 1209 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_disable(udc); udc 1212 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 1236 drivers/usb/gadget/udc/mv_udc_core.c static int eps_init(struct mv_udc *udc) udc 1243 drivers/usb/gadget/udc/mv_udc_core.c ep = &udc->eps[0]; udc 1244 drivers/usb/gadget/udc/mv_udc_core.c ep->udc = udc; udc 1261 drivers/usb/gadget/udc/mv_udc_core.c for (i = 2; i < udc->max_eps * 2; i++) { udc 1262 drivers/usb/gadget/udc/mv_udc_core.c ep = &udc->eps[i]; udc 1272 drivers/usb/gadget/udc/mv_udc_core.c ep->udc = udc; udc 1286 drivers/usb/gadget/udc/mv_udc_core.c list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); udc 1288 drivers/usb/gadget/udc/mv_udc_core.c ep->dqh = &udc->ep_dqh[i]; udc 1310 drivers/usb/gadget/udc/mv_udc_core.c static void gadget_reset(struct mv_udc *udc, struct usb_gadget_driver *driver) udc 1314 drivers/usb/gadget/udc/mv_udc_core.c nuke(&udc->eps[0], -ESHUTDOWN); udc 1316 drivers/usb/gadget/udc/mv_udc_core.c list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) { udc 1322 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&udc->lock); udc 1323 drivers/usb/gadget/udc/mv_udc_core.c usb_gadget_udc_reset(&udc->gadget, driver); udc 1324 drivers/usb/gadget/udc/mv_udc_core.c spin_lock(&udc->lock); udc 1328 drivers/usb/gadget/udc/mv_udc_core.c static void stop_activity(struct mv_udc *udc, struct usb_gadget_driver *driver) udc 1332 drivers/usb/gadget/udc/mv_udc_core.c nuke(&udc->eps[0], -ESHUTDOWN); udc 1334 drivers/usb/gadget/udc/mv_udc_core.c list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) { udc 1340 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&udc->lock); udc 1341 drivers/usb/gadget/udc/mv_udc_core.c driver->disconnect(&udc->gadget); udc 1342 drivers/usb/gadget/udc/mv_udc_core.c spin_lock(&udc->lock); udc 1349 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 1353 drivers/usb/gadget/udc/mv_udc_core.c udc = container_of(gadget, struct mv_udc, gadget); udc 1355 drivers/usb/gadget/udc/mv_udc_core.c if (udc->driver) udc 1358 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 1362 drivers/usb/gadget/udc/mv_udc_core.c udc->driver = driver; udc 1364 drivers/usb/gadget/udc/mv_udc_core.c udc->usb_state = USB_STATE_ATTACHED; udc 1365 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_state = WAIT_FOR_SETUP; udc 1366 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_dir = EP_DIR_OUT; udc 1368 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 1370 drivers/usb/gadget/udc/mv_udc_core.c if (udc->transceiver) { udc 1371 drivers/usb/gadget/udc/mv_udc_core.c retval = otg_set_peripheral(udc->transceiver->otg, udc 1372 drivers/usb/gadget/udc/mv_udc_core.c &udc->gadget); udc 1374 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, udc 1376 drivers/usb/gadget/udc/mv_udc_core.c udc->driver = NULL; udc 1382 drivers/usb/gadget/udc/mv_udc_core.c if (udc->qwork) udc 1383 drivers/usb/gadget/udc/mv_udc_core.c queue_work(udc->qwork, &udc->vbus_work); udc 1390 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 1393 drivers/usb/gadget/udc/mv_udc_core.c udc = container_of(gadget, struct mv_udc, gadget); udc 1395 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 1397 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_enable(udc); udc 1398 drivers/usb/gadget/udc/mv_udc_core.c udc_stop(udc); udc 1401 drivers/usb/gadget/udc/mv_udc_core.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1402 drivers/usb/gadget/udc/mv_udc_core.c stop_activity(udc, NULL); udc 1403 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_disable(udc); udc 1405 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 1408 drivers/usb/gadget/udc/mv_udc_core.c udc->driver = NULL; udc 1413 drivers/usb/gadget/udc/mv_udc_core.c static void mv_set_ptc(struct mv_udc *udc, u32 mode) udc 1417 drivers/usb/gadget/udc/mv_udc_core.c portsc = readl(&udc->op_regs->portsc[0]); udc 1419 drivers/usb/gadget/udc/mv_udc_core.c writel(portsc, &udc->op_regs->portsc[0]); udc 1426 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 1429 drivers/usb/gadget/udc/mv_udc_core.c udc = mvep->udc; udc 1431 drivers/usb/gadget/udc/mv_udc_core.c dev_info(&udc->dev->dev, "switch to test mode %d\n", req->test_mode); udc 1433 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_irqsave(&udc->lock, flags); udc 1435 drivers/usb/gadget/udc/mv_udc_core.c mv_set_ptc(udc, req->test_mode); udc 1438 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irqrestore(&udc->lock, flags); udc 1442 drivers/usb/gadget/udc/mv_udc_core.c udc_prime_status(struct mv_udc *udc, u8 direction, u16 status, bool empty) udc 1448 drivers/usb/gadget/udc/mv_udc_core.c ep = &udc->eps[0]; udc 1449 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_dir = direction; udc 1450 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_state = WAIT_FOR_OUT_STATUS; udc 1452 drivers/usb/gadget/udc/mv_udc_core.c req = udc->status_req; udc 1464 drivers/usb/gadget/udc/mv_udc_core.c if (udc->test_mode) { udc 1466 drivers/usb/gadget/udc/mv_udc_core.c req->test_mode = udc->test_mode; udc 1467 drivers/usb/gadget/udc/mv_udc_core.c udc->test_mode = 0; udc 1473 drivers/usb/gadget/udc/mv_udc_core.c req->req.dma = dma_map_single(ep->udc->gadget.dev.parent, udc 1483 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, udc 1489 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, udc 1498 drivers/usb/gadget/udc/mv_udc_core.c usb_gadget_unmap_request(&udc->gadget, &req->req, ep_dir(ep)); udc 1503 drivers/usb/gadget/udc/mv_udc_core.c static void mv_udc_testmode(struct mv_udc *udc, u16 index) udc 1506 drivers/usb/gadget/udc/mv_udc_core.c udc->test_mode = index; udc 1507 drivers/usb/gadget/udc/mv_udc_core.c if (udc_prime_status(udc, EP_DIR_IN, 0, true)) udc 1508 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1510 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, udc 1514 drivers/usb/gadget/udc/mv_udc_core.c static void ch9setaddress(struct mv_udc *udc, struct usb_ctrlrequest *setup) udc 1516 drivers/usb/gadget/udc/mv_udc_core.c udc->dev_addr = (u8)setup->wValue; udc 1519 drivers/usb/gadget/udc/mv_udc_core.c udc->usb_state = USB_STATE_ADDRESS; udc 1521 drivers/usb/gadget/udc/mv_udc_core.c if (udc_prime_status(udc, EP_DIR_IN, 0, true)) udc 1522 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1525 drivers/usb/gadget/udc/mv_udc_core.c static void ch9getstatus(struct mv_udc *udc, u8 ep_num, udc 1537 drivers/usb/gadget/udc/mv_udc_core.c status |= udc->remote_wakeup << USB_DEVICE_REMOTE_WAKEUP; udc 1549 drivers/usb/gadget/udc/mv_udc_core.c status = ep_is_stall(udc, ep_num, direction) udc 1553 drivers/usb/gadget/udc/mv_udc_core.c retval = udc_prime_status(udc, EP_DIR_IN, status, false); udc 1555 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1557 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_state = DATA_STATE_XMIT; udc 1560 drivers/usb/gadget/udc/mv_udc_core.c static void ch9clearfeature(struct mv_udc *udc, struct usb_ctrlrequest *setup) udc 1570 drivers/usb/gadget/udc/mv_udc_core.c udc->remote_wakeup = 0; udc 1583 drivers/usb/gadget/udc/mv_udc_core.c || ep_num > udc->max_eps) udc 1585 drivers/usb/gadget/udc/mv_udc_core.c ep = &udc->eps[ep_num * 2 + direction]; udc 1588 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&udc->lock); udc 1589 drivers/usb/gadget/udc/mv_udc_core.c ep_set_stall(udc, ep_num, direction, 0); udc 1590 drivers/usb/gadget/udc/mv_udc_core.c spin_lock(&udc->lock); udc 1598 drivers/usb/gadget/udc/mv_udc_core.c if (udc_prime_status(udc, EP_DIR_IN, 0, true)) udc 1599 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1604 drivers/usb/gadget/udc/mv_udc_core.c static void ch9setfeature(struct mv_udc *udc, struct usb_ctrlrequest *setup) udc 1613 drivers/usb/gadget/udc/mv_udc_core.c udc->remote_wakeup = 1; udc 1617 drivers/usb/gadget/udc/mv_udc_core.c || udc->gadget.speed != USB_SPEED_HIGH) udc 1618 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1620 drivers/usb/gadget/udc/mv_udc_core.c if (udc->usb_state != USB_STATE_CONFIGURED udc 1621 drivers/usb/gadget/udc/mv_udc_core.c && udc->usb_state != USB_STATE_ADDRESS udc 1622 drivers/usb/gadget/udc/mv_udc_core.c && udc->usb_state != USB_STATE_DEFAULT) udc 1623 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1625 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_testmode(udc, (setup->wIndex >> 8)); udc 1638 drivers/usb/gadget/udc/mv_udc_core.c || ep_num > udc->max_eps) udc 1640 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&udc->lock); udc 1641 drivers/usb/gadget/udc/mv_udc_core.c ep_set_stall(udc, ep_num, direction, 1); udc 1642 drivers/usb/gadget/udc/mv_udc_core.c spin_lock(&udc->lock); udc 1650 drivers/usb/gadget/udc/mv_udc_core.c if (udc_prime_status(udc, EP_DIR_IN, 0, true)) udc 1651 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1656 drivers/usb/gadget/udc/mv_udc_core.c static void handle_setup_packet(struct mv_udc *udc, u8 ep_num, udc 1658 drivers/usb/gadget/udc/mv_udc_core.c __releases(&ep->udc->lock) udc 1659 drivers/usb/gadget/udc/mv_udc_core.c __acquires(&ep->udc->lock) udc 1663 drivers/usb/gadget/udc/mv_udc_core.c nuke(&udc->eps[ep_num * 2 + EP_DIR_OUT], -ESHUTDOWN); udc 1665 drivers/usb/gadget/udc/mv_udc_core.c dev_dbg(&udc->dev->dev, "SETUP %02x.%02x v%04x i%04x l%04x\n", udc 1672 drivers/usb/gadget/udc/mv_udc_core.c ch9getstatus(udc, ep_num, setup); udc 1676 drivers/usb/gadget/udc/mv_udc_core.c ch9setaddress(udc, setup); udc 1680 drivers/usb/gadget/udc/mv_udc_core.c ch9clearfeature(udc, setup); udc 1684 drivers/usb/gadget/udc/mv_udc_core.c ch9setfeature(udc, setup); udc 1698 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_dir = (setup->bRequestType & USB_DIR_IN) udc 1700 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&udc->lock); udc 1701 drivers/usb/gadget/udc/mv_udc_core.c if (udc->driver->setup(&udc->gadget, udc 1702 drivers/usb/gadget/udc/mv_udc_core.c &udc->local_setup_buff) < 0) udc 1703 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1704 drivers/usb/gadget/udc/mv_udc_core.c spin_lock(&udc->lock); udc 1705 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_state = (setup->bRequestType & USB_DIR_IN) udc 1709 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_dir = EP_DIR_IN; udc 1710 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&udc->lock); udc 1711 drivers/usb/gadget/udc/mv_udc_core.c if (udc->driver->setup(&udc->gadget, udc 1712 drivers/usb/gadget/udc/mv_udc_core.c &udc->local_setup_buff) < 0) udc 1713 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1714 drivers/usb/gadget/udc/mv_udc_core.c spin_lock(&udc->lock); udc 1715 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_state = WAIT_FOR_OUT_STATUS; udc 1721 drivers/usb/gadget/udc/mv_udc_core.c static void ep0_req_complete(struct mv_udc *udc, udc 1726 drivers/usb/gadget/udc/mv_udc_core.c if (udc->usb_state == USB_STATE_ADDRESS) { udc 1728 drivers/usb/gadget/udc/mv_udc_core.c new_addr = (u32)udc->dev_addr; udc 1730 drivers/usb/gadget/udc/mv_udc_core.c &udc->op_regs->deviceaddr); udc 1735 drivers/usb/gadget/udc/mv_udc_core.c switch (udc->ep0_state) { udc 1738 drivers/usb/gadget/udc/mv_udc_core.c if (udc_prime_status(udc, EP_DIR_OUT, 0, true)) udc 1739 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1743 drivers/usb/gadget/udc/mv_udc_core.c if (udc_prime_status(udc, EP_DIR_IN, 0 , true)) udc 1744 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1747 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_state = WAIT_FOR_SETUP; udc 1750 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, "unexpect ep0 packets\n"); udc 1753 drivers/usb/gadget/udc/mv_udc_core.c ep0_stall(udc); udc 1758 drivers/usb/gadget/udc/mv_udc_core.c static void get_setup_data(struct mv_udc *udc, u8 ep_num, u8 *buffer_ptr) udc 1763 drivers/usb/gadget/udc/mv_udc_core.c dqh = &udc->ep_dqh[ep_num * 2 + EP_DIR_OUT]; udc 1766 drivers/usb/gadget/udc/mv_udc_core.c writel((1 << ep_num), &udc->op_regs->epsetupstat); udc 1771 drivers/usb/gadget/udc/mv_udc_core.c temp = readl(&udc->op_regs->usbcmd); udc 1772 drivers/usb/gadget/udc/mv_udc_core.c writel(temp | USBCMD_SETUP_TRIPWIRE_SET, &udc->op_regs->usbcmd); udc 1776 drivers/usb/gadget/udc/mv_udc_core.c } while (!(readl(&udc->op_regs->usbcmd) & USBCMD_SETUP_TRIPWIRE_SET)); udc 1779 drivers/usb/gadget/udc/mv_udc_core.c temp = readl(&udc->op_regs->usbcmd); udc 1780 drivers/usb/gadget/udc/mv_udc_core.c writel(temp & ~USBCMD_SETUP_TRIPWIRE_SET, &udc->op_regs->usbcmd); udc 1783 drivers/usb/gadget/udc/mv_udc_core.c static void irq_process_tr_complete(struct mv_udc *udc) udc 1797 drivers/usb/gadget/udc/mv_udc_core.c tmp = readl(&udc->op_regs->epsetupstat); udc 1800 drivers/usb/gadget/udc/mv_udc_core.c for (i = 0; i < udc->max_eps; i++) { udc 1802 drivers/usb/gadget/udc/mv_udc_core.c get_setup_data(udc, i, udc 1803 drivers/usb/gadget/udc/mv_udc_core.c (u8 *)(&udc->local_setup_buff)); udc 1804 drivers/usb/gadget/udc/mv_udc_core.c handle_setup_packet(udc, i, udc 1805 drivers/usb/gadget/udc/mv_udc_core.c &udc->local_setup_buff); udc 1815 drivers/usb/gadget/udc/mv_udc_core.c tmp = readl(&udc->op_regs->epcomplete); udc 1820 drivers/usb/gadget/udc/mv_udc_core.c writel(tmp, &udc->op_regs->epcomplete); udc 1822 drivers/usb/gadget/udc/mv_udc_core.c for (i = 0; i < udc->max_eps * 2; i++) { udc 1832 drivers/usb/gadget/udc/mv_udc_core.c curr_ep = &udc->eps[0]; udc 1834 drivers/usb/gadget/udc/mv_udc_core.c curr_ep = &udc->eps[i]; udc 1838 drivers/usb/gadget/udc/mv_udc_core.c status = process_ep_req(udc, i, curr_req); udc 1847 drivers/usb/gadget/udc/mv_udc_core.c ep0_req_complete(udc, curr_ep, curr_req); udc 1856 drivers/usb/gadget/udc/mv_udc_core.c static void irq_process_reset(struct mv_udc *udc) udc 1861 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_dir = EP_DIR_OUT; udc 1862 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_state = WAIT_FOR_SETUP; udc 1863 drivers/usb/gadget/udc/mv_udc_core.c udc->remote_wakeup = 0; /* default to 0 on reset */ udc 1866 drivers/usb/gadget/udc/mv_udc_core.c tmp = readl(&udc->op_regs->deviceaddr); udc 1868 drivers/usb/gadget/udc/mv_udc_core.c writel(tmp, &udc->op_regs->deviceaddr); udc 1871 drivers/usb/gadget/udc/mv_udc_core.c tmp = readl(&udc->op_regs->epsetupstat); udc 1872 drivers/usb/gadget/udc/mv_udc_core.c writel(tmp, &udc->op_regs->epsetupstat); udc 1875 drivers/usb/gadget/udc/mv_udc_core.c tmp = readl(&udc->op_regs->epcomplete); udc 1876 drivers/usb/gadget/udc/mv_udc_core.c writel(tmp, &udc->op_regs->epcomplete); udc 1880 drivers/usb/gadget/udc/mv_udc_core.c while (readl(&udc->op_regs->epprime) & 0xFFFFFFFF) { udc 1882 drivers/usb/gadget/udc/mv_udc_core.c dev_err(&udc->dev->dev, udc 1884 drivers/usb/gadget/udc/mv_udc_core.c readl(&udc->op_regs->epprime)); udc 1892 drivers/usb/gadget/udc/mv_udc_core.c writel((u32)~0, &udc->op_regs->epflush); udc 1894 drivers/usb/gadget/udc/mv_udc_core.c if (readl(&udc->op_regs->portsc[0]) & PORTSCX_PORT_RESET) { udc 1895 drivers/usb/gadget/udc/mv_udc_core.c dev_info(&udc->dev->dev, "usb bus reset\n"); udc 1896 drivers/usb/gadget/udc/mv_udc_core.c udc->usb_state = USB_STATE_DEFAULT; udc 1898 drivers/usb/gadget/udc/mv_udc_core.c gadget_reset(udc, udc->driver); udc 1900 drivers/usb/gadget/udc/mv_udc_core.c dev_info(&udc->dev->dev, "USB reset portsc 0x%x\n", udc 1901 drivers/usb/gadget/udc/mv_udc_core.c readl(&udc->op_regs->portsc)); udc 1907 drivers/usb/gadget/udc/mv_udc_core.c udc_reset(udc); udc 1910 drivers/usb/gadget/udc/mv_udc_core.c stop_activity(udc, udc->driver); udc 1913 drivers/usb/gadget/udc/mv_udc_core.c ep0_reset(udc); udc 1916 drivers/usb/gadget/udc/mv_udc_core.c udc_start(udc); udc 1918 drivers/usb/gadget/udc/mv_udc_core.c udc->usb_state = USB_STATE_ATTACHED; udc 1922 drivers/usb/gadget/udc/mv_udc_core.c static void handle_bus_resume(struct mv_udc *udc) udc 1924 drivers/usb/gadget/udc/mv_udc_core.c udc->usb_state = udc->resume_state; udc 1925 drivers/usb/gadget/udc/mv_udc_core.c udc->resume_state = 0; udc 1928 drivers/usb/gadget/udc/mv_udc_core.c if (udc->driver) { udc 1929 drivers/usb/gadget/udc/mv_udc_core.c if (udc->driver->resume) { udc 1930 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&udc->lock); udc 1931 drivers/usb/gadget/udc/mv_udc_core.c udc->driver->resume(&udc->gadget); udc 1932 drivers/usb/gadget/udc/mv_udc_core.c spin_lock(&udc->lock); udc 1937 drivers/usb/gadget/udc/mv_udc_core.c static void irq_process_suspend(struct mv_udc *udc) udc 1939 drivers/usb/gadget/udc/mv_udc_core.c udc->resume_state = udc->usb_state; udc 1940 drivers/usb/gadget/udc/mv_udc_core.c udc->usb_state = USB_STATE_SUSPENDED; udc 1942 drivers/usb/gadget/udc/mv_udc_core.c if (udc->driver->suspend) { udc 1943 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&udc->lock); udc 1944 drivers/usb/gadget/udc/mv_udc_core.c udc->driver->suspend(&udc->gadget); udc 1945 drivers/usb/gadget/udc/mv_udc_core.c spin_lock(&udc->lock); udc 1949 drivers/usb/gadget/udc/mv_udc_core.c static void irq_process_port_change(struct mv_udc *udc) udc 1953 drivers/usb/gadget/udc/mv_udc_core.c portsc = readl(&udc->op_regs->portsc[0]); udc 1959 drivers/usb/gadget/udc/mv_udc_core.c udc->gadget.speed = USB_SPEED_HIGH; udc 1962 drivers/usb/gadget/udc/mv_udc_core.c udc->gadget.speed = USB_SPEED_FULL; udc 1965 drivers/usb/gadget/udc/mv_udc_core.c udc->gadget.speed = USB_SPEED_LOW; udc 1968 drivers/usb/gadget/udc/mv_udc_core.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1974 drivers/usb/gadget/udc/mv_udc_core.c udc->resume_state = udc->usb_state; udc 1975 drivers/usb/gadget/udc/mv_udc_core.c udc->usb_state = USB_STATE_SUSPENDED; udc 1976 drivers/usb/gadget/udc/mv_udc_core.c if (udc->driver->suspend) { udc 1977 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&udc->lock); udc 1978 drivers/usb/gadget/udc/mv_udc_core.c udc->driver->suspend(&udc->gadget); udc 1979 drivers/usb/gadget/udc/mv_udc_core.c spin_lock(&udc->lock); udc 1984 drivers/usb/gadget/udc/mv_udc_core.c && udc->usb_state == USB_STATE_SUSPENDED) { udc 1985 drivers/usb/gadget/udc/mv_udc_core.c handle_bus_resume(udc); udc 1988 drivers/usb/gadget/udc/mv_udc_core.c if (!udc->resume_state) udc 1989 drivers/usb/gadget/udc/mv_udc_core.c udc->usb_state = USB_STATE_DEFAULT; udc 1992 drivers/usb/gadget/udc/mv_udc_core.c static void irq_process_error(struct mv_udc *udc) udc 1995 drivers/usb/gadget/udc/mv_udc_core.c udc->errors++; udc 2000 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc = (struct mv_udc *)dev; udc 2004 drivers/usb/gadget/udc/mv_udc_core.c if (udc->stopped) udc 2007 drivers/usb/gadget/udc/mv_udc_core.c spin_lock(&udc->lock); udc 2009 drivers/usb/gadget/udc/mv_udc_core.c status = readl(&udc->op_regs->usbsts); udc 2010 drivers/usb/gadget/udc/mv_udc_core.c intr = readl(&udc->op_regs->usbintr); udc 2014 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&udc->lock); udc 2019 drivers/usb/gadget/udc/mv_udc_core.c writel(status, &udc->op_regs->usbsts); udc 2022 drivers/usb/gadget/udc/mv_udc_core.c irq_process_error(udc); udc 2025 drivers/usb/gadget/udc/mv_udc_core.c irq_process_reset(udc); udc 2028 drivers/usb/gadget/udc/mv_udc_core.c irq_process_port_change(udc); udc 2031 drivers/usb/gadget/udc/mv_udc_core.c irq_process_tr_complete(udc); udc 2034 drivers/usb/gadget/udc/mv_udc_core.c irq_process_suspend(udc); udc 2036 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock(&udc->lock); udc 2043 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc = (struct mv_udc *)dev; udc 2046 drivers/usb/gadget/udc/mv_udc_core.c if (udc->qwork) udc 2047 drivers/usb/gadget/udc/mv_udc_core.c queue_work(udc->qwork, &udc->vbus_work); udc 2054 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 2057 drivers/usb/gadget/udc/mv_udc_core.c udc = container_of(work, struct mv_udc, vbus_work); udc 2058 drivers/usb/gadget/udc/mv_udc_core.c if (!udc->pdata->vbus) udc 2061 drivers/usb/gadget/udc/mv_udc_core.c vbus = udc->pdata->vbus->poll(); udc 2062 drivers/usb/gadget/udc/mv_udc_core.c dev_info(&udc->dev->dev, "vbus is %d\n", vbus); udc 2065 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_vbus_session(&udc->gadget, 1); udc 2067 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_vbus_session(&udc->gadget, 0); udc 2073 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 2075 drivers/usb/gadget/udc/mv_udc_core.c udc = dev_get_drvdata(_dev); udc 2077 drivers/usb/gadget/udc/mv_udc_core.c complete(udc->done); udc 2082 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 2084 drivers/usb/gadget/udc/mv_udc_core.c udc = platform_get_drvdata(pdev); udc 2086 drivers/usb/gadget/udc/mv_udc_core.c usb_del_gadget_udc(&udc->gadget); udc 2088 drivers/usb/gadget/udc/mv_udc_core.c if (udc->qwork) { udc 2089 drivers/usb/gadget/udc/mv_udc_core.c flush_workqueue(udc->qwork); udc 2090 drivers/usb/gadget/udc/mv_udc_core.c destroy_workqueue(udc->qwork); udc 2094 drivers/usb/gadget/udc/mv_udc_core.c dma_pool_destroy(udc->dtd_pool); udc 2096 drivers/usb/gadget/udc/mv_udc_core.c if (udc->ep_dqh) udc 2097 drivers/usb/gadget/udc/mv_udc_core.c dma_free_coherent(&pdev->dev, udc->ep_dqh_size, udc 2098 drivers/usb/gadget/udc/mv_udc_core.c udc->ep_dqh, udc->ep_dqh_dma); udc 2100 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_disable(udc); udc 2103 drivers/usb/gadget/udc/mv_udc_core.c wait_for_completion(udc->done); udc 2111 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 2121 drivers/usb/gadget/udc/mv_udc_core.c udc = devm_kzalloc(&pdev->dev, sizeof(*udc), GFP_KERNEL); udc 2122 drivers/usb/gadget/udc/mv_udc_core.c if (udc == NULL) udc 2125 drivers/usb/gadget/udc/mv_udc_core.c udc->done = &release_done; udc 2126 drivers/usb/gadget/udc/mv_udc_core.c udc->pdata = dev_get_platdata(&pdev->dev); udc 2127 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_init(&udc->lock); udc 2129 drivers/usb/gadget/udc/mv_udc_core.c udc->dev = pdev; udc 2132 drivers/usb/gadget/udc/mv_udc_core.c udc->transceiver = devm_usb_get_phy(&pdev->dev, udc 2134 drivers/usb/gadget/udc/mv_udc_core.c if (IS_ERR(udc->transceiver)) { udc 2135 drivers/usb/gadget/udc/mv_udc_core.c retval = PTR_ERR(udc->transceiver); udc 2140 drivers/usb/gadget/udc/mv_udc_core.c udc->transceiver = NULL; udc 2146 drivers/usb/gadget/udc/mv_udc_core.c udc->clk = devm_clk_get(&pdev->dev, NULL); udc 2147 drivers/usb/gadget/udc/mv_udc_core.c if (IS_ERR(udc->clk)) udc 2148 drivers/usb/gadget/udc/mv_udc_core.c return PTR_ERR(udc->clk); udc 2150 drivers/usb/gadget/udc/mv_udc_core.c r = platform_get_resource_byname(udc->dev, IORESOURCE_MEM, "capregs"); udc 2156 drivers/usb/gadget/udc/mv_udc_core.c udc->cap_regs = (struct mv_cap_regs __iomem *) udc 2158 drivers/usb/gadget/udc/mv_udc_core.c if (udc->cap_regs == NULL) { udc 2163 drivers/usb/gadget/udc/mv_udc_core.c r = platform_get_resource_byname(udc->dev, IORESOURCE_MEM, "phyregs"); udc 2169 drivers/usb/gadget/udc/mv_udc_core.c udc->phy_regs = devm_ioremap(&pdev->dev, r->start, resource_size(r)); udc 2170 drivers/usb/gadget/udc/mv_udc_core.c if (udc->phy_regs == NULL) { udc 2176 drivers/usb/gadget/udc/mv_udc_core.c retval = mv_udc_enable_internal(udc); udc 2180 drivers/usb/gadget/udc/mv_udc_core.c udc->op_regs = udc 2181 drivers/usb/gadget/udc/mv_udc_core.c (struct mv_op_regs __iomem *)((unsigned long)udc->cap_regs udc 2182 drivers/usb/gadget/udc/mv_udc_core.c + (readl(&udc->cap_regs->caplength_hciversion) udc 2184 drivers/usb/gadget/udc/mv_udc_core.c udc->max_eps = readl(&udc->cap_regs->dccparams) & DCCPARAMS_DEN_MASK; udc 2190 drivers/usb/gadget/udc/mv_udc_core.c udc_stop(udc); udc 2191 drivers/usb/gadget/udc/mv_udc_core.c writel(0xFFFFFFFF, &udc->op_regs->usbsts); udc 2193 drivers/usb/gadget/udc/mv_udc_core.c size = udc->max_eps * sizeof(struct mv_dqh) *2; udc 2195 drivers/usb/gadget/udc/mv_udc_core.c udc->ep_dqh = dma_alloc_coherent(&pdev->dev, size, udc 2196 drivers/usb/gadget/udc/mv_udc_core.c &udc->ep_dqh_dma, GFP_KERNEL); udc 2198 drivers/usb/gadget/udc/mv_udc_core.c if (udc->ep_dqh == NULL) { udc 2203 drivers/usb/gadget/udc/mv_udc_core.c udc->ep_dqh_size = size; udc 2206 drivers/usb/gadget/udc/mv_udc_core.c udc->dtd_pool = dma_pool_create("mv_dtd", udc 2212 drivers/usb/gadget/udc/mv_udc_core.c if (!udc->dtd_pool) { udc 2217 drivers/usb/gadget/udc/mv_udc_core.c size = udc->max_eps * sizeof(struct mv_ep) *2; udc 2218 drivers/usb/gadget/udc/mv_udc_core.c udc->eps = devm_kzalloc(&pdev->dev, size, GFP_KERNEL); udc 2219 drivers/usb/gadget/udc/mv_udc_core.c if (udc->eps == NULL) { udc 2225 drivers/usb/gadget/udc/mv_udc_core.c udc->status_req = devm_kzalloc(&pdev->dev, sizeof(struct mv_req), udc 2227 drivers/usb/gadget/udc/mv_udc_core.c if (!udc->status_req) { udc 2231 drivers/usb/gadget/udc/mv_udc_core.c INIT_LIST_HEAD(&udc->status_req->queue); udc 2234 drivers/usb/gadget/udc/mv_udc_core.c udc->status_req->req.buf = kzalloc(8, GFP_KERNEL); udc 2235 drivers/usb/gadget/udc/mv_udc_core.c udc->status_req->req.dma = DMA_ADDR_INVALID; udc 2237 drivers/usb/gadget/udc/mv_udc_core.c udc->resume_state = USB_STATE_NOTATTACHED; udc 2238 drivers/usb/gadget/udc/mv_udc_core.c udc->usb_state = USB_STATE_POWERED; udc 2239 drivers/usb/gadget/udc/mv_udc_core.c udc->ep0_dir = EP_DIR_OUT; udc 2240 drivers/usb/gadget/udc/mv_udc_core.c udc->remote_wakeup = 0; udc 2242 drivers/usb/gadget/udc/mv_udc_core.c r = platform_get_resource(udc->dev, IORESOURCE_IRQ, 0); udc 2248 drivers/usb/gadget/udc/mv_udc_core.c udc->irq = r->start; udc 2249 drivers/usb/gadget/udc/mv_udc_core.c if (devm_request_irq(&pdev->dev, udc->irq, mv_udc_irq, udc 2250 drivers/usb/gadget/udc/mv_udc_core.c IRQF_SHARED, driver_name, udc)) { udc 2252 drivers/usb/gadget/udc/mv_udc_core.c udc->irq); udc 2258 drivers/usb/gadget/udc/mv_udc_core.c udc->gadget.ops = &mv_ops; /* usb_gadget_ops */ udc 2259 drivers/usb/gadget/udc/mv_udc_core.c udc->gadget.ep0 = &udc->eps[0].ep; /* gadget ep0 */ udc 2260 drivers/usb/gadget/udc/mv_udc_core.c INIT_LIST_HEAD(&udc->gadget.ep_list); /* ep_list */ udc 2261 drivers/usb/gadget/udc/mv_udc_core.c udc->gadget.speed = USB_SPEED_UNKNOWN; /* speed */ udc 2262 drivers/usb/gadget/udc/mv_udc_core.c udc->gadget.max_speed = USB_SPEED_HIGH; /* support dual speed */ udc 2265 drivers/usb/gadget/udc/mv_udc_core.c udc->gadget.name = driver_name; /* gadget name */ udc 2267 drivers/usb/gadget/udc/mv_udc_core.c eps_init(udc); udc 2270 drivers/usb/gadget/udc/mv_udc_core.c if (udc->transceiver) udc 2271 drivers/usb/gadget/udc/mv_udc_core.c udc->clock_gating = 1; udc 2273 drivers/usb/gadget/udc/mv_udc_core.c udc->clock_gating = 1; udc 2276 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_vbus_irq, IRQF_ONESHOT, "vbus", udc); udc 2281 drivers/usb/gadget/udc/mv_udc_core.c udc->clock_gating = 0; udc 2284 drivers/usb/gadget/udc/mv_udc_core.c udc->qwork = create_singlethread_workqueue("mv_udc_queue"); udc 2285 drivers/usb/gadget/udc/mv_udc_core.c if (!udc->qwork) { udc 2291 drivers/usb/gadget/udc/mv_udc_core.c INIT_WORK(&udc->vbus_work, mv_udc_vbus_work); udc 2299 drivers/usb/gadget/udc/mv_udc_core.c if (udc->clock_gating) udc 2300 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_disable_internal(udc); udc 2302 drivers/usb/gadget/udc/mv_udc_core.c udc->vbus_active = 1; udc 2304 drivers/usb/gadget/udc/mv_udc_core.c retval = usb_add_gadget_udc_release(&pdev->dev, &udc->gadget, udc 2309 drivers/usb/gadget/udc/mv_udc_core.c platform_set_drvdata(pdev, udc); udc 2311 drivers/usb/gadget/udc/mv_udc_core.c udc->clock_gating ? "with" : "without"); udc 2316 drivers/usb/gadget/udc/mv_udc_core.c destroy_workqueue(udc->qwork); udc 2318 drivers/usb/gadget/udc/mv_udc_core.c dma_pool_destroy(udc->dtd_pool); udc 2320 drivers/usb/gadget/udc/mv_udc_core.c dma_free_coherent(&pdev->dev, udc->ep_dqh_size, udc 2321 drivers/usb/gadget/udc/mv_udc_core.c udc->ep_dqh, udc->ep_dqh_dma); udc 2323 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_disable_internal(udc); udc 2331 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 2333 drivers/usb/gadget/udc/mv_udc_core.c udc = dev_get_drvdata(dev); udc 2336 drivers/usb/gadget/udc/mv_udc_core.c if (udc->transceiver) udc 2339 drivers/usb/gadget/udc/mv_udc_core.c if (udc->pdata->vbus && udc->pdata->vbus->poll) udc 2340 drivers/usb/gadget/udc/mv_udc_core.c if (udc->pdata->vbus->poll() == VBUS_HIGH) { udc 2341 drivers/usb/gadget/udc/mv_udc_core.c dev_info(&udc->dev->dev, "USB cable is connected!\n"); udc 2349 drivers/usb/gadget/udc/mv_udc_core.c if (!udc->clock_gating) { udc 2350 drivers/usb/gadget/udc/mv_udc_core.c udc_stop(udc); udc 2352 drivers/usb/gadget/udc/mv_udc_core.c spin_lock_irq(&udc->lock); udc 2354 drivers/usb/gadget/udc/mv_udc_core.c stop_activity(udc, udc->driver); udc 2355 drivers/usb/gadget/udc/mv_udc_core.c spin_unlock_irq(&udc->lock); udc 2357 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_disable_internal(udc); udc 2365 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 2368 drivers/usb/gadget/udc/mv_udc_core.c udc = dev_get_drvdata(dev); udc 2371 drivers/usb/gadget/udc/mv_udc_core.c if (udc->transceiver) udc 2374 drivers/usb/gadget/udc/mv_udc_core.c if (!udc->clock_gating) { udc 2375 drivers/usb/gadget/udc/mv_udc_core.c retval = mv_udc_enable_internal(udc); udc 2379 drivers/usb/gadget/udc/mv_udc_core.c if (udc->driver && udc->softconnect) { udc 2380 drivers/usb/gadget/udc/mv_udc_core.c udc_reset(udc); udc 2381 drivers/usb/gadget/udc/mv_udc_core.c ep0_reset(udc); udc 2382 drivers/usb/gadget/udc/mv_udc_core.c udc_start(udc); udc 2397 drivers/usb/gadget/udc/mv_udc_core.c struct mv_udc *udc; udc 2400 drivers/usb/gadget/udc/mv_udc_core.c udc = platform_get_drvdata(pdev); udc 2402 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_enable(udc); udc 2403 drivers/usb/gadget/udc/mv_udc_core.c mode = readl(&udc->op_regs->usbmode); udc 2405 drivers/usb/gadget/udc/mv_udc_core.c writel(mode, &udc->op_regs->usbmode); udc 2406 drivers/usb/gadget/udc/mv_udc_core.c mv_udc_disable(udc); udc 146 drivers/usb/gadget/udc/omap_udc.c struct omap_udc *udc; udc 190 drivers/usb/gadget/udc/omap_udc.c udc = ep->udc; udc 191 drivers/usb/gadget/udc/omap_udc.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) { udc 196 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 208 drivers/usb/gadget/udc/omap_udc.c omap_writew(udc->clr_halt, UDC_CTRL); udc 213 drivers/usb/gadget/udc/omap_udc.c list_add(&ep->iso, &udc->iso); udc 228 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 246 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&ep->udc->lock, flags); udc 255 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 290 drivers/usb/gadget/udc/omap_udc.c struct omap_udc *udc = ep->udc; udc 301 drivers/usb/gadget/udc/omap_udc.c usb_gadget_unmap_request(&udc->gadget, &req->req, udc 313 drivers/usb/gadget/udc/omap_udc.c spin_unlock(&ep->udc->lock); udc 315 drivers/usb/gadget/udc/omap_udc.c spin_lock(&ep->udc->lock); udc 633 drivers/usb/gadget/udc/omap_udc.c static void dma_irq(struct omap_udc *udc, u16 irq_src) udc 641 drivers/usb/gadget/udc/omap_udc.c ep = &udc->ep[16 + UDC_DMA_TX_SRC(dman_stat)]; udc 660 drivers/usb/gadget/udc/omap_udc.c ep = &udc->ep[UDC_DMA_RX_SRC(dman_stat)]; udc 678 drivers/usb/gadget/udc/omap_udc.c ep = &udc->ep[UDC_DMA_RX_SRC(dman_stat)]; udc 867 drivers/usb/gadget/udc/omap_udc.c struct omap_udc *udc; udc 899 drivers/usb/gadget/udc/omap_udc.c udc = ep->udc; udc 900 drivers/usb/gadget/udc/omap_udc.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) udc 904 drivers/usb/gadget/udc/omap_udc.c usb_gadget_map_request(&udc->gadget, &req->req, udc 910 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 926 drivers/usb/gadget/udc/omap_udc.c if (!udc->ep0_pending || !list_empty(&ep->queue)) { udc 927 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 932 drivers/usb/gadget/udc/omap_udc.c is_in = udc->ep0_in; udc 939 drivers/usb/gadget/udc/omap_udc.c if (udc->ep0_set_config) { udc 943 drivers/usb/gadget/udc/omap_udc.c if (!udc->ep0_reset_config) udc 960 drivers/usb/gadget/udc/omap_udc.c udc->ep0_pending = 0; udc 969 drivers/usb/gadget/udc/omap_udc.c if (udc->ep0_setup) udc 998 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1012 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&ep->udc->lock, flags); udc 1020 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 1034 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 1046 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&ep->udc->lock, flags); udc 1050 drivers/usb/gadget/udc/omap_udc.c if (!ep->udc->ep0_pending) udc 1053 drivers/usb/gadget/udc/omap_udc.c if (ep->udc->ep0_set_config) { udc 1058 drivers/usb/gadget/udc/omap_udc.c ep->udc->ep0_pending = 0; udc 1095 drivers/usb/gadget/udc/omap_udc.c omap_writew(ep->udc->clr_halt, UDC_CTRL); udc 1107 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 1136 drivers/usb/gadget/udc/omap_udc.c struct omap_udc *udc; udc 1140 drivers/usb/gadget/udc/omap_udc.c udc = container_of(gadget, struct omap_udc, gadget); udc 1142 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1143 drivers/usb/gadget/udc/omap_udc.c if (udc->devstat & UDC_SUS) { udc 1147 drivers/usb/gadget/udc/omap_udc.c if (udc->devstat & (UDC_B_HNP_ENABLE|UDC_R_WK_OK)) { udc 1154 drivers/usb/gadget/udc/omap_udc.c } else if (!(udc->devstat & UDC_ATT)) { udc 1155 drivers/usb/gadget/udc/omap_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) udc 1156 drivers/usb/gadget/udc/omap_udc.c retval = otg_start_srp(udc->transceiver->otg); udc 1158 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1166 drivers/usb/gadget/udc/omap_udc.c struct omap_udc *udc; udc 1171 drivers/usb/gadget/udc/omap_udc.c udc = container_of(gadget, struct omap_udc, gadget); udc 1172 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1179 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1184 drivers/usb/gadget/udc/omap_udc.c static int can_pullup(struct omap_udc *udc) udc 1186 drivers/usb/gadget/udc/omap_udc.c return udc->driver && udc->softconnect && udc->vbus_active; udc 1189 drivers/usb/gadget/udc/omap_udc.c static void pullup_enable(struct omap_udc *udc) udc 1196 drivers/usb/gadget/udc/omap_udc.c if (!gadget_is_otg(&udc->gadget) && !cpu_is_omap15xx()) { udc 1206 drivers/usb/gadget/udc/omap_udc.c static void pullup_disable(struct omap_udc *udc) udc 1210 drivers/usb/gadget/udc/omap_udc.c if (!gadget_is_otg(&udc->gadget) && !cpu_is_omap15xx()) { udc 1223 drivers/usb/gadget/udc/omap_udc.c static struct omap_udc *udc; udc 1227 drivers/usb/gadget/udc/omap_udc.c if (udc == NULL || udc->dc_clk == NULL || udc->hhc_clk == NULL) udc 1231 drivers/usb/gadget/udc/omap_udc.c clk_enable(udc->dc_clk); udc 1232 drivers/usb/gadget/udc/omap_udc.c clk_enable(udc->hhc_clk); udc 1235 drivers/usb/gadget/udc/omap_udc.c clk_disable(udc->hhc_clk); udc 1236 drivers/usb/gadget/udc/omap_udc.c clk_disable(udc->dc_clk); udc 1246 drivers/usb/gadget/udc/omap_udc.c struct omap_udc *udc; udc 1250 drivers/usb/gadget/udc/omap_udc.c udc = container_of(gadget, struct omap_udc, gadget); udc 1251 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1253 drivers/usb/gadget/udc/omap_udc.c udc->vbus_active = (is_active != 0); udc 1263 drivers/usb/gadget/udc/omap_udc.c if (udc->dc_clk != NULL && is_active) { udc 1264 drivers/usb/gadget/udc/omap_udc.c if (!udc->clk_requested) { udc 1266 drivers/usb/gadget/udc/omap_udc.c udc->clk_requested = 1; udc 1269 drivers/usb/gadget/udc/omap_udc.c if (can_pullup(udc)) udc 1270 drivers/usb/gadget/udc/omap_udc.c pullup_enable(udc); udc 1272 drivers/usb/gadget/udc/omap_udc.c pullup_disable(udc); udc 1273 drivers/usb/gadget/udc/omap_udc.c if (udc->dc_clk != NULL && !is_active) { udc 1274 drivers/usb/gadget/udc/omap_udc.c if (udc->clk_requested) { udc 1276 drivers/usb/gadget/udc/omap_udc.c udc->clk_requested = 0; udc 1279 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1285 drivers/usb/gadget/udc/omap_udc.c struct omap_udc *udc; udc 1287 drivers/usb/gadget/udc/omap_udc.c udc = container_of(gadget, struct omap_udc, gadget); udc 1288 drivers/usb/gadget/udc/omap_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) udc 1289 drivers/usb/gadget/udc/omap_udc.c return usb_phy_set_power(udc->transceiver, mA); udc 1295 drivers/usb/gadget/udc/omap_udc.c struct omap_udc *udc; udc 1298 drivers/usb/gadget/udc/omap_udc.c udc = container_of(gadget, struct omap_udc, gadget); udc 1299 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1300 drivers/usb/gadget/udc/omap_udc.c udc->softconnect = (is_on != 0); udc 1301 drivers/usb/gadget/udc/omap_udc.c if (can_pullup(udc)) udc 1302 drivers/usb/gadget/udc/omap_udc.c pullup_enable(udc); udc 1304 drivers/usb/gadget/udc/omap_udc.c pullup_disable(udc); udc 1305 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1348 drivers/usb/gadget/udc/omap_udc.c static void udc_quiesce(struct omap_udc *udc) udc 1352 drivers/usb/gadget/udc/omap_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1353 drivers/usb/gadget/udc/omap_udc.c nuke(&udc->ep[0], -ESHUTDOWN); udc 1354 drivers/usb/gadget/udc/omap_udc.c list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) udc 1360 drivers/usb/gadget/udc/omap_udc.c static void update_otg(struct omap_udc *udc) udc 1364 drivers/usb/gadget/udc/omap_udc.c if (!gadget_is_otg(&udc->gadget)) udc 1372 drivers/usb/gadget/udc/omap_udc.c udc->gadget.b_hnp_enable = !!(devstat & UDC_B_HNP_ENABLE); udc 1373 drivers/usb/gadget/udc/omap_udc.c udc->gadget.a_hnp_support = !!(devstat & UDC_A_HNP_SUPPORT); udc 1374 drivers/usb/gadget/udc/omap_udc.c udc->gadget.a_alt_hnp_support = !!(devstat & UDC_A_ALT_HNP_SUPPORT); udc 1379 drivers/usb/gadget/udc/omap_udc.c if (udc->gadget.b_hnp_enable) { udc 1389 drivers/usb/gadget/udc/omap_udc.c static void ep0_irq(struct omap_udc *udc, u16 irq_src) udc 1391 drivers/usb/gadget/udc/omap_udc.c struct omap_ep *ep0 = &udc->ep[0]; udc 1428 drivers/usb/gadget/udc/omap_udc.c if (udc->ep0_in) { udc 1435 drivers/usb/gadget/udc/omap_udc.c if (!req && udc->ep0_pending) { udc 1440 drivers/usb/gadget/udc/omap_udc.c udc->ep0_pending = 0; udc 1465 drivers/usb/gadget/udc/omap_udc.c if (!udc->ep0_in) { udc 1473 drivers/usb/gadget/udc/omap_udc.c udc->ep0_pending = 0; udc 1488 drivers/usb/gadget/udc/omap_udc.c udc->ep0_pending = 0; udc 1532 drivers/usb/gadget/udc/omap_udc.c udc->ep0_in = (u.r.bRequestType & USB_DIR_IN) != 0; udc 1533 drivers/usb/gadget/udc/omap_udc.c udc->ep0_set_config = 0; udc 1534 drivers/usb/gadget/udc/omap_udc.c udc->ep0_pending = 1; udc 1544 drivers/usb/gadget/udc/omap_udc.c udc->ep0_set_config = 1; udc 1545 drivers/usb/gadget/udc/omap_udc.c udc->ep0_reset_config = (w_value == 0); udc 1552 drivers/usb/gadget/udc/omap_udc.c if (udc->ep0_reset_config) udc 1556 drivers/usb/gadget/udc/omap_udc.c update_otg(udc); udc 1565 drivers/usb/gadget/udc/omap_udc.c ep = &udc->ep[w_index & 0xf]; udc 1573 drivers/usb/gadget/udc/omap_udc.c omap_writew(udc->clr_halt, UDC_CTRL); udc 1594 drivers/usb/gadget/udc/omap_udc.c ep = &udc->ep[w_index & 0xf]; udc 1618 drivers/usb/gadget/udc/omap_udc.c udc->ep0_pending = 0; udc 1630 drivers/usb/gadget/udc/omap_udc.c ep = &udc->ep[w_index & 0xf]; udc 1665 drivers/usb/gadget/udc/omap_udc.c if (!udc->ep0_in && w_length) { udc 1693 drivers/usb/gadget/udc/omap_udc.c udc->ep0_setup = 1; udc 1694 drivers/usb/gadget/udc/omap_udc.c spin_unlock(&udc->lock); udc 1695 drivers/usb/gadget/udc/omap_udc.c status = udc->driver->setup(&udc->gadget, &u.r); udc 1696 drivers/usb/gadget/udc/omap_udc.c spin_lock(&udc->lock); udc 1697 drivers/usb/gadget/udc/omap_udc.c udc->ep0_setup = 0; udc 1704 drivers/usb/gadget/udc/omap_udc.c if (udc->ep0_set_config) { udc 1705 drivers/usb/gadget/udc/omap_udc.c if (udc->ep0_reset_config) udc 1711 drivers/usb/gadget/udc/omap_udc.c udc->ep0_pending = 0; udc 1720 drivers/usb/gadget/udc/omap_udc.c static void devstate_irq(struct omap_udc *udc, u16 irq_src) udc 1725 drivers/usb/gadget/udc/omap_udc.c change = devstat ^ udc->devstat; udc 1726 drivers/usb/gadget/udc/omap_udc.c udc->devstat = devstat; udc 1729 drivers/usb/gadget/udc/omap_udc.c udc_quiesce(udc); udc 1736 drivers/usb/gadget/udc/omap_udc.c udc->gadget.speed = USB_SPEED_FULL; udc 1738 drivers/usb/gadget/udc/omap_udc.c if (IS_ERR_OR_NULL(udc->transceiver)) udc 1739 drivers/usb/gadget/udc/omap_udc.c pullup_enable(udc); udc 1741 drivers/usb/gadget/udc/omap_udc.c } else if (udc->gadget.speed != USB_SPEED_UNKNOWN) { udc 1742 drivers/usb/gadget/udc/omap_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1743 drivers/usb/gadget/udc/omap_udc.c if (IS_ERR_OR_NULL(udc->transceiver)) udc 1744 drivers/usb/gadget/udc/omap_udc.c pullup_disable(udc); udc 1746 drivers/usb/gadget/udc/omap_udc.c udc->driver->driver.name); udc 1747 drivers/usb/gadget/udc/omap_udc.c if (udc->driver->disconnect) { udc 1748 drivers/usb/gadget/udc/omap_udc.c spin_unlock(&udc->lock); udc 1749 drivers/usb/gadget/udc/omap_udc.c udc->driver->disconnect(&udc->gadget); udc 1750 drivers/usb/gadget/udc/omap_udc.c spin_lock(&udc->lock); udc 1760 drivers/usb/gadget/udc/omap_udc.c udc->gadget.speed = USB_SPEED_FULL; udc 1762 drivers/usb/gadget/udc/omap_udc.c udc->driver->driver.name); udc 1771 drivers/usb/gadget/udc/omap_udc.c if (udc->gadget.speed != USB_SPEED_UNKNOWN) { udc 1775 drivers/usb/gadget/udc/omap_udc.c update_otg(udc); udc 1777 drivers/usb/gadget/udc/omap_udc.c if (udc->gadget.speed == USB_SPEED_FULL udc 1778 drivers/usb/gadget/udc/omap_udc.c && udc->driver->suspend) { udc 1779 drivers/usb/gadget/udc/omap_udc.c spin_unlock(&udc->lock); udc 1780 drivers/usb/gadget/udc/omap_udc.c udc->driver->suspend(&udc->gadget); udc 1781 drivers/usb/gadget/udc/omap_udc.c spin_lock(&udc->lock); udc 1783 drivers/usb/gadget/udc/omap_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) udc 1785 drivers/usb/gadget/udc/omap_udc.c udc->transceiver, 1); udc 1788 drivers/usb/gadget/udc/omap_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) udc 1790 drivers/usb/gadget/udc/omap_udc.c udc->transceiver, 0); udc 1791 drivers/usb/gadget/udc/omap_udc.c if (udc->gadget.speed == USB_SPEED_FULL udc 1792 drivers/usb/gadget/udc/omap_udc.c && udc->driver->resume) { udc 1793 drivers/usb/gadget/udc/omap_udc.c spin_unlock(&udc->lock); udc 1794 drivers/usb/gadget/udc/omap_udc.c udc->driver->resume(&udc->gadget); udc 1795 drivers/usb/gadget/udc/omap_udc.c spin_lock(&udc->lock); udc 1802 drivers/usb/gadget/udc/omap_udc.c update_otg(udc); udc 1816 drivers/usb/gadget/udc/omap_udc.c struct omap_udc *udc = _udc; udc 1821 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1848 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1863 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&ep->udc->lock, flags); udc 1883 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&ep->udc->lock, flags); udc 1892 drivers/usb/gadget/udc/omap_udc.c struct omap_udc *udc = _dev; udc 1896 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1905 drivers/usb/gadget/udc/omap_udc.c ep = &udc->ep[epnum]; udc 1941 drivers/usb/gadget/udc/omap_udc.c ep = &udc->ep[16 + epnum]; udc 1960 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1967 drivers/usb/gadget/udc/omap_udc.c struct omap_udc *udc = _dev; udc 1972 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 1975 drivers/usb/gadget/udc/omap_udc.c list_for_each_entry(ep, &udc->iso, iso) { udc 2025 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2050 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2052 drivers/usb/gadget/udc/omap_udc.c list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) { udc 2059 drivers/usb/gadget/udc/omap_udc.c udc->ep0_pending = 0; udc 2060 drivers/usb/gadget/udc/omap_udc.c udc->ep[0].irqs = 0; udc 2061 drivers/usb/gadget/udc/omap_udc.c udc->softconnect = 1; udc 2065 drivers/usb/gadget/udc/omap_udc.c udc->driver = driver; udc 2066 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2068 drivers/usb/gadget/udc/omap_udc.c if (udc->dc_clk != NULL) udc 2074 drivers/usb/gadget/udc/omap_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) { udc 2075 drivers/usb/gadget/udc/omap_udc.c status = otg_set_peripheral(udc->transceiver->otg, udc 2076 drivers/usb/gadget/udc/omap_udc.c &udc->gadget); udc 2079 drivers/usb/gadget/udc/omap_udc.c udc->driver = NULL; udc 2084 drivers/usb/gadget/udc/omap_udc.c if (can_pullup(udc)) udc 2085 drivers/usb/gadget/udc/omap_udc.c pullup_enable(udc); udc 2087 drivers/usb/gadget/udc/omap_udc.c pullup_disable(udc); udc 2094 drivers/usb/gadget/udc/omap_udc.c omap_vbus_session(&udc->gadget, 1); udc 2097 drivers/usb/gadget/udc/omap_udc.c if (udc->dc_clk != NULL) udc 2107 drivers/usb/gadget/udc/omap_udc.c if (udc->dc_clk != NULL) udc 2111 drivers/usb/gadget/udc/omap_udc.c omap_vbus_session(&udc->gadget, 0); udc 2113 drivers/usb/gadget/udc/omap_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) udc 2114 drivers/usb/gadget/udc/omap_udc.c (void) otg_set_peripheral(udc->transceiver->otg, NULL); udc 2116 drivers/usb/gadget/udc/omap_udc.c pullup_disable(udc); udc 2118 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2119 drivers/usb/gadget/udc/omap_udc.c udc_quiesce(udc); udc 2120 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2122 drivers/usb/gadget/udc/omap_udc.c udc->driver = NULL; udc 2124 drivers/usb/gadget/udc/omap_udc.c if (udc->dc_clk != NULL) udc 2300 drivers/usb/gadget/udc/omap_udc.c spin_lock_irqsave(&udc->lock, flags); udc 2316 drivers/usb/gadget/udc/omap_udc.c udc->driver ? udc->driver->driver.name : "(none)", udc 2318 drivers/usb/gadget/udc/omap_udc.c udc->transceiver udc 2319 drivers/usb/gadget/udc/omap_udc.c ? udc->transceiver->label udc 2346 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2423 drivers/usb/gadget/udc/omap_udc.c proc_ep_show(s, &udc->ep[0]); udc 2425 drivers/usb/gadget/udc/omap_udc.c list_for_each_entry(ep, &udc->gadget.ep_list, udc 2432 drivers/usb/gadget/udc/omap_udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 2471 drivers/usb/gadget/udc/omap_udc.c ep = &udc->ep[addr & 0xf]; udc 2562 drivers/usb/gadget/udc/omap_udc.c ep->udc = udc; udc 2590 drivers/usb/gadget/udc/omap_udc.c list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); udc 2597 drivers/usb/gadget/udc/omap_udc.c pullup_disable(udc); udc 2598 drivers/usb/gadget/udc/omap_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) { udc 2599 drivers/usb/gadget/udc/omap_udc.c usb_put_phy(udc->transceiver); udc 2600 drivers/usb/gadget/udc/omap_udc.c udc->transceiver = NULL; udc 2604 drivers/usb/gadget/udc/omap_udc.c if (udc->dc_clk) { udc 2605 drivers/usb/gadget/udc/omap_udc.c if (udc->clk_requested) udc 2607 drivers/usb/gadget/udc/omap_udc.c clk_put(udc->hhc_clk); udc 2608 drivers/usb/gadget/udc/omap_udc.c clk_put(udc->dc_clk); udc 2610 drivers/usb/gadget/udc/omap_udc.c if (udc->done) udc 2611 drivers/usb/gadget/udc/omap_udc.c complete(udc->done); udc 2612 drivers/usb/gadget/udc/omap_udc.c kfree(udc); udc 2631 drivers/usb/gadget/udc/omap_udc.c udc = kzalloc(sizeof(*udc), GFP_KERNEL); udc 2632 drivers/usb/gadget/udc/omap_udc.c if (!udc) udc 2635 drivers/usb/gadget/udc/omap_udc.c spin_lock_init(&udc->lock); udc 2637 drivers/usb/gadget/udc/omap_udc.c udc->gadget.ops = &omap_gadget_ops; udc 2638 drivers/usb/gadget/udc/omap_udc.c udc->gadget.ep0 = &udc->ep[0].ep; udc 2639 drivers/usb/gadget/udc/omap_udc.c INIT_LIST_HEAD(&udc->gadget.ep_list); udc 2640 drivers/usb/gadget/udc/omap_udc.c INIT_LIST_HEAD(&udc->iso); udc 2641 drivers/usb/gadget/udc/omap_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 2642 drivers/usb/gadget/udc/omap_udc.c udc->gadget.max_speed = USB_SPEED_FULL; udc 2643 drivers/usb/gadget/udc/omap_udc.c udc->gadget.name = driver_name; udc 2644 drivers/usb/gadget/udc/omap_udc.c udc->gadget.quirk_ep_out_aligned_size = 1; udc 2645 drivers/usb/gadget/udc/omap_udc.c udc->transceiver = xceiv; udc 2650 drivers/usb/gadget/udc/omap_udc.c list_del_init(&udc->ep[0].ep.ep_list); udc 2873 drivers/usb/gadget/udc/omap_udc.c pullup_disable(udc); udc 2875 drivers/usb/gadget/udc/omap_udc.c udc->gadget.is_otg = (config->otg != 0); udc 2880 drivers/usb/gadget/udc/omap_udc.c udc->clr_halt = UDC_RESET_EP | UDC_CLRDATA_TOGGLE; udc 2882 drivers/usb/gadget/udc/omap_udc.c udc->clr_halt = UDC_RESET_EP; udc 2886 drivers/usb/gadget/udc/omap_udc.c omap_udc_irq, 0, driver_name, udc); udc 2895 drivers/usb/gadget/udc/omap_udc.c omap_udc_pio_irq, 0, "omap_udc pio", udc); udc 2903 drivers/usb/gadget/udc/omap_udc.c omap_udc_iso_irq, 0, "omap_udc iso", udc); udc 2911 drivers/usb/gadget/udc/omap_udc.c udc->dc_clk = dc_clk; udc 2912 drivers/usb/gadget/udc/omap_udc.c udc->hhc_clk = hhc_clk; udc 2918 drivers/usb/gadget/udc/omap_udc.c return usb_add_gadget_udc_release(&pdev->dev, &udc->gadget, udc 2922 drivers/usb/gadget/udc/omap_udc.c kfree(udc); udc 2923 drivers/usb/gadget/udc/omap_udc.c udc = NULL; udc 2946 drivers/usb/gadget/udc/omap_udc.c udc->done = &done; udc 2948 drivers/usb/gadget/udc/omap_udc.c usb_del_gadget_udc(&udc->gadget); udc 2980 drivers/usb/gadget/udc/omap_udc.c omap_pullup(&udc->gadget, 0); udc 2989 drivers/usb/gadget/udc/omap_udc.c omap_pullup(&udc->gadget, 1); udc 2993 drivers/usb/gadget/udc/omap_udc.c return omap_wakeup(&udc->gadget); udc 156 drivers/usb/gadget/udc/omap_udc.h struct omap_udc *udc; udc 1128 drivers/usb/gadget/udc/pxa25x_udc.c struct pxa25x_udc *udc; udc 1130 drivers/usb/gadget/udc/pxa25x_udc.c udc = container_of(_gadget, struct pxa25x_udc, gadget); udc 1133 drivers/usb/gadget/udc/pxa25x_udc.c if ((udc_ep0_get_UDCCS(udc) & UDCCS0_DRWF) == 0) udc 1135 drivers/usb/gadget/udc/pxa25x_udc.c udc_set_mask_UDCCR(udc, UDCCR_RSM); udc 1146 drivers/usb/gadget/udc/pxa25x_udc.c static int pullup(struct pxa25x_udc *udc) udc 1148 drivers/usb/gadget/udc/pxa25x_udc.c int is_active = udc->vbus && udc->pullup && !udc->suspended; udc 1151 drivers/usb/gadget/udc/pxa25x_udc.c if (!udc->active) { udc 1152 drivers/usb/gadget/udc/pxa25x_udc.c udc->active = 1; udc 1154 drivers/usb/gadget/udc/pxa25x_udc.c clk_enable(udc->clk); udc 1155 drivers/usb/gadget/udc/pxa25x_udc.c udc_enable(udc); udc 1158 drivers/usb/gadget/udc/pxa25x_udc.c if (udc->active) { udc 1159 drivers/usb/gadget/udc/pxa25x_udc.c if (udc->gadget.speed != USB_SPEED_UNKNOWN) { udc 1160 drivers/usb/gadget/udc/pxa25x_udc.c DMSG("disconnect %s\n", udc->driver udc 1161 drivers/usb/gadget/udc/pxa25x_udc.c ? udc->driver->driver.name udc 1163 drivers/usb/gadget/udc/pxa25x_udc.c stop_activity(udc, udc->driver); udc 1165 drivers/usb/gadget/udc/pxa25x_udc.c udc_disable(udc); udc 1167 drivers/usb/gadget/udc/pxa25x_udc.c clk_disable(udc->clk); udc 1168 drivers/usb/gadget/udc/pxa25x_udc.c udc->active = 0; udc 1178 drivers/usb/gadget/udc/pxa25x_udc.c struct pxa25x_udc *udc; udc 1180 drivers/usb/gadget/udc/pxa25x_udc.c udc = container_of(_gadget, struct pxa25x_udc, gadget); udc 1181 drivers/usb/gadget/udc/pxa25x_udc.c udc->vbus = is_active; udc 1183 drivers/usb/gadget/udc/pxa25x_udc.c pullup(udc); udc 1190 drivers/usb/gadget/udc/pxa25x_udc.c struct pxa25x_udc *udc; udc 1192 drivers/usb/gadget/udc/pxa25x_udc.c udc = container_of(_gadget, struct pxa25x_udc, gadget); udc 1195 drivers/usb/gadget/udc/pxa25x_udc.c if (!gpio_is_valid(udc->mach->gpio_pullup) && !udc->mach->udc_command) udc 1198 drivers/usb/gadget/udc/pxa25x_udc.c udc->pullup = (is_active != 0); udc 1199 drivers/usb/gadget/udc/pxa25x_udc.c pullup(udc); udc 1209 drivers/usb/gadget/udc/pxa25x_udc.c struct pxa25x_udc *udc; udc 1211 drivers/usb/gadget/udc/pxa25x_udc.c udc = container_of(_gadget, struct pxa25x_udc, gadget); udc 1213 drivers/usb/gadget/udc/pxa25x_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) udc 1214 drivers/usb/gadget/udc/pxa25x_udc.c return usb_phy_set_power(udc->transceiver, mA); udc 2498 drivers/usb/gadget/udc/pxa25x_udc.c struct pxa25x_udc *udc = platform_get_drvdata(dev); udc 2501 drivers/usb/gadget/udc/pxa25x_udc.c if (!gpio_is_valid(udc->mach->gpio_pullup) && !udc->mach->udc_command) udc 2503 drivers/usb/gadget/udc/pxa25x_udc.c udc->suspended = 1; udc 2506 drivers/usb/gadget/udc/pxa25x_udc.c pullup(udc); udc 2514 drivers/usb/gadget/udc/pxa25x_udc.c struct pxa25x_udc *udc = platform_get_drvdata(dev); udc 2517 drivers/usb/gadget/udc/pxa25x_udc.c udc->suspended = 0; udc 2519 drivers/usb/gadget/udc/pxa25x_udc.c pullup(udc); udc 92 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = s->private; udc 95 drivers/usb/gadget/udc/pxa27x_udc.c if (!udc->driver) udc 103 drivers/usb/gadget/udc/pxa27x_udc.c udc->driver ? udc->driver->driver.name : "(none)"); udc 105 drivers/usb/gadget/udc/pxa27x_udc.c tmp = udc_readl(udc, UDCCR); udc 124 drivers/usb/gadget/udc/pxa27x_udc.c udc_readl(udc, UDCICR0), udc_readl(udc, UDCICR1)); udc 126 drivers/usb/gadget/udc/pxa27x_udc.c udc_readl(udc, UDCISR0), udc_readl(udc, UDCISR1)); udc 127 drivers/usb/gadget/udc/pxa27x_udc.c seq_printf(s, "udcfnr=%d\n", udc_readl(udc, UDCFNR)); udc 129 drivers/usb/gadget/udc/pxa27x_udc.c udc->stats.irqs_reset, udc->stats.irqs_suspend, udc 130 drivers/usb/gadget/udc/pxa27x_udc.c udc->stats.irqs_resume, udc->stats.irqs_reconfig); udc 138 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = s->private; udc 143 drivers/usb/gadget/udc/pxa27x_udc.c if (!udc->driver) udc 148 drivers/usb/gadget/udc/pxa27x_udc.c ep = &udc->pxa_ep[i]; udc 171 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = s->private; udc 176 drivers/usb/gadget/udc/pxa27x_udc.c if (!udc->driver) udc 179 drivers/usb/gadget/udc/pxa27x_udc.c ep = &udc->pxa_ep[0]; udc 191 drivers/usb/gadget/udc/pxa27x_udc.c ep = &udc->pxa_ep[i]; udc 192 drivers/usb/gadget/udc/pxa27x_udc.c tmp = i? udc_ep_readl(ep, UDCCR) : udc_readl(udc, UDCCR); udc 206 drivers/usb/gadget/udc/pxa27x_udc.c static void pxa_init_debugfs(struct pxa_udc *udc) udc 210 drivers/usb/gadget/udc/pxa27x_udc.c root = debugfs_create_dir(udc->gadget.name, NULL); udc 211 drivers/usb/gadget/udc/pxa27x_udc.c udc->debugfs_root = root; udc 213 drivers/usb/gadget/udc/pxa27x_udc.c debugfs_create_file("udcstate", 0400, root, udc, &state_dbg_fops); udc 214 drivers/usb/gadget/udc/pxa27x_udc.c debugfs_create_file("queues", 0400, root, udc, &queues_dbg_fops); udc 215 drivers/usb/gadget/udc/pxa27x_udc.c debugfs_create_file("epstate", 0400, root, udc, &eps_dbg_fops); udc 218 drivers/usb/gadget/udc/pxa27x_udc.c static void pxa_cleanup_debugfs(struct pxa_udc *udc) udc 220 drivers/usb/gadget/udc/pxa27x_udc.c debugfs_remove_recursive(udc->debugfs_root); udc 224 drivers/usb/gadget/udc/pxa27x_udc.c static inline void pxa_init_debugfs(struct pxa_udc *udc) udc 228 drivers/usb/gadget/udc/pxa27x_udc.c static inline void pxa_cleanup_debugfs(struct pxa_udc *udc) udc 283 drivers/usb/gadget/udc/pxa27x_udc.c static struct pxa_ep *find_pxa_ep(struct pxa_udc *udc, udc 288 drivers/usb/gadget/udc/pxa27x_udc.c int cfg = udc->config; udc 289 drivers/usb/gadget/udc/pxa27x_udc.c int iface = udc->last_interface; udc 290 drivers/usb/gadget/udc/pxa27x_udc.c int alt = udc->last_alternate; udc 292 drivers/usb/gadget/udc/pxa27x_udc.c if (udc_usb_ep == &udc->udc_usb_ep[0]) udc 293 drivers/usb/gadget/udc/pxa27x_udc.c return &udc->pxa_ep[0]; udc 296 drivers/usb/gadget/udc/pxa27x_udc.c ep = &udc->pxa_ep[i]; udc 313 drivers/usb/gadget/udc/pxa27x_udc.c static void update_pxa_ep_matches(struct pxa_udc *udc) udc 319 drivers/usb/gadget/udc/pxa27x_udc.c udc_usb_ep = &udc->udc_usb_ep[i]; udc 321 drivers/usb/gadget/udc/pxa27x_udc.c udc_usb_ep->pxa_ep = find_pxa_ep(udc, udc_usb_ep); udc 331 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = ep->dev; udc 333 drivers/usb/gadget/udc/pxa27x_udc.c u32 udcicr0 = udc_readl(udc, UDCICR0); udc 334 drivers/usb/gadget/udc/pxa27x_udc.c u32 udcicr1 = udc_readl(udc, UDCICR1); udc 337 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCICR0, udcicr0 | (3 << (index * 2))); udc 339 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCICR1, udcicr1 | (3 << ((index - 16) * 2))); udc 348 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = ep->dev; udc 350 drivers/usb/gadget/udc/pxa27x_udc.c u32 udcicr0 = udc_readl(udc, UDCICR0); udc 351 drivers/usb/gadget/udc/pxa27x_udc.c u32 udcicr1 = udc_readl(udc, UDCICR1); udc 354 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCICR0, udcicr0 & ~(3 << (index * 2))); udc 356 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCICR1, udcicr1 & ~(3 << ((index - 16) * 2))); udc 366 drivers/usb/gadget/udc/pxa27x_udc.c static inline void udc_set_mask_UDCCR(struct pxa_udc *udc, int mask) udc 368 drivers/usb/gadget/udc/pxa27x_udc.c u32 udccr = udc_readl(udc, UDCCR); udc 369 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCCR, udc 380 drivers/usb/gadget/udc/pxa27x_udc.c static inline void udc_clear_mask_UDCCR(struct pxa_udc *udc, int mask) udc 382 drivers/usb/gadget/udc/pxa27x_udc.c u32 udccr = udc_readl(udc, UDCCR); udc 383 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCCR, udc 478 drivers/usb/gadget/udc/pxa27x_udc.c static void set_ep0state(struct pxa_udc *udc, int state) udc 480 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_ep *ep = &udc->pxa_ep[0]; udc 481 drivers/usb/gadget/udc/pxa27x_udc.c char *old_stname = EP0_STNAME(udc); udc 483 drivers/usb/gadget/udc/pxa27x_udc.c udc->ep0state = state; udc 485 drivers/usb/gadget/udc/pxa27x_udc.c EP0_STNAME(udc), udc_ep_readl(ep, UDCCSR), udc 1322 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc; udc 1355 drivers/usb/gadget/udc/pxa27x_udc.c udc = ep->dev; udc 1357 drivers/usb/gadget/udc/pxa27x_udc.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) { udc 1426 drivers/usb/gadget/udc/pxa27x_udc.c static void dplus_pullup(struct pxa_udc *udc, int on) udc 1428 drivers/usb/gadget/udc/pxa27x_udc.c if (udc->gpiod) { udc 1429 drivers/usb/gadget/udc/pxa27x_udc.c gpiod_set_value(udc->gpiod, on); udc 1430 drivers/usb/gadget/udc/pxa27x_udc.c } else if (udc->udc_command) { udc 1432 drivers/usb/gadget/udc/pxa27x_udc.c udc->udc_command(PXA2XX_UDC_CMD_CONNECT); udc 1434 drivers/usb/gadget/udc/pxa27x_udc.c udc->udc_command(PXA2XX_UDC_CMD_DISCONNECT); udc 1436 drivers/usb/gadget/udc/pxa27x_udc.c udc->pullup_on = on; udc 1445 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = to_gadget_udc(_gadget); udc 1447 drivers/usb/gadget/udc/pxa27x_udc.c return (udc_readl(udc, UDCFNR) & 0x7ff); udc 1458 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = to_gadget_udc(_gadget); udc 1461 drivers/usb/gadget/udc/pxa27x_udc.c if ((udc_readl(udc, UDCCR) & UDCCR_DWRE) == 0) udc 1463 drivers/usb/gadget/udc/pxa27x_udc.c udc_set_mask_UDCCR(udc, UDCCR_UDR); udc 1467 drivers/usb/gadget/udc/pxa27x_udc.c static void udc_enable(struct pxa_udc *udc); udc 1468 drivers/usb/gadget/udc/pxa27x_udc.c static void udc_disable(struct pxa_udc *udc); udc 1483 drivers/usb/gadget/udc/pxa27x_udc.c static int should_enable_udc(struct pxa_udc *udc) udc 1487 drivers/usb/gadget/udc/pxa27x_udc.c put_on = ((udc->pullup_on) && (udc->driver)); udc 1488 drivers/usb/gadget/udc/pxa27x_udc.c put_on &= ((udc->vbus_sensed) || (IS_ERR_OR_NULL(udc->transceiver))); udc 1504 drivers/usb/gadget/udc/pxa27x_udc.c static int should_disable_udc(struct pxa_udc *udc) udc 1508 drivers/usb/gadget/udc/pxa27x_udc.c put_off = ((!udc->pullup_on) || (!udc->driver)); udc 1509 drivers/usb/gadget/udc/pxa27x_udc.c put_off |= ((!udc->vbus_sensed) && (!IS_ERR_OR_NULL(udc->transceiver))); udc 1523 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = to_gadget_udc(_gadget); udc 1525 drivers/usb/gadget/udc/pxa27x_udc.c if (!udc->gpiod && !udc->udc_command) udc 1528 drivers/usb/gadget/udc/pxa27x_udc.c dplus_pullup(udc, is_active); udc 1530 drivers/usb/gadget/udc/pxa27x_udc.c if (should_enable_udc(udc)) udc 1531 drivers/usb/gadget/udc/pxa27x_udc.c udc_enable(udc); udc 1532 drivers/usb/gadget/udc/pxa27x_udc.c if (should_disable_udc(udc)) udc 1533 drivers/usb/gadget/udc/pxa27x_udc.c udc_disable(udc); udc 1549 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = to_gadget_udc(_gadget); udc 1551 drivers/usb/gadget/udc/pxa27x_udc.c udc->vbus_sensed = is_active; udc 1552 drivers/usb/gadget/udc/pxa27x_udc.c if (should_enable_udc(udc)) udc 1553 drivers/usb/gadget/udc/pxa27x_udc.c udc_enable(udc); udc 1554 drivers/usb/gadget/udc/pxa27x_udc.c if (should_disable_udc(udc)) udc 1555 drivers/usb/gadget/udc/pxa27x_udc.c udc_disable(udc); udc 1574 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc; udc 1576 drivers/usb/gadget/udc/pxa27x_udc.c udc = to_gadget_udc(_gadget); udc 1577 drivers/usb/gadget/udc/pxa27x_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) udc 1578 drivers/usb/gadget/udc/pxa27x_udc.c return usb_phy_set_power(udc->transceiver, mA); udc 1635 drivers/usb/gadget/udc/pxa27x_udc.c static void udc_disable(struct pxa_udc *udc) udc 1637 drivers/usb/gadget/udc/pxa27x_udc.c if (!udc->enabled) udc 1640 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCICR0, 0); udc 1641 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCICR1, 0); udc 1643 drivers/usb/gadget/udc/pxa27x_udc.c udc_clear_mask_UDCCR(udc, UDCCR_UDE); udc 1645 drivers/usb/gadget/udc/pxa27x_udc.c ep0_idle(udc); udc 1646 drivers/usb/gadget/udc/pxa27x_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1647 drivers/usb/gadget/udc/pxa27x_udc.c clk_disable(udc->clk); udc 1649 drivers/usb/gadget/udc/pxa27x_udc.c udc->enabled = 0; udc 1696 drivers/usb/gadget/udc/pxa27x_udc.c static void udc_enable(struct pxa_udc *udc) udc 1698 drivers/usb/gadget/udc/pxa27x_udc.c if (udc->enabled) udc 1701 drivers/usb/gadget/udc/pxa27x_udc.c clk_enable(udc->clk); udc 1702 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCICR0, 0); udc 1703 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCICR1, 0); udc 1704 drivers/usb/gadget/udc/pxa27x_udc.c udc_clear_mask_UDCCR(udc, UDCCR_UDE); udc 1706 drivers/usb/gadget/udc/pxa27x_udc.c ep0_idle(udc); udc 1707 drivers/usb/gadget/udc/pxa27x_udc.c udc->gadget.speed = USB_SPEED_FULL; udc 1708 drivers/usb/gadget/udc/pxa27x_udc.c memset(&udc->stats, 0, sizeof(udc->stats)); udc 1710 drivers/usb/gadget/udc/pxa27x_udc.c pxa_eps_setup(udc); udc 1711 drivers/usb/gadget/udc/pxa27x_udc.c udc_set_mask_UDCCR(udc, UDCCR_UDE); udc 1712 drivers/usb/gadget/udc/pxa27x_udc.c ep_write_UDCCSR(&udc->pxa_ep[0], UDCCSR0_ACM); udc 1714 drivers/usb/gadget/udc/pxa27x_udc.c if (udc_readl(udc, UDCCR) & UDCCR_EMCE) udc 1715 drivers/usb/gadget/udc/pxa27x_udc.c dev_err(udc->dev, "Configuration errors, udc disabled\n"); udc 1723 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCICR1, udc 1728 drivers/usb/gadget/udc/pxa27x_udc.c pio_irq_enable(&udc->pxa_ep[0]); udc 1730 drivers/usb/gadget/udc/pxa27x_udc.c udc->enabled = 1; udc 1751 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = to_pxa(g); udc 1755 drivers/usb/gadget/udc/pxa27x_udc.c udc->driver = driver; udc 1757 drivers/usb/gadget/udc/pxa27x_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) { udc 1758 drivers/usb/gadget/udc/pxa27x_udc.c retval = otg_set_peripheral(udc->transceiver->otg, udc 1759 drivers/usb/gadget/udc/pxa27x_udc.c &udc->gadget); udc 1761 drivers/usb/gadget/udc/pxa27x_udc.c dev_err(udc->dev, "can't bind to transceiver\n"); udc 1766 drivers/usb/gadget/udc/pxa27x_udc.c if (should_enable_udc(udc)) udc 1767 drivers/usb/gadget/udc/pxa27x_udc.c udc_enable(udc); udc 1771 drivers/usb/gadget/udc/pxa27x_udc.c udc->driver = NULL; udc 1783 drivers/usb/gadget/udc/pxa27x_udc.c static void stop_activity(struct pxa_udc *udc) udc 1787 drivers/usb/gadget/udc/pxa27x_udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1790 drivers/usb/gadget/udc/pxa27x_udc.c pxa_ep_disable(&udc->udc_usb_ep[i].usb_ep); udc 1801 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = to_pxa(g); udc 1803 drivers/usb/gadget/udc/pxa27x_udc.c stop_activity(udc); udc 1804 drivers/usb/gadget/udc/pxa27x_udc.c udc_disable(udc); udc 1806 drivers/usb/gadget/udc/pxa27x_udc.c udc->driver = NULL; udc 1808 drivers/usb/gadget/udc/pxa27x_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) udc 1809 drivers/usb/gadget/udc/pxa27x_udc.c return otg_set_peripheral(udc->transceiver->otg, NULL); udc 1818 drivers/usb/gadget/udc/pxa27x_udc.c static void handle_ep0_ctrl_req(struct pxa_udc *udc, udc 1821 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_ep *ep = &udc->pxa_ep[0]; udc 1863 drivers/usb/gadget/udc/pxa27x_udc.c set_ep0state(udc, IN_DATA_STAGE); udc 1865 drivers/usb/gadget/udc/pxa27x_udc.c set_ep0state(udc, OUT_DATA_STAGE); udc 1871 drivers/usb/gadget/udc/pxa27x_udc.c i = udc->driver->setup(&udc->gadget, &u.r); udc 1882 drivers/usb/gadget/udc/pxa27x_udc.c set_ep0state(udc, STALL); udc 1934 drivers/usb/gadget/udc/pxa27x_udc.c static void handle_ep0(struct pxa_udc *udc, int fifo_irq, int opc_irq) udc 1937 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_ep *ep = &udc->pxa_ep[0]; udc 1946 drivers/usb/gadget/udc/pxa27x_udc.c EP0_STNAME(udc), req, udccsr0, udc_ep_readl(ep, UDCBCR), udc 1953 drivers/usb/gadget/udc/pxa27x_udc.c ep0_idle(udc); udc 1958 drivers/usb/gadget/udc/pxa27x_udc.c set_ep0state(udc, SETUP_STAGE); udc 1961 drivers/usb/gadget/udc/pxa27x_udc.c switch (udc->ep0state) { udc 1973 drivers/usb/gadget/udc/pxa27x_udc.c handle_ep0_ctrl_req(udc, req); udc 1999 drivers/usb/gadget/udc/pxa27x_udc.c ep0_idle(udc); udc 2005 drivers/usb/gadget/udc/pxa27x_udc.c ep0_idle(udc); udc 2081 drivers/usb/gadget/udc/pxa27x_udc.c static void pxa27x_change_configuration(struct pxa_udc *udc, int config) udc 2085 drivers/usb/gadget/udc/pxa27x_udc.c dev_dbg(udc->dev, "config=%d\n", config); udc 2087 drivers/usb/gadget/udc/pxa27x_udc.c udc->config = config; udc 2088 drivers/usb/gadget/udc/pxa27x_udc.c udc->last_interface = 0; udc 2089 drivers/usb/gadget/udc/pxa27x_udc.c udc->last_alternate = 0; udc 2097 drivers/usb/gadget/udc/pxa27x_udc.c set_ep0state(udc, WAIT_ACK_SET_CONF_INTERF); udc 2098 drivers/usb/gadget/udc/pxa27x_udc.c udc->driver->setup(&udc->gadget, &req); udc 2099 drivers/usb/gadget/udc/pxa27x_udc.c ep_write_UDCCSR(&udc->pxa_ep[0], UDCCSR0_AREN); udc 2111 drivers/usb/gadget/udc/pxa27x_udc.c static void pxa27x_change_interface(struct pxa_udc *udc, int iface, int alt) udc 2115 drivers/usb/gadget/udc/pxa27x_udc.c dev_dbg(udc->dev, "interface=%d, alternate setting=%d\n", iface, alt); udc 2117 drivers/usb/gadget/udc/pxa27x_udc.c udc->last_interface = iface; udc 2118 drivers/usb/gadget/udc/pxa27x_udc.c udc->last_alternate = alt; udc 2126 drivers/usb/gadget/udc/pxa27x_udc.c set_ep0state(udc, WAIT_ACK_SET_CONF_INTERF); udc 2127 drivers/usb/gadget/udc/pxa27x_udc.c udc->driver->setup(&udc->gadget, &req); udc 2128 drivers/usb/gadget/udc/pxa27x_udc.c ep_write_UDCCSR(&udc->pxa_ep[0], UDCCSR0_AREN); udc 2138 drivers/usb/gadget/udc/pxa27x_udc.c static void irq_handle_data(int irq, struct pxa_udc *udc) udc 2142 drivers/usb/gadget/udc/pxa27x_udc.c u32 udcisr0 = udc_readl(udc, UDCISR0) & UDCCISR0_EP_MASK; udc 2143 drivers/usb/gadget/udc/pxa27x_udc.c u32 udcisr1 = udc_readl(udc, UDCISR1) & UDCCISR1_EP_MASK; udc 2146 drivers/usb/gadget/udc/pxa27x_udc.c udc->pxa_ep[0].stats.irqs++; udc 2147 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCISR0, UDCISR_INT(0, UDCISR_INT_MASK)); udc 2148 drivers/usb/gadget/udc/pxa27x_udc.c handle_ep0(udc, !!(udcisr0 & UDCICR_FIFOERR), udc 2157 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCISR0, UDCISR_INT(i, UDCISR_INT_MASK)); udc 2159 drivers/usb/gadget/udc/pxa27x_udc.c WARN_ON(i >= ARRAY_SIZE(udc->pxa_ep)); udc 2160 drivers/usb/gadget/udc/pxa27x_udc.c if (i < ARRAY_SIZE(udc->pxa_ep)) { udc 2161 drivers/usb/gadget/udc/pxa27x_udc.c ep = &udc->pxa_ep[i]; udc 2168 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCISR1, UDCISR_INT(i - 16, UDCISR_INT_MASK)); udc 2172 drivers/usb/gadget/udc/pxa27x_udc.c WARN_ON(i >= ARRAY_SIZE(udc->pxa_ep)); udc 2173 drivers/usb/gadget/udc/pxa27x_udc.c if (i < ARRAY_SIZE(udc->pxa_ep)) { udc 2174 drivers/usb/gadget/udc/pxa27x_udc.c ep = &udc->pxa_ep[i]; udc 2186 drivers/usb/gadget/udc/pxa27x_udc.c static void irq_udc_suspend(struct pxa_udc *udc) udc 2188 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCISR1, UDCISR1_IRSU); udc 2189 drivers/usb/gadget/udc/pxa27x_udc.c udc->stats.irqs_suspend++; udc 2191 drivers/usb/gadget/udc/pxa27x_udc.c if (udc->gadget.speed != USB_SPEED_UNKNOWN udc 2192 drivers/usb/gadget/udc/pxa27x_udc.c && udc->driver && udc->driver->suspend) udc 2193 drivers/usb/gadget/udc/pxa27x_udc.c udc->driver->suspend(&udc->gadget); udc 2194 drivers/usb/gadget/udc/pxa27x_udc.c ep0_idle(udc); udc 2201 drivers/usb/gadget/udc/pxa27x_udc.c static void irq_udc_resume(struct pxa_udc *udc) udc 2203 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCISR1, UDCISR1_IRRU); udc 2204 drivers/usb/gadget/udc/pxa27x_udc.c udc->stats.irqs_resume++; udc 2206 drivers/usb/gadget/udc/pxa27x_udc.c if (udc->gadget.speed != USB_SPEED_UNKNOWN udc 2207 drivers/usb/gadget/udc/pxa27x_udc.c && udc->driver && udc->driver->resume) udc 2208 drivers/usb/gadget/udc/pxa27x_udc.c udc->driver->resume(&udc->gadget); udc 2215 drivers/usb/gadget/udc/pxa27x_udc.c static void irq_udc_reconfig(struct pxa_udc *udc) udc 2218 drivers/usb/gadget/udc/pxa27x_udc.c u32 udccr = udc_readl(udc, UDCCR); udc 2220 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCISR1, UDCISR1_IRCC); udc 2221 drivers/usb/gadget/udc/pxa27x_udc.c udc->stats.irqs_reconfig++; udc 2224 drivers/usb/gadget/udc/pxa27x_udc.c config_change = (config != udc->config); udc 2225 drivers/usb/gadget/udc/pxa27x_udc.c pxa27x_change_configuration(udc, config); udc 2229 drivers/usb/gadget/udc/pxa27x_udc.c pxa27x_change_interface(udc, interface, alternate); udc 2232 drivers/usb/gadget/udc/pxa27x_udc.c update_pxa_ep_matches(udc); udc 2233 drivers/usb/gadget/udc/pxa27x_udc.c udc_set_mask_UDCCR(udc, UDCCR_SMAC); udc 2240 drivers/usb/gadget/udc/pxa27x_udc.c static void irq_udc_reset(struct pxa_udc *udc) udc 2242 drivers/usb/gadget/udc/pxa27x_udc.c u32 udccr = udc_readl(udc, UDCCR); udc 2243 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_ep *ep = &udc->pxa_ep[0]; udc 2245 drivers/usb/gadget/udc/pxa27x_udc.c dev_info(udc->dev, "USB reset\n"); udc 2246 drivers/usb/gadget/udc/pxa27x_udc.c udc_writel(udc, UDCISR1, UDCISR1_IRRS); udc 2247 drivers/usb/gadget/udc/pxa27x_udc.c udc->stats.irqs_reset++; udc 2250 drivers/usb/gadget/udc/pxa27x_udc.c dev_dbg(udc->dev, "USB reset start\n"); udc 2251 drivers/usb/gadget/udc/pxa27x_udc.c stop_activity(udc); udc 2253 drivers/usb/gadget/udc/pxa27x_udc.c udc->gadget.speed = USB_SPEED_FULL; udc 2254 drivers/usb/gadget/udc/pxa27x_udc.c memset(&udc->stats, 0, sizeof udc->stats); udc 2258 drivers/usb/gadget/udc/pxa27x_udc.c ep0_idle(udc); udc 2270 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = _dev; udc 2271 drivers/usb/gadget/udc/pxa27x_udc.c u32 udcisr0 = udc_readl(udc, UDCISR0); udc 2272 drivers/usb/gadget/udc/pxa27x_udc.c u32 udcisr1 = udc_readl(udc, UDCISR1); udc 2273 drivers/usb/gadget/udc/pxa27x_udc.c u32 udccr = udc_readl(udc, UDCCR); udc 2276 drivers/usb/gadget/udc/pxa27x_udc.c dev_vdbg(udc->dev, "Interrupt, UDCISR0:0x%08x, UDCISR1:0x%08x, " udc 2281 drivers/usb/gadget/udc/pxa27x_udc.c irq_udc_suspend(udc); udc 2283 drivers/usb/gadget/udc/pxa27x_udc.c irq_udc_resume(udc); udc 2285 drivers/usb/gadget/udc/pxa27x_udc.c irq_udc_reconfig(udc); udc 2287 drivers/usb/gadget/udc/pxa27x_udc.c irq_udc_reset(udc); udc 2290 drivers/usb/gadget/udc/pxa27x_udc.c irq_handle_data(irq, udc); udc 2360 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = &memory; udc 2374 drivers/usb/gadget/udc/pxa27x_udc.c udc->gpiod = gpio_to_desc(mach->gpio_pullup); udc 2376 drivers/usb/gadget/udc/pxa27x_udc.c udc->udc_command = mach->udc_command; udc 2378 drivers/usb/gadget/udc/pxa27x_udc.c udc->gpiod = devm_gpiod_get(&pdev->dev, NULL, GPIOD_ASIS); udc 2382 drivers/usb/gadget/udc/pxa27x_udc.c udc->regs = devm_ioremap_resource(&pdev->dev, regs); udc 2383 drivers/usb/gadget/udc/pxa27x_udc.c if (IS_ERR(udc->regs)) udc 2384 drivers/usb/gadget/udc/pxa27x_udc.c return PTR_ERR(udc->regs); udc 2385 drivers/usb/gadget/udc/pxa27x_udc.c udc->irq = platform_get_irq(pdev, 0); udc 2386 drivers/usb/gadget/udc/pxa27x_udc.c if (udc->irq < 0) udc 2387 drivers/usb/gadget/udc/pxa27x_udc.c return udc->irq; udc 2389 drivers/usb/gadget/udc/pxa27x_udc.c udc->dev = &pdev->dev; udc 2391 drivers/usb/gadget/udc/pxa27x_udc.c udc->transceiver = udc 2392 drivers/usb/gadget/udc/pxa27x_udc.c devm_usb_get_phy_by_phandle(udc->dev, "phys", 0); udc 2393 drivers/usb/gadget/udc/pxa27x_udc.c if (IS_ERR(udc->transceiver)) udc 2394 drivers/usb/gadget/udc/pxa27x_udc.c return PTR_ERR(udc->transceiver); udc 2396 drivers/usb/gadget/udc/pxa27x_udc.c udc->transceiver = usb_get_phy(USB_PHY_TYPE_USB2); udc 2399 drivers/usb/gadget/udc/pxa27x_udc.c if (IS_ERR(udc->gpiod)) { udc 2401 drivers/usb/gadget/udc/pxa27x_udc.c PTR_ERR(udc->gpiod)); udc 2402 drivers/usb/gadget/udc/pxa27x_udc.c return PTR_ERR(udc->gpiod); udc 2404 drivers/usb/gadget/udc/pxa27x_udc.c if (udc->gpiod) udc 2405 drivers/usb/gadget/udc/pxa27x_udc.c gpiod_direction_output(udc->gpiod, 0); udc 2407 drivers/usb/gadget/udc/pxa27x_udc.c udc->clk = devm_clk_get(&pdev->dev, NULL); udc 2408 drivers/usb/gadget/udc/pxa27x_udc.c if (IS_ERR(udc->clk)) udc 2409 drivers/usb/gadget/udc/pxa27x_udc.c return PTR_ERR(udc->clk); udc 2411 drivers/usb/gadget/udc/pxa27x_udc.c retval = clk_prepare(udc->clk); udc 2415 drivers/usb/gadget/udc/pxa27x_udc.c udc->vbus_sensed = 0; udc 2417 drivers/usb/gadget/udc/pxa27x_udc.c the_controller = udc; udc 2418 drivers/usb/gadget/udc/pxa27x_udc.c platform_set_drvdata(pdev, udc); udc 2419 drivers/usb/gadget/udc/pxa27x_udc.c udc_init_data(udc); udc 2422 drivers/usb/gadget/udc/pxa27x_udc.c retval = devm_request_irq(&pdev->dev, udc->irq, pxa_udc_irq, udc 2423 drivers/usb/gadget/udc/pxa27x_udc.c IRQF_SHARED, driver_name, udc); udc 2425 drivers/usb/gadget/udc/pxa27x_udc.c dev_err(udc->dev, "%s: can't get irq %i, err %d\n", udc 2426 drivers/usb/gadget/udc/pxa27x_udc.c driver_name, udc->irq, retval); udc 2430 drivers/usb/gadget/udc/pxa27x_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) udc 2431 drivers/usb/gadget/udc/pxa27x_udc.c usb_register_notifier(udc->transceiver, &pxa27x_udc_phy); udc 2432 drivers/usb/gadget/udc/pxa27x_udc.c retval = usb_add_gadget_udc(&pdev->dev, &udc->gadget); udc 2436 drivers/usb/gadget/udc/pxa27x_udc.c pxa_init_debugfs(udc); udc 2437 drivers/usb/gadget/udc/pxa27x_udc.c if (should_enable_udc(udc)) udc 2438 drivers/usb/gadget/udc/pxa27x_udc.c udc_enable(udc); udc 2442 drivers/usb/gadget/udc/pxa27x_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) udc 2443 drivers/usb/gadget/udc/pxa27x_udc.c usb_unregister_notifier(udc->transceiver, &pxa27x_udc_phy); udc 2445 drivers/usb/gadget/udc/pxa27x_udc.c clk_unprepare(udc->clk); udc 2455 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = platform_get_drvdata(_dev); udc 2457 drivers/usb/gadget/udc/pxa27x_udc.c usb_del_gadget_udc(&udc->gadget); udc 2458 drivers/usb/gadget/udc/pxa27x_udc.c pxa_cleanup_debugfs(udc); udc 2460 drivers/usb/gadget/udc/pxa27x_udc.c if (!IS_ERR_OR_NULL(udc->transceiver)) { udc 2461 drivers/usb/gadget/udc/pxa27x_udc.c usb_unregister_notifier(udc->transceiver, &pxa27x_udc_phy); udc 2462 drivers/usb/gadget/udc/pxa27x_udc.c usb_put_phy(udc->transceiver); udc 2465 drivers/usb/gadget/udc/pxa27x_udc.c udc->transceiver = NULL; udc 2467 drivers/usb/gadget/udc/pxa27x_udc.c clk_unprepare(udc->clk); udc 2474 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = platform_get_drvdata(_dev); udc 2476 drivers/usb/gadget/udc/pxa27x_udc.c if (udc_readl(udc, UDCCR) & UDCCR_UDE) udc 2477 drivers/usb/gadget/udc/pxa27x_udc.c udc_disable(udc); udc 2497 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = platform_get_drvdata(_dev); udc 2500 drivers/usb/gadget/udc/pxa27x_udc.c ep = &udc->pxa_ep[0]; udc 2501 drivers/usb/gadget/udc/pxa27x_udc.c udc->udccsr0 = udc_ep_readl(ep, UDCCSR); udc 2503 drivers/usb/gadget/udc/pxa27x_udc.c udc_disable(udc); udc 2504 drivers/usb/gadget/udc/pxa27x_udc.c udc->pullup_resume = udc->pullup_on; udc 2505 drivers/usb/gadget/udc/pxa27x_udc.c dplus_pullup(udc, 0); udc 2507 drivers/usb/gadget/udc/pxa27x_udc.c if (udc->driver) udc 2508 drivers/usb/gadget/udc/pxa27x_udc.c udc->driver->disconnect(&udc->gadget); udc 2522 drivers/usb/gadget/udc/pxa27x_udc.c struct pxa_udc *udc = platform_get_drvdata(_dev); udc 2525 drivers/usb/gadget/udc/pxa27x_udc.c ep = &udc->pxa_ep[0]; udc 2526 drivers/usb/gadget/udc/pxa27x_udc.c udc_ep_writel(ep, UDCCSR, udc->udccsr0 & (UDCCSR0_FST | UDCCSR0_DME)); udc 2528 drivers/usb/gadget/udc/pxa27x_udc.c dplus_pullup(udc, udc->pullup_resume); udc 2529 drivers/usb/gadget/udc/pxa27x_udc.c if (should_enable_udc(udc)) udc 2530 drivers/usb/gadget/udc/pxa27x_udc.c udc_enable(udc); udc 190 drivers/usb/gadget/udc/pxa27x_udc.h #define udc_writel(udc, reg, value) \ udc 191 drivers/usb/gadget/udc/pxa27x_udc.h __raw_writel((value), (udc)->regs + (reg)) udc 404 drivers/usb/gadget/udc/pxa27x_udc.h #define EP0_STNAME(udc) ep0_state_name[(udc)->ep0state] udc 251 drivers/usb/gadget/udc/s3c2410_udc.c static void s3c2410_udc_nuke(struct s3c2410_udc *udc, udc 1277 drivers/usb/gadget/udc/s3c2410_udc.c struct s3c2410_udc *udc; udc 1290 drivers/usb/gadget/udc/s3c2410_udc.c udc = to_s3c2410_udc(ep->gadget); udc 1415 drivers/usb/gadget/udc/s3c2410_udc.c struct s3c2410_udc *udc = to_s3c2410_udc(gadget); udc 1421 drivers/usb/gadget/udc/s3c2410_udc.c udc->devstatus |= (1 << USB_DEVICE_SELF_POWERED); udc 1423 drivers/usb/gadget/udc/s3c2410_udc.c udc->devstatus &= ~(1 << USB_DEVICE_SELF_POWERED); udc 1431 drivers/usb/gadget/udc/s3c2410_udc.c static int s3c2410_udc_set_pullup(struct s3c2410_udc *udc, int is_on) udc 1439 drivers/usb/gadget/udc/s3c2410_udc.c s3c2410_udc_enable(udc); udc 1441 drivers/usb/gadget/udc/s3c2410_udc.c if (udc->gadget.speed != USB_SPEED_UNKNOWN) { udc 1442 drivers/usb/gadget/udc/s3c2410_udc.c if (udc->driver && udc->driver->disconnect) udc 1443 drivers/usb/gadget/udc/s3c2410_udc.c udc->driver->disconnect(&udc->gadget); udc 1446 drivers/usb/gadget/udc/s3c2410_udc.c s3c2410_udc_disable(udc); udc 1457 drivers/usb/gadget/udc/s3c2410_udc.c struct s3c2410_udc *udc = to_s3c2410_udc(gadget); udc 1461 drivers/usb/gadget/udc/s3c2410_udc.c udc->vbus = (is_active != 0); udc 1462 drivers/usb/gadget/udc/s3c2410_udc.c s3c2410_udc_set_pullup(udc, is_active); udc 1468 drivers/usb/gadget/udc/s3c2410_udc.c struct s3c2410_udc *udc = to_s3c2410_udc(gadget); udc 1472 drivers/usb/gadget/udc/s3c2410_udc.c s3c2410_udc_set_pullup(udc, is_on); udc 1635 drivers/usb/gadget/udc/s3c2410_udc.c struct s3c2410_udc *udc = to_s3c2410(g); udc 1640 drivers/usb/gadget/udc/s3c2410_udc.c udc->driver = driver; udc 1643 drivers/usb/gadget/udc/s3c2410_udc.c s3c2410_udc_enable(udc); udc 1650 drivers/usb/gadget/udc/s3c2410_udc.c struct s3c2410_udc *udc = to_s3c2410(g); udc 1652 drivers/usb/gadget/udc/s3c2410_udc.c udc->driver = NULL; udc 1655 drivers/usb/gadget/udc/s3c2410_udc.c s3c2410_udc_disable(udc); udc 1749 drivers/usb/gadget/udc/s3c2410_udc.c struct s3c2410_udc *udc = &memory; udc 1784 drivers/usb/gadget/udc/s3c2410_udc.c spin_lock_init(&udc->lock); udc 1799 drivers/usb/gadget/udc/s3c2410_udc.c the_controller = udc; udc 1800 drivers/usb/gadget/udc/s3c2410_udc.c platform_set_drvdata(pdev, udc); udc 1802 drivers/usb/gadget/udc/s3c2410_udc.c s3c2410_udc_disable(udc); udc 1803 drivers/usb/gadget/udc/s3c2410_udc.c s3c2410_udc_reinit(udc); udc 1807 drivers/usb/gadget/udc/s3c2410_udc.c 0, gadget_name, udc); udc 1834 drivers/usb/gadget/udc/s3c2410_udc.c gadget_name, udc); udc 1845 drivers/usb/gadget/udc/s3c2410_udc.c udc->vbus = 1; udc 1859 drivers/usb/gadget/udc/s3c2410_udc.c retval = usb_add_gadget_udc(&pdev->dev, &udc->gadget); udc 1863 drivers/usb/gadget/udc/s3c2410_udc.c udc->regs_info = debugfs_create_file("registers", S_IRUGO, udc 1864 drivers/usb/gadget/udc/s3c2410_udc.c s3c2410_udc_debugfs_root, udc, udc 1877 drivers/usb/gadget/udc/s3c2410_udc.c free_irq(gpio_to_irq(udc_info->vbus_pin), udc); udc 1882 drivers/usb/gadget/udc/s3c2410_udc.c free_irq(IRQ_USBD, udc); udc 1896 drivers/usb/gadget/udc/s3c2410_udc.c struct s3c2410_udc *udc = platform_get_drvdata(pdev); udc 1901 drivers/usb/gadget/udc/s3c2410_udc.c if (udc->driver) udc 1904 drivers/usb/gadget/udc/s3c2410_udc.c usb_del_gadget_udc(&udc->gadget); udc 1905 drivers/usb/gadget/udc/s3c2410_udc.c debugfs_remove(udc->regs_info); udc 1913 drivers/usb/gadget/udc/s3c2410_udc.c free_irq(irq, udc); udc 1916 drivers/usb/gadget/udc/s3c2410_udc.c free_irq(IRQ_USBD, udc); udc 40 drivers/usb/gadget/udc/snps_udc_core.c static void udc_setup_endpoints(struct udc *dev); udc 41 drivers/usb/gadget/udc/snps_udc_core.c static void udc_soft_reset(struct udc *dev); udc 56 drivers/usb/gadget/udc/snps_udc_core.c static struct udc *udc; udc 100 drivers/usb/gadget/udc/snps_udc_core.c (unsigned long) &udc); udc 190 drivers/usb/gadget/udc/snps_udc_core.c static void print_regs(struct udc *dev) udc 223 drivers/usb/gadget/udc/snps_udc_core.c int udc_mask_unused_interrupts(struct udc *dev) udc 246 drivers/usb/gadget/udc/snps_udc_core.c static int udc_enable_ep0_interrupts(struct udc *dev) udc 263 drivers/usb/gadget/udc/snps_udc_core.c int udc_enable_dev_setup_interrupts(struct udc *dev) udc 287 drivers/usb/gadget/udc/snps_udc_core.c struct udc *dev; udc 328 drivers/usb/gadget/udc/snps_udc_core.c struct udc *dev; udc 566 drivers/usb/gadget/udc/snps_udc_core.c static void udc_free_dma_chain(struct udc *dev, struct udc_request *req) udc 686 drivers/usb/gadget/udc/snps_udc_core.c static int udc_rxfifo_read_dwords(struct udc *dev, u32 *buf, int dwords) udc 698 drivers/usb/gadget/udc/snps_udc_core.c static int udc_rxfifo_read_bytes(struct udc *dev, u8 *buf, int bytes) udc 970 drivers/usb/gadget/udc/snps_udc_core.c struct udc *dev; udc 1036 drivers/usb/gadget/udc/snps_udc_core.c static void udc_set_rde(struct udc *dev) udc 1061 drivers/usb/gadget/udc/snps_udc_core.c struct udc *dev; udc 1084 drivers/usb/gadget/udc/snps_udc_core.c retval = usb_gadget_map_request(&udc->gadget, usbreq, ep->in); udc 1282 drivers/usb/gadget/udc/snps_udc_core.c tmp = readl(&udc->regs->ctl); udc 1284 drivers/usb/gadget/udc/snps_udc_core.c &udc->regs->ctl); udc 1298 drivers/usb/gadget/udc/snps_udc_core.c writel(tmp, &udc->regs->ctl); udc 1396 drivers/usb/gadget/udc/snps_udc_core.c static int udc_remote_wakeup(struct udc *dev) udc 1418 drivers/usb/gadget/udc/snps_udc_core.c struct udc *dev; udc 1422 drivers/usb/gadget/udc/snps_udc_core.c dev = container_of(gadget, struct udc, gadget); udc 1440 drivers/usb/gadget/udc/snps_udc_core.c static void make_ep_lists(struct udc *dev) udc 1461 drivers/usb/gadget/udc/snps_udc_core.c void udc_basic_init(struct udc *dev) udc 1500 drivers/usb/gadget/udc/snps_udc_core.c static int startup_registers(struct udc *dev) udc 1527 drivers/usb/gadget/udc/snps_udc_core.c static void udc_setup_endpoints(struct udc *dev) udc 1619 drivers/usb/gadget/udc/snps_udc_core.c static void usb_connect(struct udc *dev) udc 1640 drivers/usb/gadget/udc/snps_udc_core.c static void usb_disconnect(struct udc *dev) udc 1664 drivers/usb/gadget/udc/snps_udc_core.c struct udc *dev = (struct udc *)(*((struct udc **) par)); udc 1705 drivers/usb/gadget/udc/snps_udc_core.c static void udc_soft_reset(struct udc *dev) udc 1744 drivers/usb/gadget/udc/snps_udc_core.c tmp = readl(&udc->regs->ctl); udc 1746 drivers/usb/gadget/udc/snps_udc_core.c writel(tmp, &udc->regs->ctl); udc 1748 drivers/usb/gadget/udc/snps_udc_core.c } else if (readl(&udc->regs->sts) udc 1821 drivers/usb/gadget/udc/snps_udc_core.c ep = &udc->ep[UDC_EPIN_IX]; udc 1826 drivers/usb/gadget/udc/snps_udc_core.c ep = &udc->ep[UDC_EPOUT_IX]; udc 1845 drivers/usb/gadget/udc/snps_udc_core.c static void activate_control_endpoints(struct udc *dev) udc 1944 drivers/usb/gadget/udc/snps_udc_core.c static int setup_ep0(struct udc *dev) udc 1959 drivers/usb/gadget/udc/snps_udc_core.c struct udc *dev = to_amd5536_udc(g); udc 1986 drivers/usb/gadget/udc/snps_udc_core.c shutdown(struct udc *dev, struct usb_gadget_driver *driver) udc 2004 drivers/usb/gadget/udc/snps_udc_core.c struct udc *dev = to_amd5536_udc(g); udc 2024 drivers/usb/gadget/udc/snps_udc_core.c static void udc_process_cnak_queue(struct udc *dev) udc 2056 drivers/usb/gadget/udc/snps_udc_core.c static void udc_ep0_set_rde(struct udc *dev) udc 2083 drivers/usb/gadget/udc/snps_udc_core.c static irqreturn_t udc_data_out_isr(struct udc *dev, int ep_ix) udc 2297 drivers/usb/gadget/udc/snps_udc_core.c static irqreturn_t udc_data_in_isr(struct udc *dev, int ep_ix) udc 2450 drivers/usb/gadget/udc/snps_udc_core.c static irqreturn_t udc_control_out_isr(struct udc *dev) udc 2560 drivers/usb/gadget/udc/snps_udc_core.c ep_tmp = &udc->ep[UDC_EPIN_IX]; udc 2562 drivers/usb/gadget/udc/snps_udc_core.c ep_tmp = &udc->ep[UDC_EPOUT_IX]; udc 2666 drivers/usb/gadget/udc/snps_udc_core.c static irqreturn_t udc_control_in_isr(struct udc *dev) udc 2766 drivers/usb/gadget/udc/snps_udc_core.c static irqreturn_t udc_dev_isr(struct udc *dev, u32 dev_irq) udc 2987 drivers/usb/gadget/udc/snps_udc_core.c usb_disconnect(udc); udc 2998 drivers/usb/gadget/udc/snps_udc_core.c struct udc *dev = pdev; udc 3059 drivers/usb/gadget/udc/snps_udc_core.c void udc_remove(struct udc *dev) udc 3071 drivers/usb/gadget/udc/snps_udc_core.c udc = NULL; udc 3076 drivers/usb/gadget/udc/snps_udc_core.c void free_dma_pools(struct udc *dev) udc 3088 drivers/usb/gadget/udc/snps_udc_core.c int init_dma_pools(struct udc *dev) udc 3154 drivers/usb/gadget/udc/snps_udc_core.c int udc_probe(struct udc *dev) udc 3191 drivers/usb/gadget/udc/snps_udc_core.c udc = dev; udc 3193 drivers/usb/gadget/udc/snps_udc_core.c retval = usb_add_gadget_udc_release(udc->dev, &dev->gadget, udc 23 drivers/usb/gadget/udc/snps_udc_plat.c static void start_udc(struct udc *udc) udc 25 drivers/usb/gadget/udc/snps_udc_plat.c if (udc->driver) { udc 26 drivers/usb/gadget/udc/snps_udc_plat.c dev_info(udc->dev, "Connecting...\n"); udc 27 drivers/usb/gadget/udc/snps_udc_plat.c udc_enable_dev_setup_interrupts(udc); udc 28 drivers/usb/gadget/udc/snps_udc_plat.c udc_basic_init(udc); udc 29 drivers/usb/gadget/udc/snps_udc_plat.c udc->connected = 1; udc 33 drivers/usb/gadget/udc/snps_udc_plat.c static void stop_udc(struct udc *udc) udc 38 drivers/usb/gadget/udc/snps_udc_plat.c spin_lock(&udc->lock); udc 41 drivers/usb/gadget/udc/snps_udc_plat.c reg = readl(&udc->regs->ctl); udc 43 drivers/usb/gadget/udc/snps_udc_plat.c writel(reg, &udc->regs->ctl); udc 45 drivers/usb/gadget/udc/snps_udc_plat.c reg = readl(&udc->regs->ctl); udc 47 drivers/usb/gadget/udc/snps_udc_plat.c writel(reg, &udc->regs->ctl); udc 48 drivers/usb/gadget/udc/snps_udc_plat.c dev_dbg(udc->dev, "ep rx queue flushed\n"); udc 53 drivers/usb/gadget/udc/snps_udc_plat.c udc_mask_unused_interrupts(udc); udc 56 drivers/usb/gadget/udc/snps_udc_plat.c if (udc->driver) { udc 57 drivers/usb/gadget/udc/snps_udc_plat.c spin_unlock(&udc->lock); udc 58 drivers/usb/gadget/udc/snps_udc_plat.c udc->driver->disconnect(&udc->gadget); udc 59 drivers/usb/gadget/udc/snps_udc_plat.c spin_lock(&udc->lock); udc 63 drivers/usb/gadget/udc/snps_udc_plat.c empty_req_queue(&udc->ep[tmp]); udc 65 drivers/usb/gadget/udc/snps_udc_plat.c udc->connected = 0; udc 67 drivers/usb/gadget/udc/snps_udc_plat.c spin_unlock(&udc->lock); udc 68 drivers/usb/gadget/udc/snps_udc_plat.c dev_info(udc->dev, "Device disconnected\n"); udc 73 drivers/usb/gadget/udc/snps_udc_plat.c struct udc *udc; udc 75 drivers/usb/gadget/udc/snps_udc_plat.c udc = container_of(to_delayed_work(work), udc 76 drivers/usb/gadget/udc/snps_udc_plat.c struct udc, drd_work); udc 78 drivers/usb/gadget/udc/snps_udc_plat.c if (udc->conn_type) { udc 79 drivers/usb/gadget/udc/snps_udc_plat.c dev_dbg(udc->dev, "idle -> device\n"); udc 80 drivers/usb/gadget/udc/snps_udc_plat.c start_udc(udc); udc 82 drivers/usb/gadget/udc/snps_udc_plat.c dev_dbg(udc->dev, "device -> idle\n"); udc 83 drivers/usb/gadget/udc/snps_udc_plat.c stop_udc(udc); udc 90 drivers/usb/gadget/udc/snps_udc_plat.c struct udc *udc = container_of(self, struct udc, nb); udc 92 drivers/usb/gadget/udc/snps_udc_plat.c dev_dbg(udc->dev, "%s: event: %lu\n", __func__, event); udc 94 drivers/usb/gadget/udc/snps_udc_plat.c udc->conn_type = event; udc 96 drivers/usb/gadget/udc/snps_udc_plat.c schedule_delayed_work(&udc->drd_work, 0); udc 105 drivers/usb/gadget/udc/snps_udc_plat.c struct udc *udc; udc 108 drivers/usb/gadget/udc/snps_udc_plat.c udc = devm_kzalloc(dev, sizeof(*udc), GFP_KERNEL); udc 109 drivers/usb/gadget/udc/snps_udc_plat.c if (!udc) udc 112 drivers/usb/gadget/udc/snps_udc_plat.c spin_lock_init(&udc->lock); udc 113 drivers/usb/gadget/udc/snps_udc_plat.c udc->dev = dev; udc 116 drivers/usb/gadget/udc/snps_udc_plat.c udc->virt_addr = devm_ioremap_resource(dev, res); udc 117 drivers/usb/gadget/udc/snps_udc_plat.c if (IS_ERR(udc->regs)) udc 118 drivers/usb/gadget/udc/snps_udc_plat.c return PTR_ERR(udc->regs); udc 121 drivers/usb/gadget/udc/snps_udc_plat.c udc->csr = udc->virt_addr + UDC_CSR_ADDR; udc 124 drivers/usb/gadget/udc/snps_udc_plat.c udc->regs = udc->virt_addr + UDC_DEVCFG_ADDR; udc 127 drivers/usb/gadget/udc/snps_udc_plat.c udc->ep_regs = udc->virt_addr + UDC_EPREGS_ADDR; udc 130 drivers/usb/gadget/udc/snps_udc_plat.c udc->rxfifo = (u32 __iomem *)(udc->virt_addr + UDC_RXFIFO_ADDR); udc 131 drivers/usb/gadget/udc/snps_udc_plat.c udc->txfifo = (u32 __iomem *)(udc->virt_addr + UDC_TXFIFO_ADDR); udc 133 drivers/usb/gadget/udc/snps_udc_plat.c udc->phys_addr = (unsigned long)res->start; udc 135 drivers/usb/gadget/udc/snps_udc_plat.c udc->irq = irq_of_parse_and_map(dev->of_node, 0); udc 136 drivers/usb/gadget/udc/snps_udc_plat.c if (udc->irq <= 0) { udc 141 drivers/usb/gadget/udc/snps_udc_plat.c udc->udc_phy = devm_of_phy_get_by_index(dev, dev->of_node, 0); udc 142 drivers/usb/gadget/udc/snps_udc_plat.c if (IS_ERR(udc->udc_phy)) { udc 144 drivers/usb/gadget/udc/snps_udc_plat.c return PTR_ERR(udc->udc_phy); udc 147 drivers/usb/gadget/udc/snps_udc_plat.c ret = phy_init(udc->udc_phy); udc 153 drivers/usb/gadget/udc/snps_udc_plat.c ret = phy_power_on(udc->udc_phy); udc 156 drivers/usb/gadget/udc/snps_udc_plat.c phy_exit(udc->udc_phy); udc 162 drivers/usb/gadget/udc/snps_udc_plat.c udc->edev = extcon_get_edev_by_phandle(dev, 0); udc 163 drivers/usb/gadget/udc/snps_udc_plat.c if (IS_ERR(udc->edev)) { udc 164 drivers/usb/gadget/udc/snps_udc_plat.c if (PTR_ERR(udc->edev) == -EPROBE_DEFER) udc 167 drivers/usb/gadget/udc/snps_udc_plat.c ret = PTR_ERR(udc->edev); udc 171 drivers/usb/gadget/udc/snps_udc_plat.c udc->nb.notifier_call = usbd_connect_notify; udc 172 drivers/usb/gadget/udc/snps_udc_plat.c ret = extcon_register_notifier(udc->edev, EXTCON_USB, udc 173 drivers/usb/gadget/udc/snps_udc_plat.c &udc->nb); udc 179 drivers/usb/gadget/udc/snps_udc_plat.c ret = extcon_get_state(udc->edev, EXTCON_USB); udc 184 drivers/usb/gadget/udc/snps_udc_plat.c udc->conn_type = ret; udc 186 drivers/usb/gadget/udc/snps_udc_plat.c INIT_DELAYED_WORK(&udc->drd_work, udc_drd_work); udc 191 drivers/usb/gadget/udc/snps_udc_plat.c ret = init_dma_pools(udc); udc 196 drivers/usb/gadget/udc/snps_udc_plat.c ret = devm_request_irq(dev, udc->irq, udc_irq, IRQF_SHARED, udc 197 drivers/usb/gadget/udc/snps_udc_plat.c "snps-udc", udc); udc 199 drivers/usb/gadget/udc/snps_udc_plat.c dev_err(dev, "Request irq %d failed for UDC\n", udc->irq); udc 203 drivers/usb/gadget/udc/snps_udc_plat.c platform_set_drvdata(pdev, udc); udc 204 drivers/usb/gadget/udc/snps_udc_plat.c udc->chiprev = UDC_BCM_REV; udc 206 drivers/usb/gadget/udc/snps_udc_plat.c if (udc_probe(udc)) { udc 216 drivers/usb/gadget/udc/snps_udc_plat.c free_dma_pools(udc); udc 218 drivers/usb/gadget/udc/snps_udc_plat.c if (udc->edev) udc 219 drivers/usb/gadget/udc/snps_udc_plat.c extcon_unregister_notifier(udc->edev, EXTCON_USB, &udc->nb); udc 221 drivers/usb/gadget/udc/snps_udc_plat.c if (udc->udc_phy) { udc 222 drivers/usb/gadget/udc/snps_udc_plat.c phy_power_off(udc->udc_phy); udc 223 drivers/usb/gadget/udc/snps_udc_plat.c phy_exit(udc->udc_phy); udc 230 drivers/usb/gadget/udc/snps_udc_plat.c struct udc *dev; udc 263 drivers/usb/gadget/udc/snps_udc_plat.c struct udc *udc; udc 265 drivers/usb/gadget/udc/snps_udc_plat.c udc = dev_get_drvdata(dev); udc 266 drivers/usb/gadget/udc/snps_udc_plat.c stop_udc(udc); udc 268 drivers/usb/gadget/udc/snps_udc_plat.c if (extcon_get_state(udc->edev, EXTCON_USB) > 0) { udc 269 drivers/usb/gadget/udc/snps_udc_plat.c dev_dbg(udc->dev, "device -> idle\n"); udc 270 drivers/usb/gadget/udc/snps_udc_plat.c stop_udc(udc); udc 272 drivers/usb/gadget/udc/snps_udc_plat.c phy_power_off(udc->udc_phy); udc 273 drivers/usb/gadget/udc/snps_udc_plat.c phy_exit(udc->udc_phy); udc 280 drivers/usb/gadget/udc/snps_udc_plat.c struct udc *udc; udc 283 drivers/usb/gadget/udc/snps_udc_plat.c udc = dev_get_drvdata(dev); udc 285 drivers/usb/gadget/udc/snps_udc_plat.c ret = phy_init(udc->udc_phy); udc 287 drivers/usb/gadget/udc/snps_udc_plat.c dev_err(udc->dev, "UDC phy init failure"); udc 291 drivers/usb/gadget/udc/snps_udc_plat.c ret = phy_power_on(udc->udc_phy); udc 293 drivers/usb/gadget/udc/snps_udc_plat.c dev_err(udc->dev, "UDC phy power on failure"); udc 294 drivers/usb/gadget/udc/snps_udc_plat.c phy_exit(udc->udc_phy); udc 298 drivers/usb/gadget/udc/snps_udc_plat.c if (extcon_get_state(udc->edev, EXTCON_USB) > 0) { udc 299 drivers/usb/gadget/udc/snps_udc_plat.c dev_dbg(udc->dev, "idle -> device\n"); udc 300 drivers/usb/gadget/udc/snps_udc_plat.c start_udc(udc); udc 143 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc; udc 258 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_wrstatus(struct xusb_udc *udc) udc 260 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_ep *ep0 = &udc->ep[XUSB_EP_NUMBER_ZERO]; udc 263 drivers/usb/gadget/udc/udc-xilinx.c epcfgreg = udc->read_fn(udc->addr + ep0->offset)| udc 265 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep0->offset, epcfgreg); udc 266 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep0->offset + XUSB_EP_BUF0COUNT_OFFSET, 0); udc 267 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET, 1); udc 278 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_epconfig(struct xusb_ep *ep, struct xusb_udc *udc) udc 288 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset, epcfgreg); udc 291 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset + XUSB_EP_BUF0COUNT_OFFSET, udc 293 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset + XUSB_EP_BUF1COUNT_OFFSET, udc 296 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET, udc 299 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET, udc 318 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep->udc; udc 328 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_DMA_DSAR_ADDR_OFFSET, src); udc 329 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_DMA_DDAR_ADDR_OFFSET, dst); udc 330 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_DMA_LENGTH_OFFSET, length); udc 338 drivers/usb/gadget/udc/udc-xilinx.c reg = udc->read_fn(udc->addr + XUSB_DMA_STATUS_OFFSET); udc 348 drivers/usb/gadget/udc/udc-xilinx.c dev_err(udc->dev, "DMA timeout\n"); udc 354 drivers/usb/gadget/udc/udc-xilinx.c if ((udc->read_fn(udc->addr + XUSB_DMA_STATUS_OFFSET) & udc 356 drivers/usb/gadget/udc/udc-xilinx.c dev_err(udc->dev, "DMA Error\n"); udc 381 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep->udc; udc 385 drivers/usb/gadget/udc/udc-xilinx.c dma_sync_single_for_device(udc->dev, src, udc 389 drivers/usb/gadget/udc/udc-xilinx.c eprambase = (u32 __force *)(udc->addr + ep->rambase); udc 391 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset + udc 393 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_DMA_CONTROL_OFFSET, udc 399 drivers/usb/gadget/udc/udc-xilinx.c eprambase = (u32 __force *)(udc->addr + ep->rambase + udc 402 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset + udc 404 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_DMA_CONTROL_OFFSET, udc 435 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep->udc; udc 440 drivers/usb/gadget/udc/udc-xilinx.c eprambase = (u32 __force *)(udc->addr + ep->rambase); udc 442 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_DMA_CONTROL_OFFSET, udc 449 drivers/usb/gadget/udc/udc-xilinx.c eprambase = (u32 __force *)(udc->addr + udc 452 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_DMA_CONTROL_OFFSET, udc 484 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep->udc; udc 487 drivers/usb/gadget/udc/udc-xilinx.c if (udc->dma_enabled) { udc 497 drivers/usb/gadget/udc/udc-xilinx.c eprambase = (u32 __force *)(udc->addr + ep->rambase); udc 500 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset + udc 508 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET, udc 514 drivers/usb/gadget/udc/udc-xilinx.c eprambase = (u32 __force *)(udc->addr + ep->rambase + udc 518 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset + udc 526 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET, udc 548 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep->udc; udc 558 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "%s done %p, status %d\n", udc 561 drivers/usb/gadget/udc/udc-xilinx.c if (udc->dma_enabled && ep->epnumber && req->usb_req.length) udc 562 drivers/usb/gadget/udc/udc-xilinx.c usb_gadget_unmap_request(&udc->gadget, &req->usb_req, udc 566 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock(&udc->lock); udc 568 drivers/usb/gadget/udc/udc-xilinx.c spin_lock(&udc->lock); udc 589 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep->udc; udc 592 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "Packet NOT ready!\n"); udc 601 drivers/usb/gadget/udc/udc-xilinx.c count = udc->read_fn(udc->addr + ep->offset + bufoffset); udc 618 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "%s overflow %d\n", udc 629 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "read %s, %d bytes%s req %p %d/%d\n", udc 635 drivers/usb/gadget/udc/udc-xilinx.c if (udc->dma_enabled && req->usb_req.length) udc 636 drivers/usb/gadget/udc/udc-xilinx.c dma_sync_single_for_cpu(udc->dev, udc 649 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "receive busy\n"); udc 677 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep->udc; udc 700 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "%s: wrote %s %d bytes%s%s %d left %p\n", udc 711 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "Send busy\n"); udc 749 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc; udc 757 drivers/usb/gadget/udc/udc-xilinx.c udc = ep->udc; udc 760 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "requests pending can't halt\n"); udc 765 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "HW buffers busy can't halt\n"); udc 769 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_irqsave(&udc->lock, flags); udc 773 drivers/usb/gadget/udc/udc-xilinx.c epcfgreg = udc->read_fn(udc->addr + ep->offset); udc 775 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset, epcfgreg); udc 778 drivers/usb/gadget/udc/udc-xilinx.c epcfgreg = udc->read_fn(udc->addr + ep->offset); udc 780 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset, epcfgreg); udc 783 drivers/usb/gadget/udc/udc-xilinx.c epcfgreg = udc->read_fn(ep->udc->addr + ep->offset); udc 785 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset, epcfgreg); udc 789 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 803 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep->udc; udc 819 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "only one control endpoint\n"); udc 827 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "bogus maxpacket %d\n", maxpacket); udc 836 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "bogus maxpacket %d\n", maxpacket); udc 850 drivers/usb/gadget/udc/udc-xilinx.c xudc_epconfig(ep, udc); udc 852 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "Enable Endpoint %d max pkt is %d\n", udc 856 drivers/usb/gadget/udc/udc-xilinx.c epcfg = udc->read_fn(udc->addr + ep->offset); udc 858 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset, epcfg); udc 863 drivers/usb/gadget/udc/udc-xilinx.c ier = udc->read_fn(udc->addr + XUSB_IER_OFFSET); udc 865 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_IER_OFFSET, ier); udc 869 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET, udc 872 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET, udc 892 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc; udc 902 drivers/usb/gadget/udc/udc-xilinx.c udc = ep->udc; udc 904 drivers/usb/gadget/udc/udc-xilinx.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) { udc 905 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "bogus device state\n"); udc 909 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_irqsave(&udc->lock, flags); udc 911 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 927 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc; udc 935 drivers/usb/gadget/udc/udc-xilinx.c udc = ep->udc; udc 937 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_irqsave(&udc->lock, flags); udc 945 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "USB Ep %d disable\n ", ep->epnumber); udc 947 drivers/usb/gadget/udc/udc-xilinx.c epcfg = udc->read_fn(udc->addr + ep->offset); udc 949 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset, epcfg); udc 951 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 998 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep0->udc; udc 1002 drivers/usb/gadget/udc/udc-xilinx.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) { udc 1003 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "%s, bogus device state\n", __func__); udc 1007 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "%s:ep0 busy\n", __func__); udc 1016 drivers/usb/gadget/udc/udc-xilinx.c if (udc->setup.bRequestType & USB_DIR_IN) { udc 1020 drivers/usb/gadget/udc/udc-xilinx.c udc->addr); udc 1024 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_EP_BUF0COUNT_OFFSET, length); udc 1025 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET, 1); udc 1027 drivers/usb/gadget/udc/udc-xilinx.c if (udc->setup.wLength) { udc 1029 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_EP_BUF0COUNT_OFFSET, 0); udc 1030 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET, 1); udc 1032 drivers/usb/gadget/udc/udc-xilinx.c xudc_wrstatus(udc); udc 1052 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep0->udc; udc 1056 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_irqsave(&udc->lock, flags); udc 1058 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 1076 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep->udc; udc 1081 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "%s: queuing request to disabled %s\n", udc 1086 drivers/usb/gadget/udc/udc-xilinx.c if (!udc->driver || udc->gadget.speed == USB_SPEED_UNKNOWN) { udc 1087 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "%s, bogus device state\n", __func__); udc 1091 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_irqsave(&udc->lock, flags); udc 1096 drivers/usb/gadget/udc/udc-xilinx.c if (udc->dma_enabled) { udc 1097 drivers/usb/gadget/udc/udc-xilinx.c ret = usb_gadget_map_request(&udc->gadget, &req->usb_req, udc 1100 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "gadget_map failed ep%d\n", udc 1102 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 1109 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "xudc_write_fifo from ep_queue\n"); udc 1113 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "xudc_read_fifo from ep_queue\n"); udc 1122 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 1137 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = ep->udc; udc 1140 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_irqsave(&udc->lock, flags); udc 1147 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 1151 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 1212 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc; udc 1218 drivers/usb/gadget/udc/udc-xilinx.c udc = to_udc(gadget); udc 1219 drivers/usb/gadget/udc/udc-xilinx.c frame = udc->read_fn(udc->addr + XUSB_FRAMENUM_OFFSET); udc 1231 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = to_udc(gadget); udc 1236 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_irqsave(&udc->lock, flags); udc 1239 drivers/usb/gadget/udc/udc-xilinx.c if (!udc->remote_wkp) udc 1242 drivers/usb/gadget/udc/udc-xilinx.c crtlreg = udc->read_fn(udc->addr + XUSB_CONTROL_OFFSET); udc 1245 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_CONTROL_OFFSET, crtlreg); udc 1253 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_CONTROL_OFFSET, crtlreg); udc 1256 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 1271 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = to_udc(gadget); udc 1275 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_irqsave(&udc->lock, flags); udc 1277 drivers/usb/gadget/udc/udc-xilinx.c crtlreg = udc->read_fn(udc->addr + XUSB_CONTROL_OFFSET); udc 1283 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_CONTROL_OFFSET, crtlreg); udc 1285 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 1294 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_eps_init(struct xusb_udc *udc) udc 1298 drivers/usb/gadget/udc/udc-xilinx.c INIT_LIST_HEAD(&udc->gadget.ep_list); udc 1301 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_ep *ep = &udc->ep[ep_number]; udc 1305 drivers/usb/gadget/udc/udc-xilinx.c &udc->gadget.ep_list); udc 1326 drivers/usb/gadget/udc/udc-xilinx.c ep->udc = udc; udc 1337 drivers/usb/gadget/udc/udc-xilinx.c xudc_epconfig(ep, udc); udc 1348 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_stop_activity(struct xusb_udc *udc) udc 1354 drivers/usb/gadget/udc/udc-xilinx.c ep = &udc->ep[i]; udc 1369 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = to_udc(gadget); udc 1370 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_ep *ep0 = &udc->ep[XUSB_EP_NUMBER_ZERO]; udc 1375 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_irqsave(&udc->lock, flags); udc 1377 drivers/usb/gadget/udc/udc-xilinx.c if (udc->driver) { udc 1378 drivers/usb/gadget/udc/udc-xilinx.c dev_err(udc->dev, "%s is already bound to %s\n", udc 1379 drivers/usb/gadget/udc/udc-xilinx.c udc->gadget.name, udc->driver->driver.name); udc 1385 drivers/usb/gadget/udc/udc-xilinx.c udc->driver = driver; udc 1386 drivers/usb/gadget/udc/udc-xilinx.c udc->gadget.speed = driver->max_speed; udc 1392 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_ADDRESS_OFFSET, 0); udc 1393 drivers/usb/gadget/udc/udc-xilinx.c udc->remote_wkp = 0; udc 1395 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 1408 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = to_udc(gadget); udc 1411 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_irqsave(&udc->lock, flags); udc 1413 drivers/usb/gadget/udc/udc-xilinx.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1414 drivers/usb/gadget/udc/udc-xilinx.c udc->driver = NULL; udc 1417 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_ADDRESS_OFFSET, 0); udc 1418 drivers/usb/gadget/udc/udc-xilinx.c udc->remote_wkp = 0; udc 1420 drivers/usb/gadget/udc/udc-xilinx.c xudc_stop_activity(udc); udc 1422 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 1439 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_clear_stall_all_ep(struct xusb_udc *udc) udc 1446 drivers/usb/gadget/udc/udc-xilinx.c ep = &udc->ep[i]; udc 1447 drivers/usb/gadget/udc/udc-xilinx.c epcfgreg = udc->read_fn(udc->addr + ep->offset); udc 1449 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset, epcfgreg); udc 1452 drivers/usb/gadget/udc/udc-xilinx.c epcfgreg = udc->read_fn(udc->addr + ep->offset); udc 1454 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep->offset, epcfgreg); udc 1466 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_startup_handler(struct xusb_udc *udc, u32 intrstatus) udc 1472 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "Reset\n"); udc 1475 drivers/usb/gadget/udc/udc-xilinx.c udc->gadget.speed = USB_SPEED_HIGH; udc 1477 drivers/usb/gadget/udc/udc-xilinx.c udc->gadget.speed = USB_SPEED_FULL; udc 1479 drivers/usb/gadget/udc/udc-xilinx.c xudc_stop_activity(udc); udc 1480 drivers/usb/gadget/udc/udc-xilinx.c xudc_clear_stall_all_ep(udc); udc 1481 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_TESTMODE_OFFSET, 0); udc 1484 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_ADDRESS_OFFSET, 0); udc 1485 drivers/usb/gadget/udc/udc-xilinx.c udc->remote_wkp = 0; udc 1488 drivers/usb/gadget/udc/udc-xilinx.c intrreg = udc->read_fn(udc->addr + XUSB_IER_OFFSET); udc 1491 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_IER_OFFSET, intrreg); udc 1495 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "Suspend\n"); udc 1498 drivers/usb/gadget/udc/udc-xilinx.c intrreg = udc->read_fn(udc->addr + XUSB_IER_OFFSET); udc 1501 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_IER_OFFSET, intrreg); udc 1503 drivers/usb/gadget/udc/udc-xilinx.c udc->usb_state = USB_STATE_SUSPENDED; udc 1505 drivers/usb/gadget/udc/udc-xilinx.c if (udc->driver->suspend) { udc 1506 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock(&udc->lock); udc 1507 drivers/usb/gadget/udc/udc-xilinx.c udc->driver->suspend(&udc->gadget); udc 1508 drivers/usb/gadget/udc/udc-xilinx.c spin_lock(&udc->lock); udc 1512 drivers/usb/gadget/udc/udc-xilinx.c bool condition = (udc->usb_state != USB_STATE_SUSPENDED); udc 1514 drivers/usb/gadget/udc/udc-xilinx.c dev_WARN_ONCE(udc->dev, condition, udc 1517 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "Resume\n"); udc 1520 drivers/usb/gadget/udc/udc-xilinx.c intrreg = udc->read_fn(udc->addr + XUSB_IER_OFFSET); udc 1523 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_IER_OFFSET, intrreg); udc 1525 drivers/usb/gadget/udc/udc-xilinx.c udc->usb_state = 0; udc 1527 drivers/usb/gadget/udc/udc-xilinx.c if (udc->driver->resume) { udc 1528 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock(&udc->lock); udc 1529 drivers/usb/gadget/udc/udc-xilinx.c udc->driver->resume(&udc->gadget); udc 1530 drivers/usb/gadget/udc/udc-xilinx.c spin_lock(&udc->lock); udc 1535 drivers/usb/gadget/udc/udc-xilinx.c dev_dbg(udc->dev, "Disconnect\n"); udc 1538 drivers/usb/gadget/udc/udc-xilinx.c intrreg = udc->read_fn(udc->addr + XUSB_IER_OFFSET); udc 1541 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_IER_OFFSET, intrreg); udc 1543 drivers/usb/gadget/udc/udc-xilinx.c if (udc->driver && udc->driver->disconnect) { udc 1544 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock(&udc->lock); udc 1545 drivers/usb/gadget/udc/udc-xilinx.c udc->driver->disconnect(&udc->gadget); udc 1546 drivers/usb/gadget/udc/udc-xilinx.c spin_lock(&udc->lock); udc 1557 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_ep0_stall(struct xusb_udc *udc) udc 1560 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_ep *ep0 = &udc->ep[XUSB_EP_NUMBER_ZERO]; udc 1562 drivers/usb/gadget/udc/udc-xilinx.c epcfgreg = udc->read_fn(udc->addr + ep0->offset); udc 1564 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep0->offset, epcfgreg); udc 1573 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_setaddress(struct xusb_udc *udc) udc 1575 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_ep *ep0 = &udc->ep[0]; udc 1576 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_req *req = udc->req; udc 1584 drivers/usb/gadget/udc/udc-xilinx.c dev_err(udc->dev, "Can't respond to SET ADDRESS request\n"); udc 1585 drivers/usb/gadget/udc/udc-xilinx.c xudc_ep0_stall(udc); udc 1594 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_getstatus(struct xusb_udc *udc) udc 1596 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_ep *ep0 = &udc->ep[0]; udc 1597 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_req *req = udc->req; udc 1605 drivers/usb/gadget/udc/udc-xilinx.c switch (udc->setup.bRequestType & USB_RECIP_MASK) { udc 1609 drivers/usb/gadget/udc/udc-xilinx.c if (udc->remote_wkp) udc 1615 drivers/usb/gadget/udc/udc-xilinx.c epnum = udc->setup.wIndex & USB_ENDPOINT_NUMBER_MASK; udc 1616 drivers/usb/gadget/udc/udc-xilinx.c target_ep = &udc->ep[epnum]; udc 1617 drivers/usb/gadget/udc/udc-xilinx.c epcfgreg = udc->read_fn(udc->addr + target_ep->offset); udc 1619 drivers/usb/gadget/udc/udc-xilinx.c if (udc->setup.wIndex & USB_DIR_IN) { udc 1639 drivers/usb/gadget/udc/udc-xilinx.c dev_err(udc->dev, "Can't respond to getstatus request\n"); udc 1640 drivers/usb/gadget/udc/udc-xilinx.c xudc_ep0_stall(udc); udc 1649 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_set_clear_feature(struct xusb_udc *udc) udc 1651 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_ep *ep0 = &udc->ep[0]; udc 1652 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_req *req = udc->req; udc 1657 drivers/usb/gadget/udc/udc-xilinx.c int flag = (udc->setup.bRequest == USB_REQ_SET_FEATURE ? 1 : 0); udc 1660 drivers/usb/gadget/udc/udc-xilinx.c switch (udc->setup.bRequestType) { udc 1662 drivers/usb/gadget/udc/udc-xilinx.c switch (udc->setup.wValue) { udc 1671 drivers/usb/gadget/udc/udc-xilinx.c udc->remote_wkp = 1; udc 1673 drivers/usb/gadget/udc/udc-xilinx.c udc->remote_wkp = 0; udc 1676 drivers/usb/gadget/udc/udc-xilinx.c xudc_ep0_stall(udc); udc 1681 drivers/usb/gadget/udc/udc-xilinx.c if (!udc->setup.wValue) { udc 1682 drivers/usb/gadget/udc/udc-xilinx.c endpoint = udc->setup.wIndex & USB_ENDPOINT_NUMBER_MASK; udc 1683 drivers/usb/gadget/udc/udc-xilinx.c target_ep = &udc->ep[endpoint]; udc 1684 drivers/usb/gadget/udc/udc-xilinx.c outinbit = udc->setup.wIndex & USB_ENDPOINT_DIR_MASK; udc 1689 drivers/usb/gadget/udc/udc-xilinx.c xudc_ep0_stall(udc); udc 1692 drivers/usb/gadget/udc/udc-xilinx.c epcfgreg = udc->read_fn(udc->addr + target_ep->offset); udc 1696 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, udc 1701 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, udc 1708 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, udc 1716 drivers/usb/gadget/udc/udc-xilinx.c xudc_ep0_stall(udc); udc 1725 drivers/usb/gadget/udc/udc-xilinx.c dev_err(udc->dev, "Can't respond to SET/CLEAR FEATURE\n"); udc 1726 drivers/usb/gadget/udc/udc-xilinx.c xudc_ep0_stall(udc); udc 1735 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_handle_setup(struct xusb_udc *udc) udc 1737 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_ep *ep0 = &udc->ep[0]; udc 1742 drivers/usb/gadget/udc/udc-xilinx.c ep0rambase = (u32 __force *) (udc->addr + XUSB_SETUP_PKT_ADDR_OFFSET); udc 1745 drivers/usb/gadget/udc/udc-xilinx.c udc->setup = setup; udc 1746 drivers/usb/gadget/udc/udc-xilinx.c udc->setup.wValue = cpu_to_le16(setup.wValue); udc 1747 drivers/usb/gadget/udc/udc-xilinx.c udc->setup.wIndex = cpu_to_le16(setup.wIndex); udc 1748 drivers/usb/gadget/udc/udc-xilinx.c udc->setup.wLength = cpu_to_le16(setup.wLength); udc 1753 drivers/usb/gadget/udc/udc-xilinx.c if (udc->setup.bRequestType & USB_DIR_IN) { udc 1755 drivers/usb/gadget/udc/udc-xilinx.c udc->setupseqrx = STATUS_PHASE; udc 1756 drivers/usb/gadget/udc/udc-xilinx.c udc->setupseqtx = DATA_PHASE; udc 1759 drivers/usb/gadget/udc/udc-xilinx.c udc->setupseqrx = DATA_PHASE; udc 1760 drivers/usb/gadget/udc/udc-xilinx.c udc->setupseqtx = STATUS_PHASE; udc 1763 drivers/usb/gadget/udc/udc-xilinx.c switch (udc->setup.bRequest) { udc 1766 drivers/usb/gadget/udc/udc-xilinx.c if ((udc->setup.bRequestType & udc 1770 drivers/usb/gadget/udc/udc-xilinx.c xudc_getstatus(udc); udc 1774 drivers/usb/gadget/udc/udc-xilinx.c if (udc->setup.bRequestType != (USB_DIR_OUT | udc 1777 drivers/usb/gadget/udc/udc-xilinx.c xudc_setaddress(udc); udc 1782 drivers/usb/gadget/udc/udc-xilinx.c if ((udc->setup.bRequestType & USB_TYPE_MASK) udc 1785 drivers/usb/gadget/udc/udc-xilinx.c xudc_set_clear_feature(udc); udc 1791 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock(&udc->lock); udc 1792 drivers/usb/gadget/udc/udc-xilinx.c if (udc->driver->setup(&udc->gadget, &setup) < 0) udc 1793 drivers/usb/gadget/udc/udc-xilinx.c xudc_ep0_stall(udc); udc 1794 drivers/usb/gadget/udc/udc-xilinx.c spin_lock(&udc->lock); udc 1801 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_ep0_out(struct xusb_udc *udc) udc 1803 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_ep *ep0 = &udc->ep[0]; udc 1811 drivers/usb/gadget/udc/udc-xilinx.c switch (udc->setupseqrx) { udc 1817 drivers/usb/gadget/udc/udc-xilinx.c udc->setupseqrx = SETUP_PHASE; udc 1818 drivers/usb/gadget/udc/udc-xilinx.c udc->setupseqtx = SETUP_PHASE; udc 1823 drivers/usb/gadget/udc/udc-xilinx.c bytes_to_rx = udc->read_fn(udc->addr + udc 1826 drivers/usb/gadget/udc/udc-xilinx.c ep0rambase = (u8 __force *) (udc->addr + udc 1834 drivers/usb/gadget/udc/udc-xilinx.c xudc_wrstatus(udc); udc 1837 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_EP_BUF0COUNT_OFFSET, 0); udc 1838 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET, 1); udc 1850 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_ep0_in(struct xusb_udc *udc) udc 1852 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_ep *ep0 = &udc->ep[0]; udc 1860 drivers/usb/gadget/udc/udc-xilinx.c u8 test_mode = udc->setup.wIndex >> 8; udc 1865 drivers/usb/gadget/udc/udc-xilinx.c switch (udc->setupseqtx) { udc 1867 drivers/usb/gadget/udc/udc-xilinx.c switch (udc->setup.bRequest) { udc 1870 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_ADDRESS_OFFSET, udc 1871 drivers/usb/gadget/udc/udc-xilinx.c udc->setup.wValue); udc 1874 drivers/usb/gadget/udc/udc-xilinx.c if (udc->setup.bRequestType == udc 1876 drivers/usb/gadget/udc/udc-xilinx.c if (udc->setup.wValue == udc 1878 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, udc 1894 drivers/usb/gadget/udc/udc-xilinx.c epcfgreg = udc->read_fn(udc->addr + ep0->offset); udc 1896 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, ep0->offset, epcfgreg); udc 1897 drivers/usb/gadget/udc/udc-xilinx.c udc->setupseqtx = STATUS_PHASE; udc 1902 drivers/usb/gadget/udc/udc-xilinx.c ep0rambase = (u8 __force *) (udc->addr + udc 1908 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_EP_BUF0COUNT_OFFSET, count); udc 1909 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_BUFFREADY_OFFSET, 1); udc 1923 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_ctrl_ep_handler(struct xusb_udc *udc, u32 intrstatus) udc 1927 drivers/usb/gadget/udc/udc-xilinx.c xudc_handle_setup(udc); udc 1930 drivers/usb/gadget/udc/udc-xilinx.c xudc_ep0_out(udc); udc 1932 drivers/usb/gadget/udc/udc-xilinx.c xudc_ep0_in(udc); udc 1945 drivers/usb/gadget/udc/udc-xilinx.c static void xudc_nonctrl_ep_handler(struct xusb_udc *udc, u8 epnum, udc 1952 drivers/usb/gadget/udc/udc-xilinx.c ep = &udc->ep[epnum]; udc 1979 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = _udc; udc 1986 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_irqsave(&udc->lock, flags); udc 1992 drivers/usb/gadget/udc/udc-xilinx.c ier = udc->read_fn(udc->addr + XUSB_IER_OFFSET); udc 1994 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_IER_OFFSET, ier); udc 1997 drivers/usb/gadget/udc/udc-xilinx.c intrstatus = udc->read_fn(udc->addr + XUSB_STATUS_OFFSET); udc 2008 drivers/usb/gadget/udc/udc-xilinx.c xudc_startup_handler(udc, intrstatus); udc 2014 drivers/usb/gadget/udc/udc-xilinx.c ier = udc->read_fn(udc->addr + XUSB_IER_OFFSET); udc 2016 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_IER_OFFSET, ier); udc 2019 drivers/usb/gadget/udc/udc-xilinx.c xudc_ctrl_ep_handler(udc, intrstatus); udc 2028 drivers/usb/gadget/udc/udc-xilinx.c xudc_nonctrl_ep_handler(udc, index, udc 2034 drivers/usb/gadget/udc/udc-xilinx.c spin_unlock_irqrestore(&udc->lock, flags); udc 2048 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc; udc 2054 drivers/usb/gadget/udc/udc-xilinx.c udc = devm_kzalloc(&pdev->dev, sizeof(*udc), GFP_KERNEL); udc 2055 drivers/usb/gadget/udc/udc-xilinx.c if (!udc) udc 2059 drivers/usb/gadget/udc/udc-xilinx.c udc->req = devm_kzalloc(&pdev->dev, sizeof(struct xusb_req), udc 2061 drivers/usb/gadget/udc/udc-xilinx.c if (!udc->req) udc 2068 drivers/usb/gadget/udc/udc-xilinx.c udc->req->usb_req.buf = buff; udc 2072 drivers/usb/gadget/udc/udc-xilinx.c udc->addr = devm_ioremap_resource(&pdev->dev, res); udc 2073 drivers/usb/gadget/udc/udc-xilinx.c if (IS_ERR(udc->addr)) udc 2074 drivers/usb/gadget/udc/udc-xilinx.c return PTR_ERR(udc->addr); udc 2080 drivers/usb/gadget/udc/udc-xilinx.c dev_name(&pdev->dev), udc); udc 2086 drivers/usb/gadget/udc/udc-xilinx.c udc->dma_enabled = of_property_read_bool(np, "xlnx,has-builtin-dma"); udc 2089 drivers/usb/gadget/udc/udc-xilinx.c udc->gadget.ops = &xusb_udc_ops; udc 2090 drivers/usb/gadget/udc/udc-xilinx.c udc->gadget.max_speed = USB_SPEED_HIGH; udc 2091 drivers/usb/gadget/udc/udc-xilinx.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 2092 drivers/usb/gadget/udc/udc-xilinx.c udc->gadget.ep0 = &udc->ep[XUSB_EP_NUMBER_ZERO].ep_usb; udc 2093 drivers/usb/gadget/udc/udc-xilinx.c udc->gadget.name = driver_name; udc 2095 drivers/usb/gadget/udc/udc-xilinx.c spin_lock_init(&udc->lock); udc 2098 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn = xudc_write32_be; udc 2099 drivers/usb/gadget/udc/udc-xilinx.c udc->read_fn = xudc_read32_be; udc 2100 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_TESTMODE_OFFSET, TEST_J); udc 2101 drivers/usb/gadget/udc/udc-xilinx.c if ((udc->read_fn(udc->addr + XUSB_TESTMODE_OFFSET)) udc 2103 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn = xudc_write32; udc 2104 drivers/usb/gadget/udc/udc-xilinx.c udc->read_fn = xudc_read32; udc 2106 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_TESTMODE_OFFSET, 0); udc 2108 drivers/usb/gadget/udc/udc-xilinx.c xudc_eps_init(udc); udc 2111 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_ADDRESS_OFFSET, 0); udc 2113 drivers/usb/gadget/udc/udc-xilinx.c ret = usb_add_gadget_udc(&pdev->dev, &udc->gadget); udc 2117 drivers/usb/gadget/udc/udc-xilinx.c udc->dev = &udc->gadget.dev; udc 2125 drivers/usb/gadget/udc/udc-xilinx.c udc->write_fn(udc->addr, XUSB_IER_OFFSET, ier); udc 2127 drivers/usb/gadget/udc/udc-xilinx.c platform_set_drvdata(pdev, udc); udc 2130 drivers/usb/gadget/udc/udc-xilinx.c driver_name, (u32)res->start, udc->addr, udc 2131 drivers/usb/gadget/udc/udc-xilinx.c udc->dma_enabled ? "with DMA" : "without DMA"); udc 2147 drivers/usb/gadget/udc/udc-xilinx.c struct xusb_udc *udc = platform_get_drvdata(pdev); udc 2149 drivers/usb/gadget/udc/udc-xilinx.c usb_del_gadget_udc(&udc->gadget); udc 46 drivers/usb/isp1760/isp1760-core.h struct isp1760_udc udc; udc 48 drivers/usb/isp1760/isp1760-udc.c static inline u32 isp1760_udc_read(struct isp1760_udc *udc, u16 reg) udc 50 drivers/usb/isp1760/isp1760-udc.c return isp1760_read32(udc->regs, reg); udc 53 drivers/usb/isp1760/isp1760-udc.c static inline void isp1760_udc_write(struct isp1760_udc *udc, u16 reg, u32 val) udc 55 drivers/usb/isp1760/isp1760-udc.c isp1760_write32(udc->regs, reg, val); udc 62 drivers/usb/isp1760/isp1760-udc.c static struct isp1760_ep *isp1760_udc_find_ep(struct isp1760_udc *udc, udc 68 drivers/usb/isp1760/isp1760-udc.c return &udc->ep[0]; udc 70 drivers/usb/isp1760/isp1760-udc.c for (i = 1; i < ARRAY_SIZE(udc->ep); ++i) { udc 71 drivers/usb/isp1760/isp1760-udc.c if (udc->ep[i].addr == index) udc 72 drivers/usb/isp1760/isp1760-udc.c return udc->ep[i].desc ? &udc->ep[i] : NULL; udc 80 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(ep->udc, DC_EPINDEX, udc 104 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = ep->udc; udc 111 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_EPINDEX, DC_ENDPIDX(0) | udc 113 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, DC_STATUS); udc 119 drivers/usb/isp1760/isp1760-udc.c udc->ep0_state = ISP1760_CTRL_SETUP; udc 127 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = ep->udc; udc 130 drivers/usb/isp1760/isp1760-udc.c dev_dbg(ep->udc->isp->dev, "completing request %p with status %d\n", udc 137 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&udc->lock, flags); udc 144 drivers/usb/isp1760/isp1760-udc.c if (status == 0 && ep->addr == 0 && udc->ep0_dir == USB_DIR_OUT) udc 147 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 152 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = ep->udc; udc 155 drivers/usb/isp1760/isp1760-udc.c dev_dbg(ep->udc->isp->dev, "%s(ep%02x)\n", __func__, ep->addr); udc 157 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&udc->lock, flags); udc 161 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, DC_STALL); udc 163 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, DC_STALL); udc 166 drivers/usb/isp1760/isp1760-udc.c udc->ep0_state = ISP1760_CTRL_SETUP; udc 168 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 179 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = ep->udc; udc 185 drivers/usb/isp1760/isp1760-udc.c len = isp1760_udc_read(udc, DC_BUFLEN) & DC_DATACOUNT_MASK; udc 187 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: received %u bytes (%u/%u done)\n", udc 201 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, DC_CLBUF); udc 212 drivers/usb/isp1760/isp1760-udc.c *buf = le32_to_cpu(isp1760_udc_read(udc, DC_DATAPORT)); udc 214 drivers/usb/isp1760/isp1760-udc.c *(u16 *)buf = le16_to_cpu(readw(udc->regs + DC_DATAPORT)); udc 223 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, udc 245 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = ep->udc; udc 252 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: transferring %u bytes (%u/%u done)\n", udc 259 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_BUFLEN, req->packet_size); udc 268 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_DATAPORT, cpu_to_le32(*buf)); udc 270 drivers/usb/isp1760/isp1760-udc.c writew(cpu_to_le16(*(u16 *)buf), udc->regs + DC_DATAPORT); udc 273 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, DC_DSEN); udc 275 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, DC_VENDP); udc 280 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = ep->udc; udc 284 drivers/usb/isp1760/isp1760-udc.c spin_lock(&udc->lock); udc 286 drivers/usb/isp1760/isp1760-udc.c if (ep->addr == 0 && udc->ep0_state != ISP1760_CTRL_DATA_OUT) { udc 287 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 288 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: invalid ep0 state %u\n", __func__, udc 289 drivers/usb/isp1760/isp1760-udc.c udc->ep0_state); udc 294 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 295 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: ep%02x is disabled\n", __func__, udc 302 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 303 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: ep%02x (%p) has no request queued\n", udc 312 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 320 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = ep->udc; udc 325 drivers/usb/isp1760/isp1760-udc.c spin_lock(&udc->lock); udc 327 drivers/usb/isp1760/isp1760-udc.c if (ep->addr == 0 && udc->ep0_state != ISP1760_CTRL_DATA_IN) { udc 328 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 329 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "TX IRQ: invalid endpoint state %u\n", udc 330 drivers/usb/isp1760/isp1760-udc.c udc->ep0_state); udc 342 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 346 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 347 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: ep%02x has no request queued\n", udc 360 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, udc 392 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 400 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = ep->udc; udc 402 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: %s halt on ep%02x\n", __func__, udc 406 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: ep%02x is isochronous\n", __func__, udc 412 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, halt ? DC_STALL : 0); udc 417 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, halt ? DC_STALL : 0); udc 420 drivers/usb/isp1760/isp1760-udc.c u16 eptype = isp1760_udc_read(udc, DC_EPTYPE); udc 422 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_EPTYPE, eptype & ~DC_EPENABLE); udc 423 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_EPTYPE, eptype); udc 450 drivers/usb/isp1760/isp1760-udc.c static int isp1760_udc_get_status(struct isp1760_udc *udc, udc 461 drivers/usb/isp1760/isp1760-udc.c status = udc->devstatus; udc 469 drivers/usb/isp1760/isp1760-udc.c ep = isp1760_udc_find_ep(udc, le16_to_cpu(req->wIndex)); udc 482 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_EPINDEX, DC_ENDPIDX(0) | DC_EPDIR); udc 483 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_BUFLEN, 2); udc 485 drivers/usb/isp1760/isp1760-udc.c writew(cpu_to_le16(status), udc->regs + DC_DATAPORT); udc 487 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, DC_DSEN); udc 489 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: status 0x%04x\n", __func__, status); udc 494 drivers/usb/isp1760/isp1760-udc.c static int isp1760_udc_set_address(struct isp1760_udc *udc, u16 addr) udc 497 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "invalid device address %u\n", addr); udc 501 drivers/usb/isp1760/isp1760-udc.c if (udc->gadget.state != USB_STATE_DEFAULT && udc 502 drivers/usb/isp1760/isp1760-udc.c udc->gadget.state != USB_STATE_ADDRESS) { udc 503 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "can't set address in state %u\n", udc 504 drivers/usb/isp1760/isp1760-udc.c udc->gadget.state); udc 508 drivers/usb/isp1760/isp1760-udc.c usb_gadget_set_state(&udc->gadget, addr ? USB_STATE_ADDRESS : udc 511 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_ADDRESS, DC_DEVEN | addr); udc 513 drivers/usb/isp1760/isp1760-udc.c spin_lock(&udc->lock); udc 514 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_ctrl_send_status(&udc->ep[0], USB_DIR_OUT); udc 515 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 520 drivers/usb/isp1760/isp1760-udc.c static bool isp1760_ep0_setup_standard(struct isp1760_udc *udc, udc 527 drivers/usb/isp1760/isp1760-udc.c return isp1760_udc_get_status(udc, req); udc 544 drivers/usb/isp1760/isp1760-udc.c ep = isp1760_udc_find_ep(udc, index); udc 548 drivers/usb/isp1760/isp1760-udc.c spin_lock(&udc->lock); udc 561 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_ctrl_send_status(&udc->ep[0], udc 564 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 588 drivers/usb/isp1760/isp1760-udc.c ep = isp1760_udc_find_ep(udc, index); udc 592 drivers/usb/isp1760/isp1760-udc.c spin_lock(&udc->lock); udc 596 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_ctrl_send_status(&udc->ep[0], udc 599 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 612 drivers/usb/isp1760/isp1760-udc.c return isp1760_udc_set_address(udc, le16_to_cpu(req->wValue)); udc 618 drivers/usb/isp1760/isp1760-udc.c if (udc->gadget.state != USB_STATE_ADDRESS && udc 619 drivers/usb/isp1760/isp1760-udc.c udc->gadget.state != USB_STATE_CONFIGURED) udc 622 drivers/usb/isp1760/isp1760-udc.c stall = udc->driver->setup(&udc->gadget, req) < 0; udc 626 drivers/usb/isp1760/isp1760-udc.c usb_gadget_set_state(&udc->gadget, req->wValue ? udc 638 drivers/usb/isp1760/isp1760-udc.c return udc->driver->setup(&udc->gadget, req) < 0; udc 642 drivers/usb/isp1760/isp1760-udc.c static void isp1760_ep0_setup(struct isp1760_udc *udc) udc 651 drivers/usb/isp1760/isp1760-udc.c spin_lock(&udc->lock); udc 653 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_EPINDEX, DC_EP0SETUP); udc 655 drivers/usb/isp1760/isp1760-udc.c count = isp1760_udc_read(udc, DC_BUFLEN) & DC_DATACOUNT_MASK; udc 657 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 659 drivers/usb/isp1760/isp1760-udc.c dev_err(udc->isp->dev, "invalid length %u for setup packet\n", udc 662 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_ctrl_send_stall(&udc->ep[0]); udc 666 drivers/usb/isp1760/isp1760-udc.c req.data[0] = isp1760_udc_read(udc, DC_DATAPORT); udc 667 drivers/usb/isp1760/isp1760-udc.c req.data[1] = isp1760_udc_read(udc, DC_DATAPORT); udc 669 drivers/usb/isp1760/isp1760-udc.c if (udc->ep0_state != ISP1760_CTRL_SETUP) { udc 670 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 671 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "unexpected SETUP packet\n"); udc 677 drivers/usb/isp1760/isp1760-udc.c udc->ep0_state = ISP1760_CTRL_STATUS; udc 679 drivers/usb/isp1760/isp1760-udc.c udc->ep0_state = ISP1760_CTRL_DATA_IN; udc 681 drivers/usb/isp1760/isp1760-udc.c udc->ep0_state = ISP1760_CTRL_DATA_OUT; udc 683 drivers/usb/isp1760/isp1760-udc.c udc->ep0_dir = req.r.bRequestType & USB_DIR_IN; udc 684 drivers/usb/isp1760/isp1760-udc.c udc->ep0_length = le16_to_cpu(req.r.wLength); udc 686 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 688 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, udc 695 drivers/usb/isp1760/isp1760-udc.c stall = isp1760_ep0_setup_standard(udc, &req.r); udc 697 drivers/usb/isp1760/isp1760-udc.c stall = udc->driver->setup(&udc->gadget, &req.r) < 0; udc 700 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_ctrl_send_stall(&udc->ep[0]); udc 711 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = uep->udc; udc 715 drivers/usb/isp1760/isp1760-udc.c dev_dbg(uep->udc->isp->dev, "%s\n", __func__); udc 725 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, udc 745 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: control endpoints unsupported\n", udc 750 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&udc->lock, flags); udc 759 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_EPMAXPKTSZ, uep->maxpacket); udc 760 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_BUFLEN, uep->maxpacket); udc 761 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_EPTYPE, DC_EPENABLE | type); udc 763 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 771 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = uep->udc; udc 776 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s\n", __func__); udc 778 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&udc->lock, flags); udc 781 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: endpoint not enabled\n", __func__); udc 782 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 790 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_EPTYPE, 0); udc 796 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 830 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = uep->udc; udc 838 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&udc->lock, flags); udc 840 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, udc 847 drivers/usb/isp1760/isp1760-udc.c if (_req->length != udc->ep0_length && udc 848 drivers/usb/isp1760/isp1760-udc.c udc->ep0_state != ISP1760_CTRL_DATA_IN) { udc 849 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, udc 856 drivers/usb/isp1760/isp1760-udc.c switch (udc->ep0_state) { udc 858 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: transmitting req %p\n", udc 868 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, DC_DSEN); udc 876 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: invalid ep0 state\n", udc 890 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, udc 900 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 912 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = uep->udc; udc 915 drivers/usb/isp1760/isp1760-udc.c dev_dbg(uep->udc->isp->dev, "%s(ep%02x)\n", __func__, uep->addr); udc 917 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&udc->lock, flags); udc 924 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 935 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = uep->udc; udc 945 drivers/usb/isp1760/isp1760-udc.c if (WARN_ON(udc->ep0_state == ISP1760_CTRL_SETUP || !stall || udc 952 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s: ep%02x is disabled\n", __func__, udc 960 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, udc 976 drivers/usb/isp1760/isp1760-udc.c udc->ep0_state = ISP1760_CTRL_SETUP; udc 994 drivers/usb/isp1760/isp1760-udc.c dev_dbg(uep->udc->isp->dev, "%s: %s halt on ep%02x\n", __func__, udc 997 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&uep->udc->lock, flags); udc 999 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&uep->udc->lock, flags); udc 1010 drivers/usb/isp1760/isp1760-udc.c dev_dbg(uep->udc->isp->dev, "%s: set wedge on ep%02x)\n", __func__, udc 1013 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&uep->udc->lock, flags); udc 1015 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&uep->udc->lock, flags); udc 1023 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = uep->udc; udc 1026 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&udc->lock, flags); udc 1034 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, DC_CLBUF); udc 1035 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_CTRLFUNC, DC_CLBUF); udc 1037 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1057 drivers/usb/isp1760/isp1760-udc.c static void isp1760_udc_connect(struct isp1760_udc *udc) udc 1059 drivers/usb/isp1760/isp1760-udc.c usb_gadget_set_state(&udc->gadget, USB_STATE_POWERED); udc 1060 drivers/usb/isp1760/isp1760-udc.c mod_timer(&udc->vbus_timer, jiffies + ISP1760_VBUS_POLL_INTERVAL); udc 1064 drivers/usb/isp1760/isp1760-udc.c static void isp1760_udc_disconnect(struct isp1760_udc *udc) udc 1066 drivers/usb/isp1760/isp1760-udc.c if (udc->gadget.state < USB_STATE_POWERED) udc 1069 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "Device disconnected in state %u\n", udc 1070 drivers/usb/isp1760/isp1760-udc.c udc->gadget.state); udc 1072 drivers/usb/isp1760/isp1760-udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1073 drivers/usb/isp1760/isp1760-udc.c usb_gadget_set_state(&udc->gadget, USB_STATE_ATTACHED); udc 1075 drivers/usb/isp1760/isp1760-udc.c if (udc->driver->disconnect) udc 1076 drivers/usb/isp1760/isp1760-udc.c udc->driver->disconnect(&udc->gadget); udc 1078 drivers/usb/isp1760/isp1760-udc.c del_timer(&udc->vbus_timer); udc 1083 drivers/usb/isp1760/isp1760-udc.c static void isp1760_udc_init_hw(struct isp1760_udc *udc) udc 1094 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_INTCONF, DC_CDBGMOD_ACK | DC_DDBGMODIN_ACK | udc 1097 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_INTENABLE, DC_IEPRXTX(7) | DC_IEPRXTX(6) | udc 1103 drivers/usb/isp1760/isp1760-udc.c if (udc->connected) udc 1104 drivers/usb/isp1760/isp1760-udc.c isp1760_set_pullup(udc->isp, true); udc 1106 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_ADDRESS, DC_DEVEN); udc 1109 drivers/usb/isp1760/isp1760-udc.c static void isp1760_udc_reset(struct isp1760_udc *udc) udc 1113 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&udc->lock, flags); udc 1119 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_init_hw(udc); udc 1121 drivers/usb/isp1760/isp1760-udc.c udc->ep0_state = ISP1760_CTRL_SETUP; udc 1122 drivers/usb/isp1760/isp1760-udc.c udc->gadget.speed = USB_SPEED_FULL; udc 1124 drivers/usb/isp1760/isp1760-udc.c usb_gadget_udc_reset(&udc->gadget, udc->driver); udc 1126 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1129 drivers/usb/isp1760/isp1760-udc.c static void isp1760_udc_suspend(struct isp1760_udc *udc) udc 1131 drivers/usb/isp1760/isp1760-udc.c if (udc->gadget.state < USB_STATE_DEFAULT) udc 1134 drivers/usb/isp1760/isp1760-udc.c if (udc->driver->suspend) udc 1135 drivers/usb/isp1760/isp1760-udc.c udc->driver->suspend(&udc->gadget); udc 1138 drivers/usb/isp1760/isp1760-udc.c static void isp1760_udc_resume(struct isp1760_udc *udc) udc 1140 drivers/usb/isp1760/isp1760-udc.c if (udc->gadget.state < USB_STATE_DEFAULT) udc 1143 drivers/usb/isp1760/isp1760-udc.c if (udc->driver->resume) udc 1144 drivers/usb/isp1760/isp1760-udc.c udc->driver->resume(&udc->gadget); udc 1153 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = gadget_to_udc(gadget); udc 1155 drivers/usb/isp1760/isp1760-udc.c return isp1760_udc_read(udc, DC_FRAMENUM) & ((1 << 11) - 1); udc 1160 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = gadget_to_udc(gadget); udc 1162 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s\n", __func__); udc 1169 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = gadget_to_udc(gadget); udc 1172 drivers/usb/isp1760/isp1760-udc.c udc->devstatus |= 1 << USB_DEVICE_SELF_POWERED; udc 1174 drivers/usb/isp1760/isp1760-udc.c udc->devstatus &= ~(1 << USB_DEVICE_SELF_POWERED); udc 1181 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = gadget_to_udc(gadget); udc 1183 drivers/usb/isp1760/isp1760-udc.c isp1760_set_pullup(udc->isp, is_on); udc 1184 drivers/usb/isp1760/isp1760-udc.c udc->connected = is_on; udc 1192 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = gadget_to_udc(gadget); udc 1197 drivers/usb/isp1760/isp1760-udc.c dev_err(udc->isp->dev, "Invalid gadget driver\n"); udc 1201 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&udc->lock, flags); udc 1203 drivers/usb/isp1760/isp1760-udc.c if (udc->driver) { udc 1204 drivers/usb/isp1760/isp1760-udc.c dev_err(udc->isp->dev, "UDC already has a gadget driver\n"); udc 1205 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1209 drivers/usb/isp1760/isp1760-udc.c udc->driver = driver; udc 1211 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1213 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "starting UDC with driver %s\n", udc 1216 drivers/usb/isp1760/isp1760-udc.c udc->devstatus = 0; udc 1217 drivers/usb/isp1760/isp1760-udc.c udc->connected = true; udc 1219 drivers/usb/isp1760/isp1760-udc.c usb_gadget_set_state(&udc->gadget, USB_STATE_ATTACHED); udc 1222 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_MODE, DC_GLINTENA); udc 1224 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_init_hw(udc); udc 1226 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "UDC started with driver %s\n", udc 1234 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = gadget_to_udc(gadget); udc 1237 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s\n", __func__); udc 1239 drivers/usb/isp1760/isp1760-udc.c del_timer_sync(&udc->vbus_timer); udc 1241 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_MODE, 0); udc 1243 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&udc->lock, flags); udc 1244 drivers/usb/isp1760/isp1760-udc.c udc->driver = NULL; udc 1245 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1265 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = dev; udc 1269 drivers/usb/isp1760/isp1760-udc.c status = isp1760_udc_read(udc, DC_INTERRUPT) udc 1270 drivers/usb/isp1760/isp1760-udc.c & isp1760_udc_read(udc, DC_INTENABLE); udc 1271 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_INTERRUPT, status); udc 1274 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s(VBUS)\n", __func__); udc 1276 drivers/usb/isp1760/isp1760-udc.c spin_lock(&udc->lock); udc 1277 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_connect(udc); udc 1278 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 1282 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s(BRST)\n", __func__); udc 1284 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_reset(udc); udc 1288 drivers/usb/isp1760/isp1760-udc.c struct isp1760_ep *ep = &udc->ep[i*2]; udc 1291 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s(EPTX%u)\n", __func__, i); udc 1296 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s(EPRX%u)\n", __func__, i); udc 1302 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s(EP0SETUP)\n", __func__); udc 1304 drivers/usb/isp1760/isp1760-udc.c isp1760_ep0_setup(udc); udc 1308 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s(RESM)\n", __func__); udc 1309 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_resume(udc); udc 1313 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s(SUSP)\n", __func__); udc 1315 drivers/usb/isp1760/isp1760-udc.c spin_lock(&udc->lock); udc 1316 drivers/usb/isp1760/isp1760-udc.c if (!(isp1760_udc_read(udc, DC_MODE) & DC_VBUSSTAT)) udc 1317 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_disconnect(udc); udc 1319 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_suspend(udc); udc 1320 drivers/usb/isp1760/isp1760-udc.c spin_unlock(&udc->lock); udc 1324 drivers/usb/isp1760/isp1760-udc.c dev_dbg(udc->isp->dev, "%s(HS_STA)\n", __func__); udc 1325 drivers/usb/isp1760/isp1760-udc.c udc->gadget.speed = USB_SPEED_HIGH; udc 1333 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = from_timer(udc, t, vbus_timer); udc 1336 drivers/usb/isp1760/isp1760-udc.c spin_lock_irqsave(&udc->lock, flags); udc 1338 drivers/usb/isp1760/isp1760-udc.c if (!(isp1760_udc_read(udc, DC_MODE) & DC_VBUSSTAT)) udc 1339 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_disconnect(udc); udc 1340 drivers/usb/isp1760/isp1760-udc.c else if (udc->gadget.state >= USB_STATE_POWERED) udc 1341 drivers/usb/isp1760/isp1760-udc.c mod_timer(&udc->vbus_timer, udc 1344 drivers/usb/isp1760/isp1760-udc.c spin_unlock_irqrestore(&udc->lock, flags); udc 1351 drivers/usb/isp1760/isp1760-udc.c static void isp1760_udc_init_eps(struct isp1760_udc *udc) udc 1355 drivers/usb/isp1760/isp1760-udc.c INIT_LIST_HEAD(&udc->gadget.ep_list); udc 1357 drivers/usb/isp1760/isp1760-udc.c for (i = 0; i < ARRAY_SIZE(udc->ep); ++i) { udc 1358 drivers/usb/isp1760/isp1760-udc.c struct isp1760_ep *ep = &udc->ep[i]; udc 1362 drivers/usb/isp1760/isp1760-udc.c ep->udc = udc; udc 1387 drivers/usb/isp1760/isp1760-udc.c udc->gadget.ep0 = &ep->ep; udc 1394 drivers/usb/isp1760/isp1760-udc.c list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); udc 1404 drivers/usb/isp1760/isp1760-udc.c static int isp1760_udc_init(struct isp1760_udc *udc) udc 1415 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_SCRATCH, 0xbabe); udc 1416 drivers/usb/isp1760/isp1760-udc.c chipid = isp1760_udc_read(udc, DC_CHIPID); udc 1417 drivers/usb/isp1760/isp1760-udc.c scratch = isp1760_udc_read(udc, DC_SCRATCH); udc 1420 drivers/usb/isp1760/isp1760-udc.c dev_err(udc->isp->dev, udc 1427 drivers/usb/isp1760/isp1760-udc.c dev_err(udc->isp->dev, "udc: invalid chip ID 0x%08x\n", chipid); udc 1432 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_MODE, DC_SFRESET); udc 1434 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_write(udc, DC_MODE, 0); udc 1443 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = &isp->udc; udc 1446 drivers/usb/isp1760/isp1760-udc.c udc->irq = -1; udc 1447 drivers/usb/isp1760/isp1760-udc.c udc->isp = isp; udc 1448 drivers/usb/isp1760/isp1760-udc.c udc->regs = isp->regs; udc 1450 drivers/usb/isp1760/isp1760-udc.c spin_lock_init(&udc->lock); udc 1451 drivers/usb/isp1760/isp1760-udc.c timer_setup(&udc->vbus_timer, isp1760_udc_vbus_poll, 0); udc 1453 drivers/usb/isp1760/isp1760-udc.c ret = isp1760_udc_init(udc); udc 1457 drivers/usb/isp1760/isp1760-udc.c udc->irqname = kasprintf(GFP_KERNEL, "%s (udc)", dev_name(isp->dev)); udc 1458 drivers/usb/isp1760/isp1760-udc.c if (!udc->irqname) udc 1462 drivers/usb/isp1760/isp1760-udc.c udc->irqname, udc); udc 1466 drivers/usb/isp1760/isp1760-udc.c udc->irq = irq; udc 1473 drivers/usb/isp1760/isp1760-udc.c udc->gadget.ops = &isp1760_udc_ops; udc 1474 drivers/usb/isp1760/isp1760-udc.c udc->gadget.speed = USB_SPEED_UNKNOWN; udc 1475 drivers/usb/isp1760/isp1760-udc.c udc->gadget.max_speed = USB_SPEED_HIGH; udc 1476 drivers/usb/isp1760/isp1760-udc.c udc->gadget.name = "isp1761_udc"; udc 1478 drivers/usb/isp1760/isp1760-udc.c isp1760_udc_init_eps(udc); udc 1480 drivers/usb/isp1760/isp1760-udc.c ret = usb_add_gadget_udc(isp->dev, &udc->gadget); udc 1487 drivers/usb/isp1760/isp1760-udc.c if (udc->irq >= 0) udc 1488 drivers/usb/isp1760/isp1760-udc.c free_irq(udc->irq, udc); udc 1489 drivers/usb/isp1760/isp1760-udc.c kfree(udc->irqname); udc 1496 drivers/usb/isp1760/isp1760-udc.c struct isp1760_udc *udc = &isp->udc; udc 1498 drivers/usb/isp1760/isp1760-udc.c if (!udc->isp) udc 1501 drivers/usb/isp1760/isp1760-udc.c usb_del_gadget_udc(&udc->gadget); udc 1503 drivers/usb/isp1760/isp1760-udc.c free_irq(udc->irq, udc); udc 1504 drivers/usb/isp1760/isp1760-udc.c kfree(udc->irqname); udc 31 drivers/usb/isp1760/isp1760-udc.h struct isp1760_udc *udc; udc 27 drivers/usb/roles/class.c struct device *udc; udc 303 drivers/usb/roles/class.c sw->udc = desc->udc; udc 41 drivers/usb/usbip/vudc.h struct vudc *udc; udc 146 drivers/usb/usbip/vudc.h int get_gadget_descs(struct vudc *udc); udc 151 drivers/usb/usbip/vudc.h void v_enqueue_ret_unlink(struct vudc *udc, __u32 seqnum, __u32 status); udc 152 drivers/usb/usbip/vudc.h void v_enqueue_ret_submit(struct vudc *udc, struct urbp *urb_p); udc 160 drivers/usb/usbip/vudc.h void v_init_timer(struct vudc *udc); udc 161 drivers/usb/usbip/vudc.h void v_start_timer(struct vudc *udc); udc 162 drivers/usb/usbip/vudc.h void v_kick_timer(struct vudc *udc, unsigned long time); udc 163 drivers/usb/usbip/vudc.h void v_stop_timer(struct vudc *udc); udc 170 drivers/usb/usbip/vudc.h struct vep *vudc_find_endpoint(struct vudc *udc, u8 address); udc 73 drivers/usb/usbip/vudc_dev.c static void nuke(struct vudc *udc, struct vep *ep) udc 83 drivers/usb/usbip/vudc_dev.c spin_unlock(&udc->lock); udc 85 drivers/usb/usbip/vudc_dev.c spin_lock(&udc->lock); udc 90 drivers/usb/usbip/vudc_dev.c static void stop_activity(struct vudc *udc) udc 95 drivers/usb/usbip/vudc_dev.c udc->address = 0; udc 98 drivers/usb/usbip/vudc_dev.c nuke(udc, &udc->ep[i]); udc 100 drivers/usb/usbip/vudc_dev.c list_for_each_entry_safe(urb_p, tmp, &udc->urb_queue, urb_entry) { udc 106 drivers/usb/usbip/vudc_dev.c struct vep *vudc_find_endpoint(struct vudc *udc, u8 address) udc 111 drivers/usb/usbip/vudc_dev.c return &udc->ep[0]; udc 114 drivers/usb/usbip/vudc_dev.c struct vep *ep = &udc->ep[i]; udc 129 drivers/usb/usbip/vudc_dev.c struct vudc *udc = usb_gadget_to_vudc(_gadget); udc 132 drivers/usb/usbip/vudc_dev.c return ((now.tv_sec - udc->start_time.tv_sec) * 1000 + udc 133 drivers/usb/usbip/vudc_dev.c (now.tv_nsec - udc->start_time.tv_nsec) / NSEC_PER_MSEC) udc 139 drivers/usb/usbip/vudc_dev.c struct vudc *udc = usb_gadget_to_vudc(_gadget); udc 142 drivers/usb/usbip/vudc_dev.c udc->devstatus |= (1 << USB_DEVICE_SELF_POWERED); udc 144 drivers/usb/usbip/vudc_dev.c udc->devstatus &= ~(1 << USB_DEVICE_SELF_POWERED); udc 150 drivers/usb/usbip/vudc_dev.c struct vudc *udc = usb_gadget_to_vudc(_gadget); udc 155 drivers/usb/usbip/vudc_dev.c spin_lock_irqsave(&udc->lock, flags); udc 157 drivers/usb/usbip/vudc_dev.c if (value == udc->pullup) udc 160 drivers/usb/usbip/vudc_dev.c udc->pullup = value; udc 162 drivers/usb/usbip/vudc_dev.c udc->gadget.speed = min_t(u8, USB_SPEED_HIGH, udc 163 drivers/usb/usbip/vudc_dev.c udc->driver->max_speed); udc 164 drivers/usb/usbip/vudc_dev.c udc->ep[0].ep.maxpacket = 64; udc 169 drivers/usb/usbip/vudc_dev.c ret = get_gadget_descs(udc); udc 171 drivers/usb/usbip/vudc_dev.c dev_err(&udc->gadget.dev, "Unable go get desc: %d", ret); udc 175 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 176 drivers/usb/usbip/vudc_dev.c usbip_start_eh(&udc->ud); udc 179 drivers/usb/usbip/vudc_dev.c udc->desc_cached = 0; udc 181 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 182 drivers/usb/usbip/vudc_dev.c usbip_event_add(&udc->ud, VUDC_EVENT_REMOVED); udc 183 drivers/usb/usbip/vudc_dev.c usbip_stop_eh(&udc->ud); /* Wait for eh completion */ udc 189 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 196 drivers/usb/usbip/vudc_dev.c struct vudc *udc = usb_gadget_to_vudc(g); udc 199 drivers/usb/usbip/vudc_dev.c spin_lock_irqsave(&udc->lock, flags); udc 200 drivers/usb/usbip/vudc_dev.c udc->driver = driver; udc 201 drivers/usb/usbip/vudc_dev.c udc->pullup = udc->connected = udc->desc_cached = 0; udc 202 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 209 drivers/usb/usbip/vudc_dev.c struct vudc *udc = usb_gadget_to_vudc(g); udc 212 drivers/usb/usbip/vudc_dev.c spin_lock_irqsave(&udc->lock, flags); udc 213 drivers/usb/usbip/vudc_dev.c udc->driver = NULL; udc 214 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 233 drivers/usb/usbip/vudc_dev.c struct vudc *udc; udc 238 drivers/usb/usbip/vudc_dev.c udc = ep_to_vudc(ep); udc 244 drivers/usb/usbip/vudc_dev.c if (!udc->driver) udc 247 drivers/usb/usbip/vudc_dev.c spin_lock_irqsave(&udc->lock, flags); udc 255 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 263 drivers/usb/usbip/vudc_dev.c struct vudc *udc; udc 267 drivers/usb/usbip/vudc_dev.c udc = ep_to_vudc(ep); udc 271 drivers/usb/usbip/vudc_dev.c spin_lock_irqsave(&udc->lock, flags); udc 273 drivers/usb/usbip/vudc_dev.c nuke(udc, ep); udc 274 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 313 drivers/usb/usbip/vudc_dev.c struct vudc *udc; udc 321 drivers/usb/usbip/vudc_dev.c udc = ep_to_vudc(ep); udc 323 drivers/usb/usbip/vudc_dev.c spin_lock_irqsave(&udc->lock, flags); udc 328 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 337 drivers/usb/usbip/vudc_dev.c struct vudc *udc; udc 347 drivers/usb/usbip/vudc_dev.c udc = req->udc; udc 349 drivers/usb/usbip/vudc_dev.c if (!udc->driver) udc 352 drivers/usb/usbip/vudc_dev.c spin_lock_irqsave(&udc->lock, flags); udc 361 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 373 drivers/usb/usbip/vudc_dev.c struct vudc *udc; udc 381 drivers/usb/usbip/vudc_dev.c udc = ep_to_vudc(ep); udc 382 drivers/usb/usbip/vudc_dev.c if (!udc->driver) udc 385 drivers/usb/usbip/vudc_dev.c spin_lock_irqsave(&udc->lock, flags); udc 397 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 431 drivers/usb/usbip/vudc_dev.c struct vudc *udc = container_of(ud, struct vudc, ud); udc 435 drivers/usb/usbip/vudc_dev.c dev_dbg(&udc->pdev->dev, "device shutdown"); udc 453 drivers/usb/usbip/vudc_dev.c spin_lock_irqsave(&udc->lock, flags); udc 454 drivers/usb/usbip/vudc_dev.c stop_activity(udc); udc 455 drivers/usb/usbip/vudc_dev.c if (udc->connected && udc->driver->disconnect) udc 457 drivers/usb/usbip/vudc_dev.c udc->connected = 0; udc 458 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 460 drivers/usb/usbip/vudc_dev.c udc->driver->disconnect(&udc->gadget); udc 465 drivers/usb/usbip/vudc_dev.c struct vudc *udc = container_of(ud, struct vudc, ud); udc 468 drivers/usb/usbip/vudc_dev.c dev_dbg(&udc->pdev->dev, "device reset"); udc 469 drivers/usb/usbip/vudc_dev.c spin_lock_irqsave(&udc->lock, flags); udc 470 drivers/usb/usbip/vudc_dev.c stop_activity(udc); udc 471 drivers/usb/usbip/vudc_dev.c spin_unlock_irqrestore(&udc->lock, flags); udc 472 drivers/usb/usbip/vudc_dev.c if (udc->driver) udc 473 drivers/usb/usbip/vudc_dev.c usb_gadget_udc_reset(&udc->gadget, udc->driver); udc 516 drivers/usb/usbip/vudc_dev.c static int init_vudc_hw(struct vudc *udc) udc 519 drivers/usb/usbip/vudc_dev.c struct usbip_device *ud = &udc->ud; udc 522 drivers/usb/usbip/vudc_dev.c udc->ep = kcalloc(VIRTUAL_ENDPOINTS, sizeof(*udc->ep), GFP_KERNEL); udc 523 drivers/usb/usbip/vudc_dev.c if (!udc->ep) udc 526 drivers/usb/usbip/vudc_dev.c INIT_LIST_HEAD(&udc->gadget.ep_list); udc 533 drivers/usb/usbip/vudc_dev.c ep = &udc->ep[i]; udc 543 drivers/usb/usbip/vudc_dev.c ep->gadget = &udc->gadget; udc 552 drivers/usb/usbip/vudc_dev.c udc->gadget.ep0 = &ep->ep; udc 564 drivers/usb/usbip/vudc_dev.c list_add_tail(&ep->ep.ep_list, &udc->gadget.ep_list); udc 568 drivers/usb/usbip/vudc_dev.c spin_lock_init(&udc->lock); udc 569 drivers/usb/usbip/vudc_dev.c spin_lock_init(&udc->lock_tx); udc 570 drivers/usb/usbip/vudc_dev.c INIT_LIST_HEAD(&udc->urb_queue); udc 571 drivers/usb/usbip/vudc_dev.c INIT_LIST_HEAD(&udc->tx_queue); udc 572 drivers/usb/usbip/vudc_dev.c init_waitqueue_head(&udc->tx_waitq); udc 582 drivers/usb/usbip/vudc_dev.c v_init_timer(udc); udc 589 drivers/usb/usbip/vudc_dev.c static void cleanup_vudc_hw(struct vudc *udc) udc 591 drivers/usb/usbip/vudc_dev.c kfree(udc->ep); udc 598 drivers/usb/usbip/vudc_dev.c struct vudc *udc; udc 601 drivers/usb/usbip/vudc_dev.c udc = kzalloc(sizeof(*udc), GFP_KERNEL); udc 602 drivers/usb/usbip/vudc_dev.c if (!udc) udc 605 drivers/usb/usbip/vudc_dev.c udc->gadget.name = GADGET_NAME; udc 606 drivers/usb/usbip/vudc_dev.c udc->gadget.ops = &vgadget_ops; udc 607 drivers/usb/usbip/vudc_dev.c udc->gadget.max_speed = USB_SPEED_HIGH; udc 608 drivers/usb/usbip/vudc_dev.c udc->gadget.dev.parent = &pdev->dev; udc 609 drivers/usb/usbip/vudc_dev.c udc->pdev = pdev; udc 611 drivers/usb/usbip/vudc_dev.c ret = init_vudc_hw(udc); udc 615 drivers/usb/usbip/vudc_dev.c ret = usb_add_gadget_udc(&pdev->dev, &udc->gadget); udc 619 drivers/usb/usbip/vudc_dev.c platform_set_drvdata(pdev, udc); udc 624 drivers/usb/usbip/vudc_dev.c cleanup_vudc_hw(udc); udc 626 drivers/usb/usbip/vudc_dev.c kfree(udc); udc 633 drivers/usb/usbip/vudc_dev.c struct vudc *udc = platform_get_drvdata(pdev); udc 635 drivers/usb/usbip/vudc_dev.c usb_del_gadget_udc(&udc->gadget); udc 636 drivers/usb/usbip/vudc_dev.c cleanup_vudc_hw(udc); udc 637 drivers/usb/usbip/vudc_dev.c kfree(udc); udc 62 drivers/usb/usbip/vudc_rx.c static int v_recv_cmd_unlink(struct vudc *udc, udc 68 drivers/usb/usbip/vudc_rx.c spin_lock_irqsave(&udc->lock, flags); udc 69 drivers/usb/usbip/vudc_rx.c list_for_each_entry(urb_p, &udc->urb_queue, urb_entry) { udc 74 drivers/usb/usbip/vudc_rx.c v_kick_timer(udc, jiffies); udc 75 drivers/usb/usbip/vudc_rx.c spin_unlock_irqrestore(&udc->lock, flags); udc 79 drivers/usb/usbip/vudc_rx.c spin_lock(&udc->lock_tx); udc 80 drivers/usb/usbip/vudc_rx.c v_enqueue_ret_unlink(udc, pdu->base.seqnum, 0); udc 81 drivers/usb/usbip/vudc_rx.c wake_up(&udc->tx_waitq); udc 82 drivers/usb/usbip/vudc_rx.c spin_unlock(&udc->lock_tx); udc 83 drivers/usb/usbip/vudc_rx.c spin_unlock_irqrestore(&udc->lock, flags); udc 88 drivers/usb/usbip/vudc_rx.c static int v_recv_cmd_submit(struct vudc *udc, udc 98 drivers/usb/usbip/vudc_rx.c usbip_event_add(&udc->ud, VUDC_EVENT_ERROR_MALLOC); udc 107 drivers/usb/usbip/vudc_rx.c spin_lock_irq(&udc->lock); udc 108 drivers/usb/usbip/vudc_rx.c urb_p->ep = vudc_find_endpoint(udc, address); udc 111 drivers/usb/usbip/vudc_rx.c dev_err(&udc->pdev->dev, "request to nonexistent endpoint"); udc 112 drivers/usb/usbip/vudc_rx.c spin_unlock_irq(&udc->lock); udc 113 drivers/usb/usbip/vudc_rx.c usbip_event_add(&udc->ud, VUDC_EVENT_ERROR_TCP); udc 118 drivers/usb/usbip/vudc_rx.c spin_unlock_irq(&udc->lock); udc 134 drivers/usb/usbip/vudc_rx.c dev_err(&udc->gadget.dev, udc 144 drivers/usb/usbip/vudc_rx.c usbip_event_add(&udc->ud, VUDC_EVENT_ERROR_MALLOC); udc 167 drivers/usb/usbip/vudc_rx.c ret = usbip_recv_xbuff(&udc->ud, urb_p->urb); udc 171 drivers/usb/usbip/vudc_rx.c ret = usbip_recv_iso(&udc->ud, urb_p->urb); udc 175 drivers/usb/usbip/vudc_rx.c spin_lock_irqsave(&udc->lock, flags); udc 176 drivers/usb/usbip/vudc_rx.c v_kick_timer(udc, jiffies); udc 177 drivers/usb/usbip/vudc_rx.c list_add_tail(&urb_p->urb_entry, &udc->urb_queue); udc 178 drivers/usb/usbip/vudc_rx.c spin_unlock_irqrestore(&udc->lock, flags); udc 191 drivers/usb/usbip/vudc_rx.c struct vudc *udc = container_of(ud, struct vudc, ud); udc 213 drivers/usb/usbip/vudc_rx.c ret = v_recv_cmd_unlink(udc, &pdu); udc 216 drivers/usb/usbip/vudc_rx.c ret = v_recv_cmd_submit(udc, &pdu); udc 23 drivers/usb/usbip/vudc_sysfs.c int get_gadget_descs(struct vudc *udc) udc 26 drivers/usb/usbip/vudc_sysfs.c struct vep *ep0 = to_vep(udc->gadget.ep0); udc 27 drivers/usb/usbip/vudc_sysfs.c struct usb_device_descriptor *ddesc = &udc->dev_desc; udc 31 drivers/usb/usbip/vudc_sysfs.c if (!udc->driver || !udc->pullup) udc 40 drivers/usb/usbip/vudc_sysfs.c spin_unlock(&udc->lock); udc 41 drivers/usb/usbip/vudc_sysfs.c ret = udc->driver->setup(&(udc->gadget), &req); udc 42 drivers/usb/usbip/vudc_sysfs.c spin_lock(&udc->lock); udc 56 drivers/usb/usbip/vudc_sysfs.c udc->desc_cached = 1; udc 74 drivers/usb/usbip/vudc_sysfs.c struct vudc *udc = (struct vudc *)dev_get_drvdata(dev); udc 75 drivers/usb/usbip/vudc_sysfs.c char *desc_ptr = (char *) &udc->dev_desc; udc 79 drivers/usb/usbip/vudc_sysfs.c spin_lock_irqsave(&udc->lock, flags); udc 80 drivers/usb/usbip/vudc_sysfs.c if (!udc->desc_cached) { udc 88 drivers/usb/usbip/vudc_sysfs.c spin_unlock_irqrestore(&udc->lock, flags); udc 96 drivers/usb/usbip/vudc_sysfs.c struct vudc *udc = (struct vudc *) dev_get_drvdata(dev); udc 108 drivers/usb/usbip/vudc_sysfs.c if (!udc) { udc 112 drivers/usb/usbip/vudc_sysfs.c spin_lock_irqsave(&udc->lock, flags); udc 114 drivers/usb/usbip/vudc_sysfs.c if (!udc->driver || !udc->pullup) { udc 121 drivers/usb/usbip/vudc_sysfs.c if (udc->connected) { udc 127 drivers/usb/usbip/vudc_sysfs.c spin_lock_irq(&udc->ud.lock); udc 129 drivers/usb/usbip/vudc_sysfs.c if (udc->ud.status != SDEV_ST_AVAILABLE) { udc 141 drivers/usb/usbip/vudc_sysfs.c udc->ud.tcp_socket = socket; udc 143 drivers/usb/usbip/vudc_sysfs.c spin_unlock_irq(&udc->ud.lock); udc 144 drivers/usb/usbip/vudc_sysfs.c spin_unlock_irqrestore(&udc->lock, flags); udc 146 drivers/usb/usbip/vudc_sysfs.c udc->ud.tcp_rx = kthread_get_run(&v_rx_loop, udc 147 drivers/usb/usbip/vudc_sysfs.c &udc->ud, "vudc_rx"); udc 148 drivers/usb/usbip/vudc_sysfs.c udc->ud.tcp_tx = kthread_get_run(&v_tx_loop, udc 149 drivers/usb/usbip/vudc_sysfs.c &udc->ud, "vudc_tx"); udc 151 drivers/usb/usbip/vudc_sysfs.c spin_lock_irqsave(&udc->lock, flags); udc 152 drivers/usb/usbip/vudc_sysfs.c spin_lock_irq(&udc->ud.lock); udc 153 drivers/usb/usbip/vudc_sysfs.c udc->ud.status = SDEV_ST_USED; udc 154 drivers/usb/usbip/vudc_sysfs.c spin_unlock_irq(&udc->ud.lock); udc 156 drivers/usb/usbip/vudc_sysfs.c ktime_get_ts64(&udc->start_time); udc 157 drivers/usb/usbip/vudc_sysfs.c v_start_timer(udc); udc 158 drivers/usb/usbip/vudc_sysfs.c udc->connected = 1; udc 160 drivers/usb/usbip/vudc_sysfs.c if (!udc->connected) { udc 166 drivers/usb/usbip/vudc_sysfs.c spin_lock_irq(&udc->ud.lock); udc 167 drivers/usb/usbip/vudc_sysfs.c if (udc->ud.status != SDEV_ST_USED) { udc 171 drivers/usb/usbip/vudc_sysfs.c spin_unlock_irq(&udc->ud.lock); udc 173 drivers/usb/usbip/vudc_sysfs.c usbip_event_add(&udc->ud, VUDC_EVENT_DOWN); udc 176 drivers/usb/usbip/vudc_sysfs.c spin_unlock_irqrestore(&udc->lock, flags); udc 181 drivers/usb/usbip/vudc_sysfs.c spin_unlock_irq(&udc->ud.lock); udc 183 drivers/usb/usbip/vudc_sysfs.c spin_unlock_irqrestore(&udc->lock, flags); udc 192 drivers/usb/usbip/vudc_sysfs.c struct vudc *udc = (struct vudc *) dev_get_drvdata(dev); udc 195 drivers/usb/usbip/vudc_sysfs.c if (!udc) { udc 199 drivers/usb/usbip/vudc_sysfs.c spin_lock_irq(&udc->ud.lock); udc 200 drivers/usb/usbip/vudc_sysfs.c status = udc->ud.status; udc 201 drivers/usb/usbip/vudc_sysfs.c spin_unlock_irq(&udc->ud.lock); udc 58 drivers/usb/usbip/vudc_transfer.c static int handle_control_request(struct vudc *udc, struct urb *urb, udc 73 drivers/usb/usbip/vudc_transfer.c udc->address = w_value; udc 84 drivers/usb/usbip/vudc_transfer.c udc->gadget.b_hnp_enable = 1; udc 87 drivers/usb/usbip/vudc_transfer.c udc->gadget.a_hnp_support = 1; udc 90 drivers/usb/usbip/vudc_transfer.c udc->gadget.a_alt_hnp_support = 1; udc 96 drivers/usb/usbip/vudc_transfer.c udc->devstatus |= (1 << w_value); udc 101 drivers/usb/usbip/vudc_transfer.c ep2 = vudc_find_endpoint(udc, w_index); udc 102 drivers/usb/usbip/vudc_transfer.c if (!ep2 || ep2->ep.name == udc->ep[0].ep.name) { udc 129 drivers/usb/usbip/vudc_transfer.c udc->devstatus &= ~(1 << w_value); udc 134 drivers/usb/usbip/vudc_transfer.c ep2 = vudc_find_endpoint(udc, w_index); udc 158 drivers/usb/usbip/vudc_transfer.c ep2 = vudc_find_endpoint(udc, w_index); udc 166 drivers/usb/usbip/vudc_transfer.c buf[0] = (u8)udc->devstatus; udc 183 drivers/usb/usbip/vudc_transfer.c static int transfer(struct vudc *udc, udc 283 drivers/usb/usbip/vudc_transfer.c spin_unlock(&udc->lock); udc 285 drivers/usb/usbip/vudc_transfer.c spin_lock(&udc->lock); udc 304 drivers/usb/usbip/vudc_transfer.c struct vudc *udc = from_timer(udc, t, tr_timer.timer); udc 305 drivers/usb/usbip/vudc_transfer.c struct transfer_timer *timer = &udc->tr_timer; udc 313 drivers/usb/usbip/vudc_transfer.c spin_lock_irqsave(&udc->lock, flags); udc 315 drivers/usb/usbip/vudc_transfer.c total = get_frame_limit(udc->gadget.speed); udc 318 drivers/usb/usbip/vudc_transfer.c spin_unlock_irqrestore(&udc->lock, flags); udc 331 drivers/usb/usbip/vudc_transfer.c udc->ep[0].already_seen = 0; udc 332 drivers/usb/usbip/vudc_transfer.c list_for_each_entry(_ep, &udc->gadget.ep_list, ep_list) { udc 338 drivers/usb/usbip/vudc_transfer.c list_for_each_entry_safe(urb_p, tmp, &udc->urb_queue, urb_entry) { udc 359 drivers/usb/usbip/vudc_transfer.c if (ep == &udc->ep[0] && urb_p->new) { udc 368 drivers/usb/usbip/vudc_transfer.c if (ep == &udc->ep[0] && ep->setup_stage) { udc 373 drivers/usb/usbip/vudc_transfer.c ret = handle_control_request(udc, urb, udc 377 drivers/usb/usbip/vudc_transfer.c spin_unlock(&udc->lock); udc 378 drivers/usb/usbip/vudc_transfer.c ret = udc->driver->setup(&udc->gadget, udc 381 drivers/usb/usbip/vudc_transfer.c spin_lock(&udc->lock); udc 410 drivers/usb/usbip/vudc_transfer.c total -= transfer(udc, urb, ep, limit); udc 419 drivers/usb/usbip/vudc_transfer.c spin_lock(&udc->lock_tx); udc 422 drivers/usb/usbip/vudc_transfer.c v_enqueue_ret_submit(udc, urb_p); udc 424 drivers/usb/usbip/vudc_transfer.c v_enqueue_ret_unlink(udc, urb_p->seqnum, udc 428 drivers/usb/usbip/vudc_transfer.c wake_up(&udc->tx_waitq); udc 429 drivers/usb/usbip/vudc_transfer.c spin_unlock(&udc->lock_tx); udc 435 drivers/usb/usbip/vudc_transfer.c if (list_empty(&udc->urb_queue)) udc 441 drivers/usb/usbip/vudc_transfer.c spin_unlock_irqrestore(&udc->lock, flags); udc 446 drivers/usb/usbip/vudc_transfer.c void v_init_timer(struct vudc *udc) udc 448 drivers/usb/usbip/vudc_transfer.c struct transfer_timer *t = &udc->tr_timer; udc 454 drivers/usb/usbip/vudc_transfer.c void v_start_timer(struct vudc *udc) udc 456 drivers/usb/usbip/vudc_transfer.c struct transfer_timer *t = &udc->tr_timer; udc 458 drivers/usb/usbip/vudc_transfer.c dev_dbg(&udc->pdev->dev, "timer start"); udc 463 drivers/usb/usbip/vudc_transfer.c return v_kick_timer(udc, jiffies); udc 467 drivers/usb/usbip/vudc_transfer.c t->frame_limit = get_frame_limit(udc->gadget.speed); udc 468 drivers/usb/usbip/vudc_transfer.c return v_kick_timer(udc, jiffies); udc 472 drivers/usb/usbip/vudc_transfer.c void v_kick_timer(struct vudc *udc, unsigned long time) udc 474 drivers/usb/usbip/vudc_transfer.c struct transfer_timer *t = &udc->tr_timer; udc 476 drivers/usb/usbip/vudc_transfer.c dev_dbg(&udc->pdev->dev, "timer kick"); udc 489 drivers/usb/usbip/vudc_transfer.c void v_stop_timer(struct vudc *udc) udc 491 drivers/usb/usbip/vudc_transfer.c struct transfer_timer *t = &udc->tr_timer; udc 494 drivers/usb/usbip/vudc_transfer.c dev_dbg(&udc->pdev->dev, "timer stop"); udc 38 drivers/usb/usbip/vudc_tx.c static int v_send_ret_unlink(struct vudc *udc, struct v_unlink *unlink) udc 60 drivers/usb/usbip/vudc_tx.c ret = kernel_sendmsg(udc->ud.tcp_socket, &msg, iov, udc 63 drivers/usb/usbip/vudc_tx.c usbip_event_add(&udc->ud, VUDC_EVENT_ERROR_TCP); udc 73 drivers/usb/usbip/vudc_tx.c static int v_send_ret_submit(struct vudc *udc, struct urbp *urb_p) udc 89 drivers/usb/usbip/vudc_tx.c dev_err(&udc->gadget.dev, udc 102 drivers/usb/usbip/vudc_tx.c usbip_event_add(&udc->ud, VUDC_EVENT_ERROR_MALLOC); udc 141 drivers/usb/usbip/vudc_tx.c usbip_event_add(&udc->ud, VUDC_EVENT_ERROR_TCP); udc 154 drivers/usb/usbip/vudc_tx.c usbip_event_add(&udc->ud, udc 166 drivers/usb/usbip/vudc_tx.c ret = kernel_sendmsg(udc->ud.tcp_socket, &msg, udc 169 drivers/usb/usbip/vudc_tx.c usbip_event_add(&udc->ud, VUDC_EVENT_ERROR_TCP); udc 184 drivers/usb/usbip/vudc_tx.c static int v_send_ret(struct vudc *udc) udc 191 drivers/usb/usbip/vudc_tx.c spin_lock_irqsave(&udc->lock_tx, flags); udc 192 drivers/usb/usbip/vudc_tx.c while (!list_empty(&udc->tx_queue)) { udc 193 drivers/usb/usbip/vudc_tx.c txi = list_first_entry(&udc->tx_queue, struct tx_item, udc 196 drivers/usb/usbip/vudc_tx.c spin_unlock_irqrestore(&udc->lock_tx, flags); udc 200 drivers/usb/usbip/vudc_tx.c ret = v_send_ret_submit(udc, txi->s); udc 203 drivers/usb/usbip/vudc_tx.c ret = v_send_ret_unlink(udc, txi->u); udc 213 drivers/usb/usbip/vudc_tx.c spin_lock_irqsave(&udc->lock_tx, flags); udc 216 drivers/usb/usbip/vudc_tx.c spin_unlock_irqrestore(&udc->lock_tx, flags); udc 224 drivers/usb/usbip/vudc_tx.c struct vudc *udc = container_of(ud, struct vudc, ud); udc 228 drivers/usb/usbip/vudc_tx.c if (usbip_event_happened(&udc->ud)) udc 230 drivers/usb/usbip/vudc_tx.c ret = v_send_ret(udc); udc 235 drivers/usb/usbip/vudc_tx.c wait_event_interruptible(udc->tx_waitq, udc 236 drivers/usb/usbip/vudc_tx.c (!list_empty(&udc->tx_queue) || udc 244 drivers/usb/usbip/vudc_tx.c void v_enqueue_ret_unlink(struct vudc *udc, __u32 seqnum, __u32 status) udc 251 drivers/usb/usbip/vudc_tx.c usbip_event_add(&udc->ud, VDEV_EVENT_ERROR_MALLOC); udc 257 drivers/usb/usbip/vudc_tx.c usbip_event_add(&udc->ud, VDEV_EVENT_ERROR_MALLOC); udc 266 drivers/usb/usbip/vudc_tx.c list_add_tail(&txi->tx_entry, &udc->tx_queue); udc 270 drivers/usb/usbip/vudc_tx.c void v_enqueue_ret_submit(struct vudc *udc, struct urbp *urb_p) udc 276 drivers/usb/usbip/vudc_tx.c usbip_event_add(&udc->ud, VDEV_EVENT_ERROR_MALLOC); udc 283 drivers/usb/usbip/vudc_tx.c list_add_tail(&txi->tx_entry, &udc->tx_queue); udc 397 include/linux/usb/gadget.h struct usb_udc *udc; udc 556 net/bridge/netfilter/ebtables.c unsigned int *n, struct ebt_cl_stack *udc) udc 571 net/bridge/netfilter/ebtables.c udc[*n].cs.chaininfo = (struct ebt_entries *)e; udc 573 net/bridge/netfilter/ebtables.c udc[*n].cs.n = 0; udc 574 net/bridge/netfilter/ebtables.c udc[*n].hookmask = 0;