Lines Matching refs:musb

82 			struct musb *musb, struct musb_ep *musb_ep)  in map_dma_buffer()  argument
85 struct dma_controller *dma = musb->dma_controller; in map_dma_buffer()
105 musb->controller, in map_dma_buffer()
113 dma_sync_single_for_device(musb->controller, in map_dma_buffer()
125 struct musb *musb) in unmap_dma_buffer() argument
131 dev_vdbg(musb->controller, in unmap_dma_buffer()
136 dma_unmap_single(musb->controller, in unmap_dma_buffer()
144 dma_sync_single_for_cpu(musb->controller, in unmap_dma_buffer()
155 struct musb *musb, struct musb_ep *musb_ep) in map_dma_buffer() argument
160 struct musb *musb) in unmap_dma_buffer() argument
176 __releases(ep->musb->lock) in musb_g_giveback()
177 __acquires(ep->musb->lock) in musb_g_giveback()
180 struct musb *musb; in musb_g_giveback() local
188 musb = req->musb; in musb_g_giveback()
191 spin_unlock(&musb->lock); in musb_g_giveback()
192 unmap_dma_buffer(req, musb); in musb_g_giveback()
194 dev_dbg(musb->controller, "%s done request %p, %d/%d\n", in musb_g_giveback()
198 dev_dbg(musb->controller, "%s request %p, %d/%d fault %d\n", in musb_g_giveback()
203 spin_lock(&musb->lock); in musb_g_giveback()
215 struct musb *musb = ep->musb; in nuke() local
217 void __iomem *epio = ep->musb->endpoints[ep->current_epnum].regs; in nuke()
222 struct dma_controller *c = ep->musb->dma_controller; in nuke()
243 dev_dbg(musb->controller, "%s: abort DMA --> %d\n", in nuke()
264 static inline int max_ep_writesize(struct musb *musb, struct musb_ep *ep) in max_ep_writesize() argument
266 if (can_bulk_split(musb, ep->type)) in max_ep_writesize()
314 static void txstate(struct musb *musb, struct musb_request *req) in txstate() argument
318 void __iomem *epio = musb->endpoints[epnum].regs; in txstate()
327 dev_dbg(musb->controller, "ep:%s disabled - ignore request\n", in txstate()
334 dev_dbg(musb->controller, "dma pending...\n"); in txstate()
342 fifo_count = min(max_ep_writesize(musb, musb_ep), in txstate()
346 dev_dbg(musb->controller, "%s old packet still ready , txcsr %03x\n", in txstate()
352 dev_dbg(musb->controller, "%s stalling, txcsr %03x\n", in txstate()
357 dev_dbg(musb->controller, "hw_ep%d, maxpacket %d, fifo count %d, txcsr %03x\n", in txstate()
363 struct dma_controller *c = musb->dma_controller; in txstate()
463 unmap_dma_buffer(req, musb); in txstate()
474 dev_dbg(musb->controller, "%s TX/IN %s len %d/%d, txcsr %04x, fifo %d/%d\n", in txstate()
486 void musb_g_tx(struct musb *musb, u8 epnum) in musb_g_tx() argument
491 u8 __iomem *mbase = musb->mregs; in musb_g_tx()
492 struct musb_ep *musb_ep = &musb->endpoints[epnum].ep_in; in musb_g_tx()
493 void __iomem *epio = musb->endpoints[epnum].regs; in musb_g_tx()
501 dev_dbg(musb->controller, "<== %s, txcsr %04x\n", musb_ep->end_point.name, csr); in musb_g_tx()
521 dev_vdbg(musb->controller, "underrun on ep%d, req %p\n", in musb_g_tx()
530 dev_dbg(musb->controller, "%s dma still busy?\n", musb_ep->end_point.name); in musb_g_tx()
546 dev_dbg(musb->controller, "TXCSR%d %04x, DMA off, len %zu, req %p\n", in musb_g_tx()
570 dev_dbg(musb->controller, "sending zero pkt\n"); in musb_g_tx()
589 dev_dbg(musb->controller, "%s idle now\n", in musb_g_tx()
595 txstate(musb, req); in musb_g_tx()
635 static void rxstate(struct musb *musb, struct musb_request *req) in rxstate() argument
640 void __iomem *epio = musb->endpoints[epnum].regs; in rxstate()
644 struct musb_hw_ep *hw_ep = &musb->endpoints[epnum]; in rxstate()
656 dev_dbg(musb->controller, "ep:%s disabled - ignore request\n", in rxstate()
663 dev_dbg(musb->controller, "DMA pending...\n"); in rxstate()
668 dev_dbg(musb->controller, "%s stalling, RXCSR %04x\n", in rxstate()
674 struct dma_controller *c = musb->dma_controller; in rxstate()
721 c = musb->dma_controller; in rxstate()
801 c = musb->dma_controller; in rxstate()
843 dev_dbg(musb->controller, "%s OUT/RX pio fifo %d/%d, maxpacket %d\n", in rxstate()
852 struct dma_controller *c = musb->dma_controller; in rxstate()
872 unmap_dma_buffer(req, musb); in rxstate()
905 void musb_g_rx(struct musb *musb, u8 epnum) in musb_g_rx() argument
910 void __iomem *mbase = musb->mregs; in musb_g_rx()
912 void __iomem *epio = musb->endpoints[epnum].regs; in musb_g_rx()
914 struct musb_hw_ep *hw_ep = &musb->endpoints[epnum]; in musb_g_rx()
932 dev_dbg(musb->controller, "<== %s, rxcsr %04x%s %p\n", musb_ep->end_point.name, in musb_g_rx()
947 dev_dbg(musb->controller, "%s iso overrun on %p\n", musb_ep->name, request); in musb_g_rx()
953 dev_dbg(musb->controller, "%s, incomprx\n", musb_ep->end_point.name); in musb_g_rx()
958 dev_dbg(musb->controller, "%s busy, csr %04x\n", in musb_g_rx()
972 dev_dbg(musb->controller, "RXCSR%d %04x, dma off, %04x, len %zu, req %p\n", in musb_g_rx()
1022 rxstate(musb, req); in musb_g_rx()
1034 struct musb *musb; in musb_gadget_enable() local
1047 musb = musb_ep->musb; in musb_gadget_enable()
1048 mbase = musb->mregs; in musb_gadget_enable()
1051 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_enable()
1069 ok = musb->hb_iso_tx; in musb_gadget_enable()
1071 ok = musb->hb_iso_rx; in musb_gadget_enable()
1074 dev_dbg(musb->controller, "no support for high bandwidth ISO\n"); in musb_gadget_enable()
1098 dev_dbg(musb->controller, "packet size beyond hardware FIFO size\n"); in musb_gadget_enable()
1111 if (musb->double_buffer_not_ok) in musb_gadget_enable()
1138 dev_dbg(musb->controller, "packet size beyond hardware FIFO size\n"); in musb_gadget_enable()
1151 if (musb->double_buffer_not_ok) in musb_gadget_enable()
1178 if (is_dma_capable() && musb->dma_controller) { in musb_gadget_enable()
1179 struct dma_controller *c = musb->dma_controller; in musb_gadget_enable()
1202 schedule_work(&musb->irq_work); in musb_gadget_enable()
1205 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_enable()
1215 struct musb *musb; in musb_gadget_disable() local
1222 musb = musb_ep->musb; in musb_gadget_disable()
1224 epio = musb->endpoints[epnum].regs; in musb_gadget_disable()
1226 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_disable()
1227 musb_ep_select(musb->mregs, epnum); in musb_gadget_disable()
1231 u16 int_txe = musb_readw(musb->mregs, MUSB_INTRTXE); in musb_gadget_disable()
1233 musb_writew(musb->mregs, MUSB_INTRTXE, int_txe); in musb_gadget_disable()
1236 u16 int_rxe = musb_readw(musb->mregs, MUSB_INTRRXE); in musb_gadget_disable()
1238 musb_writew(musb->mregs, MUSB_INTRRXE, int_rxe); in musb_gadget_disable()
1250 schedule_work(&musb->irq_work); in musb_gadget_disable()
1252 spin_unlock_irqrestore(&(musb->lock), flags); in musb_gadget_disable()
1254 dev_dbg(musb->controller, "%s\n", musb_ep->end_point.name); in musb_gadget_disable()
1266 struct musb *musb = musb_ep->musb; in musb_alloc_request() local
1271 dev_dbg(musb->controller, "not enough memory\n"); in musb_alloc_request()
1303 void musb_ep_restart(struct musb *musb, struct musb_request *req) in musb_ep_restart() argument
1305 dev_dbg(musb->controller, "<== %s request %p len %u on hw_ep%d\n", in musb_ep_restart()
1309 musb_ep_select(musb->mregs, req->epnum); in musb_ep_restart()
1311 txstate(musb, req); in musb_ep_restart()
1313 rxstate(musb, req); in musb_ep_restart()
1321 struct musb *musb; in musb_gadget_queue() local
1331 musb = musb_ep->musb; in musb_gadget_queue()
1334 request->musb = musb; in musb_gadget_queue()
1339 dev_dbg(musb->controller, "<== to %s request=%p\n", ep->name, req); in musb_gadget_queue()
1347 map_dma_buffer(request, musb, musb_ep); in musb_gadget_queue()
1349 spin_lock_irqsave(&musb->lock, lockflags); in musb_gadget_queue()
1353 dev_dbg(musb->controller, "req %p queued to %s while ep %s\n", in musb_gadget_queue()
1364 musb_ep_restart(musb, request); in musb_gadget_queue()
1367 spin_unlock_irqrestore(&musb->lock, lockflags); in musb_gadget_queue()
1378 struct musb *musb = musb_ep->musb; in musb_gadget_dequeue() local
1383 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_dequeue()
1390 dev_dbg(musb->controller, "request %p not queued to %s\n", request, ep->name); in musb_gadget_dequeue()
1401 struct dma_controller *c = musb->dma_controller; in musb_gadget_dequeue()
1403 musb_ep_select(musb->mregs, musb_ep->current_epnum); in musb_gadget_dequeue()
1418 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_dequeue()
1432 struct musb *musb = musb_ep->musb; in musb_gadget_set_halt() local
1433 void __iomem *epio = musb->endpoints[epnum].regs; in musb_gadget_set_halt()
1442 mbase = musb->mregs; in musb_gadget_set_halt()
1444 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_set_halt()
1456 dev_dbg(musb->controller, "request in progress, cannot halt %s\n", in musb_gadget_set_halt()
1465 dev_dbg(musb->controller, "FIFO busy, cannot halt %s\n", ep->name); in musb_gadget_set_halt()
1474 dev_dbg(musb->controller, "%s: %s stall\n", ep->name, value ? "set" : "clear"); in musb_gadget_set_halt()
1501 dev_dbg(musb->controller, "restarting the request\n"); in musb_gadget_set_halt()
1502 musb_ep_restart(musb, request); in musb_gadget_set_halt()
1506 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_set_halt()
1534 struct musb *musb = musb_ep->musb; in musb_gadget_fifo_status() local
1536 void __iomem *mbase = musb->mregs; in musb_gadget_fifo_status()
1539 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_fifo_status()
1545 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_fifo_status()
1553 struct musb *musb = musb_ep->musb; in musb_gadget_fifo_flush() local
1555 void __iomem *epio = musb->endpoints[epnum].regs; in musb_gadget_fifo_flush()
1560 mbase = musb->mregs; in musb_gadget_fifo_flush()
1562 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_fifo_flush()
1592 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_fifo_flush()
1614 struct musb *musb = gadget_to_musb(gadget); in musb_gadget_get_frame() local
1616 return (int)musb_readw(musb->mregs, MUSB_FRAME); in musb_gadget_get_frame()
1622 struct musb *musb = gadget_to_musb(gadget); in musb_gadget_wakeup() local
1623 void __iomem *mregs = musb->mregs; in musb_gadget_wakeup()
1629 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_wakeup()
1631 switch (musb->xceiv->state) { in musb_gadget_wakeup()
1637 if (musb->may_wakeup && musb->is_suspended) in musb_gadget_wakeup()
1643 dev_dbg(musb->controller, "Sending SRP: devctl: %02x\n", devctl); in musb_gadget_wakeup()
1660 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_wakeup()
1661 otg_start_srp(musb->xceiv->otg); in musb_gadget_wakeup()
1662 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_wakeup()
1665 musb_platform_try_idle(musb, in musb_gadget_wakeup()
1671 dev_dbg(musb->controller, "Unhandled wake: %s\n", in musb_gadget_wakeup()
1672 otg_state_string(musb->xceiv->state)); in musb_gadget_wakeup()
1681 dev_dbg(musb->controller, "issue wakeup\n"); in musb_gadget_wakeup()
1690 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_wakeup()
1700 struct musb *musb = gadget_to_musb(gadget); in musb_gadget_set_self_powered() local
1702 musb->is_self_powered = !!is_selfpowered; in musb_gadget_set_self_powered()
1706 static void musb_pullup(struct musb *musb, int is_on) in musb_pullup() argument
1710 power = musb_readb(musb->mregs, MUSB_POWER); in musb_pullup()
1718 dev_dbg(musb->controller, "gadget D+ pullup %s\n", in musb_pullup()
1720 musb_writeb(musb->mregs, MUSB_POWER, power); in musb_pullup()
1726 dev_dbg(musb->controller, "<= %s =>\n", __func__);
1740 struct musb *musb = gadget_to_musb(gadget); in musb_gadget_vbus_draw() local
1742 if (!musb->xceiv->set_power) in musb_gadget_vbus_draw()
1744 return usb_phy_set_power(musb->xceiv, mA); in musb_gadget_vbus_draw()
1752 struct musb *musb = gadget_to_musb(gadget); in musb_gadget_pullup() local
1757 pm_runtime_get_sync(musb->controller); in musb_gadget_pullup()
1762 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_pullup()
1763 if (is_on != musb->softconnect) { in musb_gadget_pullup()
1764 musb->softconnect = is_on; in musb_gadget_pullup()
1765 musb_pullup(musb, is_on); in musb_gadget_pullup()
1767 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_pullup()
1769 pm_runtime_put(musb->controller); in musb_gadget_pullup()
1813 init_peripheral_ep(struct musb *musb, struct musb_ep *ep, u8 epnum, int is_in) in init_peripheral_ep() argument
1815 struct musb_hw_ep *hw_ep = musb->endpoints + epnum; in init_peripheral_ep()
1820 ep->musb = musb; in init_peripheral_ep()
1834 musb->g.ep0 = &ep->end_point; in init_peripheral_ep()
1841 list_add_tail(&ep->end_point.ep_list, &musb->g.ep_list); in init_peripheral_ep()
1849 static inline void __devinit musb_g_init_endpoints(struct musb *musb) in musb_g_init_endpoints() argument
1856 INIT_LIST_HEAD(&(musb->g.ep_list)); in musb_g_init_endpoints()
1858 for (epnum = 0, hw_ep = musb->endpoints; in musb_g_init_endpoints()
1859 epnum < musb->nr_endpoints; in musb_g_init_endpoints()
1862 init_peripheral_ep(musb, &hw_ep->ep_in, epnum, 0); in musb_g_init_endpoints()
1866 init_peripheral_ep(musb, &hw_ep->ep_in, in musb_g_init_endpoints()
1871 init_peripheral_ep(musb, &hw_ep->ep_out, in musb_g_init_endpoints()
1882 int __devinit musb_gadget_setup(struct musb *musb) in musb_gadget_setup() argument
1891 musb->g.ops = &musb_gadget_operations; in musb_gadget_setup()
1893 musb->g.max_speed = USB_SPEED_HIGH; in musb_gadget_setup()
1895 musb->g.speed = USB_SPEED_UNKNOWN; in musb_gadget_setup()
1899 dev_set_name(&musb->g.dev, "gadget"); in musb_gadget_setup()
1900 musb->g.dev.parent = musb->controller; in musb_gadget_setup()
1901 musb->g.dev.dma_mask = musb->controller->dma_mask; in musb_gadget_setup()
1902 musb->g.dev.release = musb_gadget_release; in musb_gadget_setup()
1904 musb->g.name = musb_driver_name; in musb_gadget_setup()
1907 if (is_otg_enabled(musb)) in musb_gadget_setup()
1908 musb->g.is_otg = 1; in musb_gadget_setup()
1911 musb_g_init_endpoints(musb); in musb_gadget_setup()
1913 musb->is_active = 0; in musb_gadget_setup()
1914 musb_platform_try_idle(musb, 0); in musb_gadget_setup()
1917 status = device_register(&musb->g.dev); in musb_gadget_setup()
1919 put_device(&musb->g.dev); in musb_gadget_setup()
1922 status = usb_add_gadget_udc(musb->controller, &musb->g); in musb_gadget_setup()
1930 musb->g.dev.parent = NULL; in musb_gadget_setup()
1931 device_unregister(&musb->g.dev); in musb_gadget_setup()
1936 void musb_gadget_cleanup(struct musb *musb) in musb_gadget_cleanup() argument
1939 usb_del_gadget_udc(&musb->g); in musb_gadget_cleanup()
1940 if (musb->g.dev.parent) in musb_gadget_cleanup()
1941 device_unregister(&musb->g.dev); in musb_gadget_cleanup()
1964 struct musb *musb = gadget_to_musb(g); in musb_gadget_start() local
1966 struct usb_otg *otg = musb->xceiv->otg; in musb_gadget_start()
1976 pm_runtime_get_sync(musb->controller); in musb_gadget_start()
1979 dev_dbg(musb->controller, "registering driver %s\n", driver->function); in musb_gadget_start()
1982 musb->softconnect = 0; in musb_gadget_start()
1983 musb->gadget_driver = driver; in musb_gadget_start()
1985 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_start()
1986 musb->is_active = 1; in musb_gadget_start()
1989 otg_set_peripheral(otg, &musb->g); in musb_gadget_start()
1990 musb->xceiv->state = OTG_STATE_B_IDLE; in musb_gadget_start()
1999 if (!is_otg_enabled(musb)) in musb_gadget_start()
2001 musb_start(musb); in musb_gadget_start()
2003 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_start()
2006 if (is_otg_enabled(musb)) { in musb_gadget_start()
2007 struct usb_hcd *hcd = musb_to_hcd(musb); in musb_gadget_start()
2009 dev_dbg(musb->controller, "OTG startup...\n"); in musb_gadget_start()
2015 retval = usb_add_hcd(musb_to_hcd(musb), 0, 0); in musb_gadget_start()
2017 dev_dbg(musb->controller, "add_hcd failed, %d\n", retval); in musb_gadget_start()
2021 if ((musb->xceiv->last_event == USB_EVENT_ID) in musb_gadget_start()
2027 if (musb->xceiv->last_event == USB_EVENT_NONE) in musb_gadget_start()
2028 pm_runtime_put(musb->controller); in musb_gadget_start()
2035 if (!is_otg_enabled(musb)) in musb_gadget_start()
2036 musb_stop(musb); in musb_gadget_start()
2043 static void stop_activity(struct musb *musb, struct usb_gadget_driver *driver) in stop_activity() argument
2049 if (musb->g.speed == USB_SPEED_UNKNOWN) in stop_activity()
2052 musb->g.speed = USB_SPEED_UNKNOWN; in stop_activity()
2055 if (musb->softconnect) { in stop_activity()
2056 musb->softconnect = 0; in stop_activity()
2057 musb_pullup(musb, 0); in stop_activity()
2059 musb_stop(musb); in stop_activity()
2065 for (i = 0, hw_ep = musb->endpoints; in stop_activity()
2066 i < musb->nr_endpoints; in stop_activity()
2068 musb_ep_select(musb->mregs, i); in stop_activity()
2090 struct musb *musb = gadget_to_musb(g); in musb_gadget_stop() local
2093 if (musb->xceiv->last_event == USB_EVENT_NONE) in musb_gadget_stop()
2094 pm_runtime_get_sync(musb->controller); in musb_gadget_stop()
2101 spin_lock_irqsave(&musb->lock, flags); in musb_gadget_stop()
2103 musb_hnp_stop(musb); in musb_gadget_stop()
2105 (void) musb_gadget_vbus_draw(&musb->g, 0); in musb_gadget_stop()
2107 musb->xceiv->state = OTG_STATE_UNDEFINED; in musb_gadget_stop()
2108 stop_activity(musb, driver); in musb_gadget_stop()
2109 otg_set_peripheral(musb->xceiv->otg, NULL); in musb_gadget_stop()
2111 dev_dbg(musb->controller, "unregistering driver %s\n", driver->function); in musb_gadget_stop()
2113 musb->is_active = 0; in musb_gadget_stop()
2114 musb_platform_try_idle(musb, 0); in musb_gadget_stop()
2115 spin_unlock_irqrestore(&musb->lock, flags); in musb_gadget_stop()
2117 if (is_otg_enabled(musb)) { in musb_gadget_stop()
2118 usb_remove_hcd(musb_to_hcd(musb)); in musb_gadget_stop()
2125 if (!is_otg_enabled(musb)) in musb_gadget_stop()
2126 musb_stop(musb); in musb_gadget_stop()
2128 pm_runtime_put(musb->controller); in musb_gadget_stop()
2138 void musb_g_resume(struct musb *musb) in musb_g_resume() argument
2141 musb->is_suspended = 0; in musb_g_resume()
2142 switch (musb->xceiv->state) { in musb_g_resume()
2147 musb->is_active = 1; in musb_g_resume()
2148 if (musb->gadget_driver && musb->gadget_driver->resume) { in musb_g_resume()
2149 spin_unlock(&musb->lock); in musb_g_resume()
2150 musb->gadget_driver->resume(&musb->g); in musb_g_resume()
2151 spin_lock(&musb->lock); in musb_g_resume()
2156 otg_state_string(musb->xceiv->state)); in musb_g_resume()
2162 void musb_g_suspend(struct musb *musb) in musb_g_suspend() argument
2167 devctl = musb_readb(musb->mregs, MUSB_DEVCTL); in musb_g_suspend()
2168 dev_dbg(musb->controller, "devctl %02x\n", devctl); in musb_g_suspend()
2170 switch (musb->xceiv->state) { in musb_g_suspend()
2173 musb->xceiv->state = OTG_STATE_B_PERIPHERAL; in musb_g_suspend()
2176 musb->is_suspended = 1; in musb_g_suspend()
2177 if (musb->gadget_driver && musb->gadget_driver->suspend) { in musb_g_suspend()
2178 spin_unlock(&musb->lock); in musb_g_suspend()
2179 musb->gadget_driver->suspend(&musb->g); in musb_g_suspend()
2180 spin_lock(&musb->lock); in musb_g_suspend()
2188 otg_state_string(musb->xceiv->state)); in musb_g_suspend()
2194 void musb_g_wakeup(struct musb *musb) in musb_g_wakeup() argument
2196 musb_gadget_wakeup(&musb->g); in musb_g_wakeup()
2200 void musb_g_disconnect(struct musb *musb) in musb_g_disconnect() argument
2202 void __iomem *mregs = musb->mregs; in musb_g_disconnect()
2205 dev_dbg(musb->controller, "devctl %02x\n", devctl); in musb_g_disconnect()
2211 (void) musb_gadget_vbus_draw(&musb->g, 0); in musb_g_disconnect()
2213 musb->g.speed = USB_SPEED_UNKNOWN; in musb_g_disconnect()
2214 if (musb->gadget_driver && musb->gadget_driver->disconnect) { in musb_g_disconnect()
2215 spin_unlock(&musb->lock); in musb_g_disconnect()
2216 musb->gadget_driver->disconnect(&musb->g); in musb_g_disconnect()
2217 spin_lock(&musb->lock); in musb_g_disconnect()
2221 switch (musb->xceiv->state) { in musb_g_disconnect()
2223 dev_dbg(musb->controller, "Unhandled disconnect %s, setting a_idle\n", in musb_g_disconnect()
2224 otg_state_string(musb->xceiv->state)); in musb_g_disconnect()
2225 musb->xceiv->state = OTG_STATE_A_IDLE; in musb_g_disconnect()
2226 MUSB_HST_MODE(musb); in musb_g_disconnect()
2229 musb->xceiv->state = OTG_STATE_A_WAIT_BCON; in musb_g_disconnect()
2230 MUSB_HST_MODE(musb); in musb_g_disconnect()
2236 musb->xceiv->state = OTG_STATE_B_IDLE; in musb_g_disconnect()
2243 musb->is_active = 0; in musb_g_disconnect()
2246 void musb_g_reset(struct musb *musb) in musb_g_reset() argument
2247 __releases(musb->lock) in musb_g_reset()
2248 __acquires(musb->lock) in musb_g_reset()
2250 void __iomem *mbase = musb->mregs; in musb_g_reset()
2255 dev_dbg(musb->controller, "<== %s addr=%x driver '%s'\n", in musb_g_reset()
2259 musb->gadget_driver in musb_g_reset()
2260 ? musb->gadget_driver->driver.name in musb_g_reset()
2266 if (musb->g.speed != USB_SPEED_UNKNOWN) in musb_g_reset()
2267 musb_g_disconnect(musb); in musb_g_reset()
2276 musb->g.speed = (power & MUSB_POWER_HSMODE) in musb_g_reset()
2280 musb->is_active = 1; in musb_g_reset()
2281 musb->is_suspended = 0; in musb_g_reset()
2282 MUSB_DEV_MODE(musb); in musb_g_reset()
2283 musb->address = 0; in musb_g_reset()
2284 musb->ep0_state = MUSB_EP0_STAGE_SETUP; in musb_g_reset()
2286 musb->may_wakeup = 0; in musb_g_reset()
2287 musb->g.b_hnp_enable = 0; in musb_g_reset()
2288 musb->g.a_alt_hnp_support = 0; in musb_g_reset()
2289 musb->g.a_hnp_support = 0; in musb_g_reset()
2296 musb->xceiv->state = OTG_STATE_B_PERIPHERAL; in musb_g_reset()
2297 musb->g.is_a_peripheral = 0; in musb_g_reset()
2298 } else if (is_otg_enabled(musb)) { in musb_g_reset()
2299 musb->xceiv->state = OTG_STATE_A_PERIPHERAL; in musb_g_reset()
2300 musb->g.is_a_peripheral = 1; in musb_g_reset()
2305 (void) musb_gadget_vbus_draw(&musb->g, in musb_g_reset()
2306 is_otg_enabled(musb) ? 8 : 100); in musb_g_reset()