• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/usb/musb/

Lines Matching defs:musb

48 static void musb_port_suspend(struct musb *musb, bool do_suspend)
51 void __iomem *mbase = musb->mregs;
53 if (!is_host_active(musb))
79 musb->port1_status |= USB_PORT_STAT_SUSPEND;
80 switch (musb->xceiv->state) {
82 musb->xceiv->state = OTG_STATE_A_SUSPEND;
83 musb->is_active = is_otg_enabled(musb)
84 && musb->xceiv->host->b_hnp_enable;
85 if (musb->is_active)
86 mod_timer(&musb->otg_timer, jiffies
89 musb_platform_try_idle(musb, 0);
93 musb->xceiv->state = OTG_STATE_B_WAIT_ACON;
94 musb->is_active = is_otg_enabled(musb)
95 && musb->xceiv->host->b_hnp_enable;
96 musb_platform_try_idle(musb, 0);
101 otg_state_string(musb));
111 musb->port1_status |= MUSB_PORT_STAT_RESUME;
112 musb->rh_timer = jiffies + msecs_to_jiffies(20);
116 static void musb_port_reset(struct musb *musb, bool do_reset)
119 void __iomem *mbase = musb->mregs;
122 if (musb->xceiv->state == OTG_STATE_B_IDLE) {
124 musb->port1_status &= ~USB_PORT_STAT_RESET;
129 if (!is_host_active(musb))
140 * Then we must clear RESUME and wait a bit to let musb start
146 while (time_before(jiffies, musb->rh_timer))
153 musb->ignore_disconnect = true;
158 musb->port1_status |= USB_PORT_STAT_RESET;
159 musb->port1_status &= ~USB_PORT_STAT_ENABLE;
160 musb->rh_timer = jiffies + msecs_to_jiffies(50);
166 musb->ignore_disconnect = false;
171 musb->port1_status |= USB_PORT_STAT_HIGH_SPEED;
174 musb->port1_status &= ~USB_PORT_STAT_RESET;
175 musb->port1_status |= USB_PORT_STAT_ENABLE
178 usb_hcd_poll_rh_status(musb_to_hcd(musb));
180 musb->vbuserr_retry = VBUSERR_RETRY_COUNT;
184 void musb_root_disconnect(struct musb *musb)
186 musb->port1_status = USB_PORT_STAT_POWER
189 usb_hcd_poll_rh_status(musb_to_hcd(musb));
190 musb->is_active = 0;
192 switch (musb->xceiv->state) {
195 if (is_otg_enabled(musb)
196 && musb->xceiv->host->b_hnp_enable) {
197 musb->xceiv->state = OTG_STATE_A_PERIPHERAL;
198 musb->g.is_a_peripheral = 1;
204 musb->xceiv->state = OTG_STATE_A_WAIT_BCON;
205 musb->is_active = 0;
208 musb->xceiv->state = OTG_STATE_B_IDLE;
211 DBG(1, "host disconnect (%s)\n", otg_state_string(musb));
218 /* Caller may or may not hold musb->lock */
221 struct musb *musb = hcd_to_musb(hcd);
225 if (musb->port1_status & 0xffff0000) {
240 struct musb *musb = hcd_to_musb(hcd);
245 spin_lock_irqsave(&musb->lock, flags);
248 spin_unlock_irqrestore(&musb->lock, flags);
275 musb_port_suspend(musb, false);
278 if (!(is_otg_enabled(musb) && hcd->self.is_b_host))
279 musb_set_vbus(musb, 0);
291 musb->port1_status &= ~(1 << wValue);
320 if ((musb->port1_status & USB_PORT_STAT_RESET)
321 && time_after_eq(jiffies, musb->rh_timer))
322 musb_port_reset(musb, false);
325 if ((musb->port1_status & MUSB_PORT_STAT_RESUME)
326 && time_after_eq(jiffies, musb->rh_timer)) {
329 power = musb_readb(musb->mregs, MUSB_POWER);
333 musb_writeb(musb->mregs, MUSB_POWER, power);
340 musb->is_active = 1;
341 musb->port1_status &= ~(USB_PORT_STAT_SUSPEND
343 musb->port1_status |= USB_PORT_STAT_C_SUSPEND << 16;
344 usb_hcd_poll_rh_status(musb_to_hcd(musb));
346 musb->xceiv->state = OTG_STATE_A_HOST;
349 put_unaligned(cpu_to_le32(musb->port1_status
355 musb->port1_status);
373 if (!(is_otg_enabled(musb) && hcd->self.is_b_host))
374 musb_start(musb);
377 musb_port_reset(musb, true);
380 musb_port_suspend(musb, true);
383 if (unlikely(is_host_active(musb)))
403 musb_load_testpacket(musb);
410 musb_writeb(musb->mregs, MUSB_DEVCTL,
420 musb_writeb(musb->mregs, MUSB_TESTMODE, temp);
426 musb->port1_status |= 1 << wValue;
434 spin_unlock_irqrestore(&musb->lock, flags);