Lines Matching refs:musb

57 			struct musb *musb, struct musb_ep *musb_ep)  in map_dma_buffer()  argument
60 struct dma_controller *dma = musb->dma_controller; in map_dma_buffer()
83 musb->controller, in map_dma_buffer()
89 ret = dma_mapping_error(musb->controller, dma_addr); in map_dma_buffer()
96 dma_sync_single_for_device(musb->controller, in map_dma_buffer()
108 struct musb *musb) in unmap_dma_buffer() argument
116 dev_vdbg(musb->controller, in unmap_dma_buffer()
121 dma_unmap_single(musb->controller, in unmap_dma_buffer()
129 dma_sync_single_for_cpu(musb->controller, in unmap_dma_buffer()
150 __releases(ep->musb->lock) in musb_g_giveback()
151 __acquires(ep->musb->lock) in musb_g_giveback()
154 struct musb *musb; in musb_g_giveback() local
162 musb = req->musb; in musb_g_giveback()
165 spin_unlock(&musb->lock); in musb_g_giveback()
167 if (!dma_mapping_error(&musb->g.dev, request->dma)) in musb_g_giveback()
168 unmap_dma_buffer(req, musb); in musb_g_giveback()
171 dev_dbg(musb->controller, "%s done request %p, %d/%d\n", in musb_g_giveback()
175 dev_dbg(musb->controller, "%s request %p, %d/%d fault %d\n", in musb_g_giveback()
180 spin_lock(&musb->lock); in musb_g_giveback()
192 struct musb *musb = ep->musb; in nuke() local
194 void __iomem *epio = ep->musb->endpoints[ep->current_epnum].regs; in nuke()
199 struct dma_controller *c = ep->musb->dma_controller; in nuke()
220 dev_dbg(musb->controller, "%s: abort DMA --> %d\n", in nuke()
241 static inline int max_ep_writesize(struct musb *musb, struct musb_ep *ep) in max_ep_writesize() argument
243 if (can_bulk_split(musb, ep->type)) in max_ep_writesize()
256 static void txstate(struct musb *musb, struct musb_request *req) in txstate() argument
260 void __iomem *epio = musb->endpoints[epnum].regs; in txstate()
269 dev_dbg(musb->controller, "ep:%s disabled - ignore request\n", in txstate()
276 dev_dbg(musb->controller, "dma pending...\n"); in txstate()
284 fifo_count = min(max_ep_writesize(musb, musb_ep), in txstate()
288 dev_dbg(musb->controller, "%s old packet still ready , txcsr %03x\n", in txstate()
294 dev_dbg(musb->controller, "%s stalling, txcsr %03x\n", in txstate()
299 dev_dbg(musb->controller, "hw_ep%d, maxpacket %d, fifo count %d, txcsr %03x\n", in txstate()
305 struct dma_controller *c = musb->dma_controller; in txstate()
316 if (musb_dma_inventra(musb) || musb_dma_ux500(musb)) { in txstate()
357 can_bulk_split(musb, in txstate()
367 if (is_cppi_enabled(musb)) { in txstate()
403 } else if (tusb_dma_omap(musb)) in txstate()
417 unmap_dma_buffer(req, musb); in txstate()
428 dev_dbg(musb->controller, "%s TX/IN %s len %d/%d, txcsr %04x, fifo %d/%d\n", in txstate()
440 void musb_g_tx(struct musb *musb, u8 epnum) in musb_g_tx() argument
445 u8 __iomem *mbase = musb->mregs; in musb_g_tx()
446 struct musb_ep *musb_ep = &musb->endpoints[epnum].ep_in; in musb_g_tx()
447 void __iomem *epio = musb->endpoints[epnum].regs; in musb_g_tx()
455 dev_dbg(musb->controller, "<== %s, txcsr %04x\n", musb_ep->end_point.name, csr); in musb_g_tx()
475 dev_vdbg(musb->controller, "underrun on ep%d, req %p\n", in musb_g_tx()
484 dev_dbg(musb->controller, "%s dma still busy?\n", musb_ep->end_point.name); in musb_g_tx()
501 dev_dbg(musb->controller, "TXCSR%d %04x, DMA off, len %zu, req %p\n", in musb_g_tx()
514 if ((musb_dma_inventra(musb) || musb_dma_ux500(musb)) && in musb_g_tx()
528 dev_dbg(musb->controller, "sending zero pkt\n"); in musb_g_tx()
547 dev_dbg(musb->controller, "%s idle now\n", in musb_g_tx()
553 txstate(musb, req); in musb_g_tx()
562 static void rxstate(struct musb *musb, struct musb_request *req) in rxstate() argument
567 void __iomem *epio = musb->endpoints[epnum].regs; in rxstate()
571 struct musb_hw_ep *hw_ep = &musb->endpoints[epnum]; in rxstate()
583 dev_dbg(musb->controller, "ep:%s disabled - ignore request\n", in rxstate()
590 dev_dbg(musb->controller, "DMA pending...\n"); in rxstate()
595 dev_dbg(musb->controller, "%s stalling, RXCSR %04x\n", in rxstate()
600 if (is_cppi_enabled(musb) && is_buffer_mapped(req)) { in rxstate()
601 struct dma_controller *c = musb->dma_controller; in rxstate()
645 if (musb_dma_inventra(musb)) { in rxstate()
651 c = musb->dma_controller; in rxstate()
720 if ((musb_dma_ux500(musb)) && in rxstate()
727 c = musb->dma_controller; in rxstate()
770 dev_dbg(musb->controller, "%s OUT/RX pio fifo %d/%d, maxpacket %d\n", in rxstate()
777 if (tusb_dma_omap(musb)) { in rxstate()
778 struct dma_controller *c = musb->dma_controller; in rxstate()
797 unmap_dma_buffer(req, musb); in rxstate()
831 void musb_g_rx(struct musb *musb, u8 epnum) in musb_g_rx() argument
836 void __iomem *mbase = musb->mregs; in musb_g_rx()
838 void __iomem *epio = musb->endpoints[epnum].regs; in musb_g_rx()
840 struct musb_hw_ep *hw_ep = &musb->endpoints[epnum]; in musb_g_rx()
858 dev_dbg(musb->controller, "<== %s, rxcsr %04x%s %p\n", musb_ep->end_point.name, in musb_g_rx()
873 dev_dbg(musb->controller, "%s iso overrun on %p\n", musb_ep->name, request); in musb_g_rx()
879 dev_dbg(musb->controller, "%s, incomprx\n", musb_ep->end_point.name); in musb_g_rx()
884 dev_dbg(musb->controller, "%s busy, csr %04x\n", in musb_g_rx()
898 dev_dbg(musb->controller, "RXCSR%d %04x, dma off, %04x, len %zu, req %p\n", in musb_g_rx()
948 rxstate(musb, req); in musb_g_rx()
960 struct musb *musb; in musb_gadget_enable() local
973 musb = musb_ep->musb; in musb_gadget_enable()
974 mbase = musb->mregs; in musb_gadget_enable()
977 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_enable()
995 ok = musb->hb_iso_tx; in musb_gadget_enable()
997 ok = musb->hb_iso_rx; in musb_gadget_enable()
1000 dev_dbg(musb->controller, "no support for high bandwidth ISO\n"); in musb_gadget_enable()
1023 dev_dbg(musb->controller, "packet size beyond hardware FIFO size\n"); in musb_gadget_enable()
1027 musb->intrtxe |= (1 << epnum); in musb_gadget_enable()
1028 musb_writew(mbase, MUSB_INTRTXE, musb->intrtxe); in musb_gadget_enable()
1036 if (musb->double_buffer_not_ok) { in musb_gadget_enable()
1039 if (can_bulk_split(musb, musb_ep->type)) in musb_gadget_enable()
1066 dev_dbg(musb->controller, "packet size beyond hardware FIFO size\n"); in musb_gadget_enable()
1070 musb->intrrxe |= (1 << epnum); in musb_gadget_enable()
1071 musb_writew(mbase, MUSB_INTRRXE, musb->intrrxe); in musb_gadget_enable()
1079 if (musb->double_buffer_not_ok) in musb_gadget_enable()
1106 if (is_dma_capable() && musb->dma_controller) { in musb_gadget_enable()
1107 struct dma_controller *c = musb->dma_controller; in musb_gadget_enable()
1130 schedule_work(&musb->irq_work); in musb_gadget_enable()
1133 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_enable()
1143 struct musb *musb; in musb_gadget_disable() local
1150 musb = musb_ep->musb; in musb_gadget_disable()
1152 epio = musb->endpoints[epnum].regs; in musb_gadget_disable()
1154 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_disable()
1155 musb_ep_select(musb->mregs, epnum); in musb_gadget_disable()
1159 musb->intrtxe &= ~(1 << epnum); in musb_gadget_disable()
1160 musb_writew(musb->mregs, MUSB_INTRTXE, musb->intrtxe); in musb_gadget_disable()
1163 musb->intrrxe &= ~(1 << epnum); in musb_gadget_disable()
1164 musb_writew(musb->mregs, MUSB_INTRRXE, musb->intrrxe); in musb_gadget_disable()
1174 schedule_work(&musb->irq_work); in musb_gadget_disable()
1176 spin_unlock_irqrestore(&(musb->lock), flags); in musb_gadget_disable()
1178 dev_dbg(musb->controller, "%s\n", musb_ep->end_point.name); in musb_gadget_disable()
1190 struct musb *musb = musb_ep->musb; in musb_alloc_request() local
1195 dev_dbg(musb->controller, "not enough memory\n"); in musb_alloc_request()
1227 void musb_ep_restart(struct musb *musb, struct musb_request *req) in musb_ep_restart() argument
1229 dev_dbg(musb->controller, "<== %s request %p len %u on hw_ep%d\n", in musb_ep_restart()
1233 musb_ep_select(musb->mregs, req->epnum); in musb_ep_restart()
1235 txstate(musb, req); in musb_ep_restart()
1237 rxstate(musb, req); in musb_ep_restart()
1245 struct musb *musb; in musb_gadget_queue() local
1255 musb = musb_ep->musb; in musb_gadget_queue()
1258 request->musb = musb; in musb_gadget_queue()
1263 dev_dbg(musb->controller, "<== to %s request=%p\n", ep->name, req); in musb_gadget_queue()
1271 map_dma_buffer(request, musb, musb_ep); in musb_gadget_queue()
1273 spin_lock_irqsave(&musb->lock, lockflags); in musb_gadget_queue()
1277 dev_dbg(musb->controller, "req %p queued to %s while ep %s\n", in musb_gadget_queue()
1280 unmap_dma_buffer(request, musb); in musb_gadget_queue()
1289 musb_ep_restart(musb, request); in musb_gadget_queue()
1292 spin_unlock_irqrestore(&musb->lock, lockflags); in musb_gadget_queue()
1303 struct musb *musb = musb_ep->musb; in musb_gadget_dequeue() local
1308 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_dequeue()
1315 dev_dbg(musb->controller, "request %p not queued to %s\n", request, ep->name); in musb_gadget_dequeue()
1326 struct dma_controller *c = musb->dma_controller; in musb_gadget_dequeue()
1328 musb_ep_select(musb->mregs, musb_ep->current_epnum); in musb_gadget_dequeue()
1343 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_dequeue()
1357 struct musb *musb = musb_ep->musb; in musb_gadget_set_halt() local
1358 void __iomem *epio = musb->endpoints[epnum].regs; in musb_gadget_set_halt()
1367 mbase = musb->mregs; in musb_gadget_set_halt()
1369 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_set_halt()
1381 dev_dbg(musb->controller, "request in progress, cannot halt %s\n", in musb_gadget_set_halt()
1390 dev_dbg(musb->controller, "FIFO busy, cannot halt %s\n", ep->name); in musb_gadget_set_halt()
1399 dev_dbg(musb->controller, "%s: %s stall\n", ep->name, value ? "set" : "clear"); in musb_gadget_set_halt()
1426 dev_dbg(musb->controller, "restarting the request\n"); in musb_gadget_set_halt()
1427 musb_ep_restart(musb, request); in musb_gadget_set_halt()
1431 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_set_halt()
1457 struct musb *musb = musb_ep->musb; in musb_gadget_fifo_status() local
1459 void __iomem *mbase = musb->mregs; in musb_gadget_fifo_status()
1462 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_fifo_status()
1468 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_fifo_status()
1476 struct musb *musb = musb_ep->musb; in musb_gadget_fifo_flush() local
1478 void __iomem *epio = musb->endpoints[epnum].regs; in musb_gadget_fifo_flush()
1483 mbase = musb->mregs; in musb_gadget_fifo_flush()
1485 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_fifo_flush()
1489 musb_writew(mbase, MUSB_INTRTXE, musb->intrtxe & ~(1 << epnum)); in musb_gadget_fifo_flush()
1513 musb_writew(mbase, MUSB_INTRTXE, musb->intrtxe); in musb_gadget_fifo_flush()
1514 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_fifo_flush()
1534 struct musb *musb = gadget_to_musb(gadget); in musb_gadget_get_frame() local
1536 return (int)musb_readw(musb->mregs, MUSB_FRAME); in musb_gadget_get_frame()
1541 struct musb *musb = gadget_to_musb(gadget); in musb_gadget_wakeup() local
1542 void __iomem *mregs = musb->mregs; in musb_gadget_wakeup()
1548 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_wakeup()
1550 switch (musb->xceiv->otg->state) { in musb_gadget_wakeup()
1556 if (musb->may_wakeup && musb->is_suspended) in musb_gadget_wakeup()
1562 dev_dbg(musb->controller, "Sending SRP: devctl: %02x\n", devctl); in musb_gadget_wakeup()
1579 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_wakeup()
1580 otg_start_srp(musb->xceiv->otg); in musb_gadget_wakeup()
1581 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_wakeup()
1584 musb_platform_try_idle(musb, in musb_gadget_wakeup()
1590 dev_dbg(musb->controller, "Unhandled wake: %s\n", in musb_gadget_wakeup()
1591 usb_otg_state_string(musb->xceiv->otg->state)); in musb_gadget_wakeup()
1600 dev_dbg(musb->controller, "issue wakeup\n"); in musb_gadget_wakeup()
1609 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_wakeup()
1620 static void musb_pullup(struct musb *musb, int is_on) in musb_pullup() argument
1624 power = musb_readb(musb->mregs, MUSB_POWER); in musb_pullup()
1632 dev_dbg(musb->controller, "gadget D+ pullup %s\n", in musb_pullup()
1634 musb_writeb(musb->mregs, MUSB_POWER, power); in musb_pullup()
1640 dev_dbg(musb->controller, "<= %s =>\n", __func__);
1653 struct musb *musb = gadget_to_musb(gadget); in musb_gadget_vbus_draw() local
1655 if (!musb->xceiv->set_power) in musb_gadget_vbus_draw()
1657 return usb_phy_set_power(musb->xceiv, mA); in musb_gadget_vbus_draw()
1662 struct musb *musb = gadget_to_musb(gadget); in musb_gadget_pullup() local
1667 pm_runtime_get_sync(musb->controller); in musb_gadget_pullup()
1672 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_pullup()
1673 if (is_on != musb->softconnect) { in musb_gadget_pullup()
1674 musb->softconnect = is_on; in musb_gadget_pullup()
1675 musb_pullup(musb, is_on); in musb_gadget_pullup()
1677 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_pullup()
1679 pm_runtime_put(musb->controller); in musb_gadget_pullup()
1744 init_peripheral_ep(struct musb *musb, struct musb_ep *ep, u8 epnum, int is_in) in init_peripheral_ep() argument
1746 struct musb_hw_ep *hw_ep = musb->endpoints + epnum; in init_peripheral_ep()
1751 ep->musb = musb; in init_peripheral_ep()
1766 musb->g.ep0 = &ep->end_point; in init_peripheral_ep()
1776 list_add_tail(&ep->end_point.ep_list, &musb->g.ep_list); in init_peripheral_ep()
1792 static inline void musb_g_init_endpoints(struct musb *musb) in musb_g_init_endpoints() argument
1799 INIT_LIST_HEAD(&(musb->g.ep_list)); in musb_g_init_endpoints()
1801 for (epnum = 0, hw_ep = musb->endpoints; in musb_g_init_endpoints()
1802 epnum < musb->nr_endpoints; in musb_g_init_endpoints()
1805 init_peripheral_ep(musb, &hw_ep->ep_in, epnum, 0); in musb_g_init_endpoints()
1809 init_peripheral_ep(musb, &hw_ep->ep_in, in musb_g_init_endpoints()
1814 init_peripheral_ep(musb, &hw_ep->ep_out, in musb_g_init_endpoints()
1825 int musb_gadget_setup(struct musb *musb) in musb_gadget_setup() argument
1834 musb->g.ops = &musb_gadget_operations; in musb_gadget_setup()
1835 musb->g.max_speed = USB_SPEED_HIGH; in musb_gadget_setup()
1836 musb->g.speed = USB_SPEED_UNKNOWN; in musb_gadget_setup()
1838 MUSB_DEV_MODE(musb); in musb_gadget_setup()
1839 musb->xceiv->otg->default_a = 0; in musb_gadget_setup()
1840 musb->xceiv->otg->state = OTG_STATE_B_IDLE; in musb_gadget_setup()
1843 musb->g.name = musb_driver_name; in musb_gadget_setup()
1845 musb->g.is_otg = 1; in musb_gadget_setup()
1847 musb->g.is_otg = 0; in musb_gadget_setup()
1850 musb_g_init_endpoints(musb); in musb_gadget_setup()
1852 musb->is_active = 0; in musb_gadget_setup()
1853 musb_platform_try_idle(musb, 0); in musb_gadget_setup()
1855 status = usb_add_gadget_udc(musb->controller, &musb->g); in musb_gadget_setup()
1861 musb->g.dev.parent = NULL; in musb_gadget_setup()
1862 device_unregister(&musb->g.dev); in musb_gadget_setup()
1866 void musb_gadget_cleanup(struct musb *musb) in musb_gadget_cleanup() argument
1868 if (musb->port_mode == MUSB_PORT_MODE_HOST) in musb_gadget_cleanup()
1870 usb_del_gadget_udc(&musb->g); in musb_gadget_cleanup()
1887 struct musb *musb = gadget_to_musb(g); in musb_gadget_start() local
1888 struct usb_otg *otg = musb->xceiv->otg; in musb_gadget_start()
1897 pm_runtime_get_sync(musb->controller); in musb_gadget_start()
1899 musb->softconnect = 0; in musb_gadget_start()
1900 musb->gadget_driver = driver; in musb_gadget_start()
1902 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_start()
1903 musb->is_active = 1; in musb_gadget_start()
1905 otg_set_peripheral(otg, &musb->g); in musb_gadget_start()
1906 musb->xceiv->otg->state = OTG_STATE_B_IDLE; in musb_gadget_start()
1907 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_start()
1909 musb_start(musb); in musb_gadget_start()
1915 if (musb->xceiv->last_event == USB_EVENT_ID) in musb_gadget_start()
1916 musb_platform_set_vbus(musb, 1); in musb_gadget_start()
1918 if (musb->xceiv->last_event == USB_EVENT_NONE) in musb_gadget_start()
1919 pm_runtime_put(musb->controller); in musb_gadget_start()
1935 struct musb *musb = gadget_to_musb(g); in musb_gadget_stop() local
1938 if (musb->xceiv->last_event == USB_EVENT_NONE) in musb_gadget_stop()
1939 pm_runtime_get_sync(musb->controller); in musb_gadget_stop()
1946 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_stop()
1948 musb_hnp_stop(musb); in musb_gadget_stop()
1950 (void) musb_gadget_vbus_draw(&musb->g, 0); in musb_gadget_stop()
1952 musb->xceiv->otg->state = OTG_STATE_UNDEFINED; in musb_gadget_stop()
1953 musb_stop(musb); in musb_gadget_stop()
1954 otg_set_peripheral(musb->xceiv->otg, NULL); in musb_gadget_stop()
1956 musb->is_active = 0; in musb_gadget_stop()
1957 musb->gadget_driver = NULL; in musb_gadget_stop()
1958 musb_platform_try_idle(musb, 0); in musb_gadget_stop()
1959 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_stop()
1967 pm_runtime_put(musb->controller); in musb_gadget_stop()
1976 void musb_g_resume(struct musb *musb) in musb_g_resume() argument
1978 musb->is_suspended = 0; in musb_g_resume()
1979 switch (musb->xceiv->otg->state) { in musb_g_resume()
1984 musb->is_active = 1; in musb_g_resume()
1985 if (musb->gadget_driver && musb->gadget_driver->resume) { in musb_g_resume()
1986 spin_unlock(&musb->lock); in musb_g_resume()
1987 musb->gadget_driver->resume(&musb->g); in musb_g_resume()
1988 spin_lock(&musb->lock); in musb_g_resume()
1993 usb_otg_state_string(musb->xceiv->otg->state)); in musb_g_resume()
1998 void musb_g_suspend(struct musb *musb) in musb_g_suspend() argument
2002 devctl = musb_readb(musb->mregs, MUSB_DEVCTL); in musb_g_suspend()
2003 dev_dbg(musb->controller, "devctl %02x\n", devctl); in musb_g_suspend()
2005 switch (musb->xceiv->otg->state) { in musb_g_suspend()
2008 musb->xceiv->otg->state = OTG_STATE_B_PERIPHERAL; in musb_g_suspend()
2011 musb->is_suspended = 1; in musb_g_suspend()
2012 if (musb->gadget_driver && musb->gadget_driver->suspend) { in musb_g_suspend()
2013 spin_unlock(&musb->lock); in musb_g_suspend()
2014 musb->gadget_driver->suspend(&musb->g); in musb_g_suspend()
2015 spin_lock(&musb->lock); in musb_g_suspend()
2023 usb_otg_state_string(musb->xceiv->otg->state)); in musb_g_suspend()
2028 void musb_g_wakeup(struct musb *musb) in musb_g_wakeup() argument
2030 musb_gadget_wakeup(&musb->g); in musb_g_wakeup()
2034 void musb_g_disconnect(struct musb *musb) in musb_g_disconnect() argument
2036 void __iomem *mregs = musb->mregs; in musb_g_disconnect()
2039 dev_dbg(musb->controller, "devctl %02x\n", devctl); in musb_g_disconnect()
2045 (void) musb_gadget_vbus_draw(&musb->g, 0); in musb_g_disconnect()
2047 musb->g.speed = USB_SPEED_UNKNOWN; in musb_g_disconnect()
2048 if (musb->gadget_driver && musb->gadget_driver->disconnect) { in musb_g_disconnect()
2049 spin_unlock(&musb->lock); in musb_g_disconnect()
2050 musb->gadget_driver->disconnect(&musb->g); in musb_g_disconnect()
2051 spin_lock(&musb->lock); in musb_g_disconnect()
2054 switch (musb->xceiv->otg->state) { in musb_g_disconnect()
2056 dev_dbg(musb->controller, "Unhandled disconnect %s, setting a_idle\n", in musb_g_disconnect()
2057 usb_otg_state_string(musb->xceiv->otg->state)); in musb_g_disconnect()
2058 musb->xceiv->otg->state = OTG_STATE_A_IDLE; in musb_g_disconnect()
2059 MUSB_HST_MODE(musb); in musb_g_disconnect()
2062 musb->xceiv->otg->state = OTG_STATE_A_WAIT_BCON; in musb_g_disconnect()
2063 MUSB_HST_MODE(musb); in musb_g_disconnect()
2069 musb->xceiv->otg->state = OTG_STATE_B_IDLE; in musb_g_disconnect()
2075 musb->is_active = 0; in musb_g_disconnect()
2078 void musb_g_reset(struct musb *musb) in musb_g_reset() argument
2079 __releases(musb->lock) in musb_g_reset()
2080 __acquires(musb->lock) in musb_g_reset()
2082 void __iomem *mbase = musb->mregs; in musb_g_reset()
2086 dev_dbg(musb->controller, "<== %s driver '%s'\n", in musb_g_reset()
2089 musb->gadget_driver in musb_g_reset()
2090 ? musb->gadget_driver->driver.name in musb_g_reset()
2095 if (musb->gadget_driver && musb->g.speed != USB_SPEED_UNKNOWN) { in musb_g_reset()
2096 spin_unlock(&musb->lock); in musb_g_reset()
2097 usb_gadget_udc_reset(&musb->g, musb->gadget_driver); in musb_g_reset()
2098 spin_lock(&musb->lock); in musb_g_reset()
2108 musb->g.speed = (power & MUSB_POWER_HSMODE) in musb_g_reset()
2112 musb->is_active = 1; in musb_g_reset()
2113 musb->is_suspended = 0; in musb_g_reset()
2114 MUSB_DEV_MODE(musb); in musb_g_reset()
2115 musb->address = 0; in musb_g_reset()
2116 musb->ep0_state = MUSB_EP0_STAGE_SETUP; in musb_g_reset()
2118 musb->may_wakeup = 0; in musb_g_reset()
2119 musb->g.b_hnp_enable = 0; in musb_g_reset()
2120 musb->g.a_alt_hnp_support = 0; in musb_g_reset()
2121 musb->g.a_hnp_support = 0; in musb_g_reset()
2122 musb->g.quirk_zlp_not_supp = 1; in musb_g_reset()
2127 if (!musb->g.is_otg) { in musb_g_reset()
2133 musb->xceiv->otg->state = OTG_STATE_B_PERIPHERAL; in musb_g_reset()
2134 musb->g.is_a_peripheral = 0; in musb_g_reset()
2136 musb->xceiv->otg->state = OTG_STATE_B_PERIPHERAL; in musb_g_reset()
2137 musb->g.is_a_peripheral = 0; in musb_g_reset()
2139 musb->xceiv->otg->state = OTG_STATE_A_PERIPHERAL; in musb_g_reset()
2140 musb->g.is_a_peripheral = 1; in musb_g_reset()
2144 (void) musb_gadget_vbus_draw(&musb->g, 8); in musb_g_reset()