Lines Matching refs:dum_hcd

369 static void set_link_state_by_speed(struct dummy_hcd *dum_hcd)  in set_link_state_by_speed()  argument
371 struct dummy *dum = dum_hcd->dum; in set_link_state_by_speed()
373 if (dummy_hcd_to_hcd(dum_hcd)->speed == HCD_USB3) { in set_link_state_by_speed()
374 if ((dum_hcd->port_status & USB_SS_PORT_STAT_POWER) == 0) { in set_link_state_by_speed()
375 dum_hcd->port_status = 0; in set_link_state_by_speed()
378 dum_hcd->port_status &= ~(USB_PORT_STAT_CONNECTION | in set_link_state_by_speed()
380 if ((dum_hcd->old_status & in set_link_state_by_speed()
382 dum_hcd->port_status |= in set_link_state_by_speed()
386 dum_hcd->port_status |= (USB_PORT_STAT_CONNECTION | in set_link_state_by_speed()
388 if ((dum_hcd->old_status & in set_link_state_by_speed()
390 dum_hcd->port_status |= in set_link_state_by_speed()
392 if ((dum_hcd->port_status & USB_PORT_STAT_ENABLE) && in set_link_state_by_speed()
393 (dum_hcd->port_status & in set_link_state_by_speed()
395 dum_hcd->rh_state != DUMMY_RH_SUSPENDED) in set_link_state_by_speed()
396 dum_hcd->active = 1; in set_link_state_by_speed()
399 if ((dum_hcd->port_status & USB_PORT_STAT_POWER) == 0) { in set_link_state_by_speed()
400 dum_hcd->port_status = 0; in set_link_state_by_speed()
403 dum_hcd->port_status &= ~(USB_PORT_STAT_CONNECTION | in set_link_state_by_speed()
408 if ((dum_hcd->old_status & in set_link_state_by_speed()
410 dum_hcd->port_status |= in set_link_state_by_speed()
413 dum_hcd->port_status |= USB_PORT_STAT_CONNECTION; in set_link_state_by_speed()
414 if ((dum_hcd->old_status & in set_link_state_by_speed()
416 dum_hcd->port_status |= in set_link_state_by_speed()
418 if ((dum_hcd->port_status & USB_PORT_STAT_ENABLE) == 0) in set_link_state_by_speed()
419 dum_hcd->port_status &= ~USB_PORT_STAT_SUSPEND; in set_link_state_by_speed()
420 else if ((dum_hcd->port_status & in set_link_state_by_speed()
422 dum_hcd->rh_state != DUMMY_RH_SUSPENDED) in set_link_state_by_speed()
423 dum_hcd->active = 1; in set_link_state_by_speed()
429 static void set_link_state(struct dummy_hcd *dum_hcd) in set_link_state() argument
431 struct dummy *dum = dum_hcd->dum; in set_link_state()
434 dum_hcd->active = 0; in set_link_state()
436 if ((dummy_hcd_to_hcd(dum_hcd)->speed == HCD_USB3 && in set_link_state()
438 (dummy_hcd_to_hcd(dum_hcd)->speed != HCD_USB3 && in set_link_state()
442 set_link_state_by_speed(dum_hcd); in set_link_state()
443 power_bit = (dummy_hcd_to_hcd(dum_hcd)->speed == HCD_USB3 ? in set_link_state()
446 if ((dum_hcd->port_status & USB_PORT_STAT_ENABLE) == 0 || in set_link_state()
447 dum_hcd->active) in set_link_state()
448 dum_hcd->resuming = 0; in set_link_state()
451 if ((dum_hcd->port_status & power_bit) == 0 || in set_link_state()
452 (dum_hcd->port_status & USB_PORT_STAT_RESET) != 0) { in set_link_state()
454 dum_hcd->old_status & (~dum_hcd->port_status); in set_link_state()
456 (~dum_hcd->old_status) & dum_hcd->port_status; in set_link_state()
470 } else if (dum_hcd->active != dum_hcd->old_active && in set_link_state()
474 if (dum_hcd->old_active && dum->driver->suspend) in set_link_state()
476 else if (!dum_hcd->old_active && dum->driver->resume) in set_link_state()
482 dum_hcd->old_status = dum_hcd->port_status; in set_link_state()
483 dum_hcd->old_active = dum_hcd->active; in set_link_state()
502 struct dummy_hcd *dum_hcd; in dummy_enable() local
515 dum_hcd = gadget_to_dummy_hcd(&dum->gadget); in dummy_enable()
516 if (!is_enabled(dum_hcd)) in dummy_enable()
693 struct dummy_hcd *dum_hcd; in dummy_queue() local
705 dum_hcd = gadget_to_dummy_hcd(&dum->gadget); in dummy_queue()
706 if (!dum->driver || !is_enabled(dum_hcd)) in dummy_queue()
849 struct dummy_hcd *dum_hcd; in dummy_wakeup() local
851 dum_hcd = gadget_to_dummy_hcd(_gadget); in dummy_wakeup()
852 if (!(dum_hcd->dum->devstatus & ((1 << USB_DEVICE_B_HNP_ENABLE) in dummy_wakeup()
855 if ((dum_hcd->port_status & USB_PORT_STAT_CONNECTION) == 0) in dummy_wakeup()
857 if ((dum_hcd->port_status & USB_PORT_STAT_SUSPEND) == 0 && in dummy_wakeup()
858 dum_hcd->rh_state != DUMMY_RH_SUSPENDED) in dummy_wakeup()
864 dum_hcd->resuming = 1; in dummy_wakeup()
865 dum_hcd->re_timeout = jiffies + msecs_to_jiffies(20); in dummy_wakeup()
866 mod_timer(&dummy_hcd_to_hcd(dum_hcd)->rh_timer, dum_hcd->re_timeout); in dummy_wakeup()
893 struct dummy_hcd *dum_hcd; in dummy_pullup() local
898 dum_hcd = gadget_to_dummy_hcd(_gadget); in dummy_pullup()
902 set_link_state(dum_hcd); in dummy_pullup()
905 usb_hcd_poll_rh_status(dummy_hcd_to_hcd(dum_hcd)); in dummy_pullup()
966 struct dummy_hcd *dum_hcd = gadget_to_dummy_hcd(g); in dummy_udc_start() local
967 struct dummy *dum = dum_hcd->dum; in dummy_udc_start()
977 dev_err(dummy_dev(dum_hcd), "Unsupported driver max speed %d\n", in dummy_udc_start()
998 struct dummy_hcd *dum_hcd = gadget_to_dummy_hcd(g); in dummy_udc_stop() local
999 struct dummy *dum = dum_hcd->dum; in dummy_udc_stop()
1100 static void dummy_udc_pm(struct dummy *dum, struct dummy_hcd *dum_hcd, in dummy_udc_pm() argument
1105 set_link_state(dum_hcd); in dummy_udc_pm()
1112 struct dummy_hcd *dum_hcd = gadget_to_dummy_hcd(&dum->gadget); in dummy_udc_suspend() local
1115 dummy_udc_pm(dum, dum_hcd, 1); in dummy_udc_suspend()
1116 usb_hcd_poll_rh_status(dummy_hcd_to_hcd(dum_hcd)); in dummy_udc_suspend()
1123 struct dummy_hcd *dum_hcd = gadget_to_dummy_hcd(&dum->gadget); in dummy_udc_resume() local
1126 dummy_udc_pm(dum, dum_hcd, 0); in dummy_udc_resume()
1127 usb_hcd_poll_rh_status(dummy_hcd_to_hcd(dum_hcd)); in dummy_udc_resume()
1165 static int dummy_ep_stream_en(struct dummy_hcd *dum_hcd, struct urb *urb) in dummy_ep_stream_en() argument
1174 return (1 << index) & dum_hcd->stream_en_ep; in dummy_ep_stream_en()
1184 static int get_max_streams_for_pipe(struct dummy_hcd *dum_hcd, in get_max_streams_for_pipe() argument
1189 max_streams = dum_hcd->num_stream[usb_pipeendpoint(pipe)]; in get_max_streams_for_pipe()
1198 static void set_max_streams_for_pipe(struct dummy_hcd *dum_hcd, in set_max_streams_for_pipe() argument
1204 max_streams = dum_hcd->num_stream[usb_pipeendpoint(pipe)]; in set_max_streams_for_pipe()
1212 dum_hcd->num_stream[usb_pipeendpoint(pipe)] = max_streams; in set_max_streams_for_pipe()
1215 static int dummy_validate_stream(struct dummy_hcd *dum_hcd, struct urb *urb) in dummy_validate_stream() argument
1220 enabled = dummy_ep_stream_en(dum_hcd, urb); in dummy_validate_stream()
1229 max_streams = get_max_streams_for_pipe(dum_hcd, in dummy_validate_stream()
1232 dev_err(dummy_dev(dum_hcd), "Stream id %d is out of range.\n", in dummy_validate_stream()
1245 struct dummy_hcd *dum_hcd; in dummy_urb_enqueue() local
1256 dum_hcd = hcd_to_dummy_hcd(hcd); in dummy_urb_enqueue()
1257 spin_lock_irqsave(&dum_hcd->dum->lock, flags); in dummy_urb_enqueue()
1259 rc = dummy_validate_stream(dum_hcd, urb); in dummy_urb_enqueue()
1271 if (!dum_hcd->udev) { in dummy_urb_enqueue()
1272 dum_hcd->udev = urb->dev; in dummy_urb_enqueue()
1273 usb_get_dev(dum_hcd->udev); in dummy_urb_enqueue()
1274 } else if (unlikely(dum_hcd->udev != urb->dev)) in dummy_urb_enqueue()
1275 dev_err(dummy_dev(dum_hcd), "usb_device address has changed!\n"); in dummy_urb_enqueue()
1277 list_add_tail(&urbp->urbp_list, &dum_hcd->urbp_list); in dummy_urb_enqueue()
1279 if (!dum_hcd->next_frame_urbp) in dummy_urb_enqueue()
1280 dum_hcd->next_frame_urbp = urbp; in dummy_urb_enqueue()
1285 if (!timer_pending(&dum_hcd->timer)) in dummy_urb_enqueue()
1286 mod_timer(&dum_hcd->timer, jiffies + 1); in dummy_urb_enqueue()
1289 spin_unlock_irqrestore(&dum_hcd->dum->lock, flags); in dummy_urb_enqueue()
1295 struct dummy_hcd *dum_hcd; in dummy_urb_dequeue() local
1301 dum_hcd = hcd_to_dummy_hcd(hcd); in dummy_urb_dequeue()
1302 spin_lock_irqsave(&dum_hcd->dum->lock, flags); in dummy_urb_dequeue()
1305 if (!rc && dum_hcd->rh_state != DUMMY_RH_RUNNING && in dummy_urb_dequeue()
1306 !list_empty(&dum_hcd->urbp_list)) in dummy_urb_dequeue()
1307 mod_timer(&dum_hcd->timer, jiffies); in dummy_urb_dequeue()
1309 spin_unlock_irqrestore(&dum_hcd->dum->lock, flags); in dummy_urb_dequeue()
1380 static int transfer(struct dummy_hcd *dum_hcd, struct urb *urb, in transfer() argument
1383 struct dummy *dum = dum_hcd->dum; in transfer()
1394 if (dummy_ep_stream_en(dum_hcd, urb)) { in transfer()
1544 #define is_active(dum_hcd) ((dum_hcd->port_status & \ argument
1593 static int handle_control_request(struct dummy_hcd *dum_hcd, struct urb *urb, in handle_control_request() argument
1598 struct dummy *dum = dum_hcd->dum; in handle_control_request()
1631 if (dummy_hcd_to_hcd(dum_hcd)->speed == in handle_control_request()
1638 if (dummy_hcd_to_hcd(dum_hcd)->speed == in handle_control_request()
1645 if (dummy_hcd_to_hcd(dum_hcd)->speed == in handle_control_request()
1678 if (dummy_hcd_to_hcd(dum_hcd)->speed == in handle_control_request()
1685 if (dummy_hcd_to_hcd(dum_hcd)->speed == in handle_control_request()
1692 if (dummy_hcd_to_hcd(dum_hcd)->speed == in handle_control_request()
1761 struct dummy_hcd *dum_hcd = from_timer(dum_hcd, t, timer); in dummy_timer() local
1762 struct dummy *dum = dum_hcd->dum; in dummy_timer()
1785 dev_err(dummy_dev(dum_hcd), "bogus device speed\n"); in dummy_timer()
1795 if (!dum_hcd->udev) { in dummy_timer()
1796 dev_err(dummy_dev(dum_hcd), in dummy_timer()
1801 dum_hcd->next_frame_urbp = NULL; in dummy_timer()
1810 list_for_each_entry_safe(urbp, tmp, &dum_hcd->urbp_list, urbp_list) { in dummy_timer()
1818 if (urbp == dum_hcd->next_frame_urbp) in dummy_timer()
1824 else if (dum_hcd->rh_state != DUMMY_RH_RUNNING) in dummy_timer()
1838 dev_dbg(dummy_dev(dum_hcd), in dummy_timer()
1854 dev_dbg(dummy_dev(dum_hcd), "ep %s halted, urb %p\n", in dummy_timer()
1889 value = handle_control_request(dum_hcd, urb, &setup, in dummy_timer()
1950 total -= transfer(dum_hcd, urb, ep, limit, &status); in dummy_timer()
1964 usb_hcd_unlink_urb_from_ep(dummy_hcd_to_hcd(dum_hcd), urb); in dummy_timer()
1966 usb_hcd_giveback_urb(dummy_hcd_to_hcd(dum_hcd), urb, status); in dummy_timer()
1972 if (list_empty(&dum_hcd->urbp_list)) { in dummy_timer()
1973 usb_put_dev(dum_hcd->udev); in dummy_timer()
1974 dum_hcd->udev = NULL; in dummy_timer()
1975 } else if (dum_hcd->rh_state == DUMMY_RH_RUNNING) { in dummy_timer()
1977 mod_timer(&dum_hcd->timer, jiffies + msecs_to_jiffies(1)); in dummy_timer()
1994 struct dummy_hcd *dum_hcd; in dummy_hub_status() local
1998 dum_hcd = hcd_to_dummy_hcd(hcd); in dummy_hub_status()
2000 spin_lock_irqsave(&dum_hcd->dum->lock, flags); in dummy_hub_status()
2004 if (dum_hcd->resuming && time_after_eq(jiffies, dum_hcd->re_timeout)) { in dummy_hub_status()
2005 dum_hcd->port_status |= (USB_PORT_STAT_C_SUSPEND << 16); in dummy_hub_status()
2006 dum_hcd->port_status &= ~USB_PORT_STAT_SUSPEND; in dummy_hub_status()
2007 set_link_state(dum_hcd); in dummy_hub_status()
2010 if ((dum_hcd->port_status & PORT_C_MASK) != 0) { in dummy_hub_status()
2012 dev_dbg(dummy_dev(dum_hcd), "port status 0x%08x has changes\n", in dummy_hub_status()
2013 dum_hcd->port_status); in dummy_hub_status()
2015 if (dum_hcd->rh_state == DUMMY_RH_SUSPENDED) in dummy_hub_status()
2019 spin_unlock_irqrestore(&dum_hcd->dum->lock, flags); in dummy_hub_status()
2079 struct dummy_hcd *dum_hcd; in dummy_hub_control() local
2086 dum_hcd = hcd_to_dummy_hcd(hcd); in dummy_hub_control()
2088 spin_lock_irqsave(&dum_hcd->dum->lock, flags); in dummy_hub_control()
2096 dev_dbg(dummy_dev(dum_hcd), in dummy_hub_control()
2101 if (dum_hcd->port_status & USB_PORT_STAT_SUSPEND) { in dummy_hub_control()
2103 dum_hcd->resuming = 1; in dummy_hub_control()
2104 dum_hcd->re_timeout = jiffies + in dummy_hub_control()
2109 dev_dbg(dummy_dev(dum_hcd), "power-off\n"); in dummy_hub_control()
2111 dum_hcd->port_status &= ~USB_SS_PORT_STAT_POWER; in dummy_hub_control()
2113 dum_hcd->port_status &= ~USB_PORT_STAT_POWER; in dummy_hub_control()
2114 set_link_state(dum_hcd); in dummy_hub_control()
2117 dum_hcd->port_status &= ~(1 << wValue); in dummy_hub_control()
2118 set_link_state(dum_hcd); in dummy_hub_control()
2125 dev_dbg(dummy_dev(dum_hcd), in dummy_hub_control()
2157 if (dum_hcd->resuming && in dummy_hub_control()
2158 time_after_eq(jiffies, dum_hcd->re_timeout)) { in dummy_hub_control()
2159 dum_hcd->port_status |= (USB_PORT_STAT_C_SUSPEND << 16); in dummy_hub_control()
2160 dum_hcd->port_status &= ~USB_PORT_STAT_SUSPEND; in dummy_hub_control()
2162 if ((dum_hcd->port_status & USB_PORT_STAT_RESET) != 0 && in dummy_hub_control()
2163 time_after_eq(jiffies, dum_hcd->re_timeout)) { in dummy_hub_control()
2164 dum_hcd->port_status |= (USB_PORT_STAT_C_RESET << 16); in dummy_hub_control()
2165 dum_hcd->port_status &= ~USB_PORT_STAT_RESET; in dummy_hub_control()
2166 if (dum_hcd->dum->pullup) { in dummy_hub_control()
2167 dum_hcd->port_status |= USB_PORT_STAT_ENABLE; in dummy_hub_control()
2170 switch (dum_hcd->dum->gadget.speed) { in dummy_hub_control()
2172 dum_hcd->port_status |= in dummy_hub_control()
2176 dum_hcd->dum->gadget.ep0-> in dummy_hub_control()
2178 dum_hcd->port_status |= in dummy_hub_control()
2187 set_link_state(dum_hcd); in dummy_hub_control()
2188 ((__le16 *) buf)[0] = cpu_to_le16(dum_hcd->port_status); in dummy_hub_control()
2189 ((__le16 *) buf)[1] = cpu_to_le16(dum_hcd->port_status >> 16); in dummy_hub_control()
2198 dev_dbg(dummy_dev(dum_hcd), in dummy_hub_control()
2212 dev_dbg(dummy_dev(dum_hcd), in dummy_hub_control()
2221 dev_dbg(dummy_dev(dum_hcd), in dummy_hub_control()
2226 if (dum_hcd->active) { in dummy_hub_control()
2227 dum_hcd->port_status |= USB_PORT_STAT_SUSPEND; in dummy_hub_control()
2232 set_link_state(dum_hcd); in dummy_hub_control()
2234 & dum_hcd->dum->devstatus) != 0) in dummy_hub_control()
2235 dev_dbg(dummy_dev(dum_hcd), in dummy_hub_control()
2241 dum_hcd->port_status |= USB_SS_PORT_STAT_POWER; in dummy_hub_control()
2243 dum_hcd->port_status |= USB_PORT_STAT_POWER; in dummy_hub_control()
2244 set_link_state(dum_hcd); in dummy_hub_control()
2249 dev_dbg(dummy_dev(dum_hcd), in dummy_hub_control()
2258 dum_hcd->port_status = 0; in dummy_hub_control()
2259 dum_hcd->port_status = in dummy_hub_control()
2264 dum_hcd->port_status &= ~(USB_PORT_STAT_ENABLE in dummy_hub_control()
2271 dum_hcd->dum->devstatus &= in dummy_hub_control()
2277 dum_hcd->re_timeout = jiffies + msecs_to_jiffies(50); in dummy_hub_control()
2281 if ((dum_hcd->port_status & in dummy_hub_control()
2283 dum_hcd->port_status |= (1 << wValue); in dummy_hub_control()
2286 if ((dum_hcd->port_status & in dummy_hub_control()
2288 dum_hcd->port_status |= (1 << wValue); in dummy_hub_control()
2290 set_link_state(dum_hcd); in dummy_hub_control()
2295 dev_dbg(dummy_dev(dum_hcd), in dummy_hub_control()
2305 dev_dbg(dummy_dev(dum_hcd), in dummy_hub_control()
2312 dev_dbg(dummy_dev(dum_hcd), in dummy_hub_control()
2319 spin_unlock_irqrestore(&dum_hcd->dum->lock, flags); in dummy_hub_control()
2321 if ((dum_hcd->port_status & PORT_C_MASK) != 0) in dummy_hub_control()
2328 struct dummy_hcd *dum_hcd = hcd_to_dummy_hcd(hcd); in dummy_bus_suspend() local
2332 spin_lock_irq(&dum_hcd->dum->lock); in dummy_bus_suspend()
2333 dum_hcd->rh_state = DUMMY_RH_SUSPENDED; in dummy_bus_suspend()
2334 set_link_state(dum_hcd); in dummy_bus_suspend()
2336 spin_unlock_irq(&dum_hcd->dum->lock); in dummy_bus_suspend()
2342 struct dummy_hcd *dum_hcd = hcd_to_dummy_hcd(hcd); in dummy_bus_resume() local
2347 spin_lock_irq(&dum_hcd->dum->lock); in dummy_bus_resume()
2351 dum_hcd->rh_state = DUMMY_RH_RUNNING; in dummy_bus_resume()
2352 set_link_state(dum_hcd); in dummy_bus_resume()
2353 if (!list_empty(&dum_hcd->urbp_list)) in dummy_bus_resume()
2354 mod_timer(&dum_hcd->timer, jiffies); in dummy_bus_resume()
2357 spin_unlock_irq(&dum_hcd->dum->lock); in dummy_bus_resume()
2411 struct dummy_hcd *dum_hcd = hcd_to_dummy_hcd(hcd); in urbs_show() local
2416 spin_lock_irqsave(&dum_hcd->dum->lock, flags); in urbs_show()
2417 list_for_each_entry(urbp, &dum_hcd->urbp_list, urbp_list) { in urbs_show()
2424 spin_unlock_irqrestore(&dum_hcd->dum->lock, flags); in urbs_show()
2430 static int dummy_start_ss(struct dummy_hcd *dum_hcd) in dummy_start_ss() argument
2432 timer_setup(&dum_hcd->timer, dummy_timer, 0); in dummy_start_ss()
2433 dum_hcd->rh_state = DUMMY_RH_RUNNING; in dummy_start_ss()
2434 dum_hcd->stream_en_ep = 0; in dummy_start_ss()
2435 INIT_LIST_HEAD(&dum_hcd->urbp_list); in dummy_start_ss()
2436 dummy_hcd_to_hcd(dum_hcd)->power_budget = POWER_BUDGET_3; in dummy_start_ss()
2437 dummy_hcd_to_hcd(dum_hcd)->state = HC_STATE_RUNNING; in dummy_start_ss()
2438 dummy_hcd_to_hcd(dum_hcd)->uses_new_polling = 1; in dummy_start_ss()
2440 dummy_hcd_to_hcd(dum_hcd)->self.otg_port = 1; in dummy_start_ss()
2445 return device_create_file(dummy_dev(dum_hcd), &dev_attr_urbs); in dummy_start_ss()
2450 struct dummy_hcd *dum_hcd = hcd_to_dummy_hcd(hcd); in dummy_start() local
2458 return dummy_start_ss(dum_hcd); in dummy_start()
2460 spin_lock_init(&dum_hcd->dum->lock); in dummy_start()
2461 timer_setup(&dum_hcd->timer, dummy_timer, 0); in dummy_start()
2462 dum_hcd->rh_state = DUMMY_RH_RUNNING; in dummy_start()
2464 INIT_LIST_HEAD(&dum_hcd->urbp_list); in dummy_start()
2475 return device_create_file(dummy_dev(dum_hcd), &dev_attr_urbs); in dummy_start()
2521 struct dummy_hcd *dum_hcd = hcd_to_dummy_hcd(hcd); in dummy_alloc_streams() local
2531 spin_lock_irqsave(&dum_hcd->dum->lock, flags); in dummy_alloc_streams()
2534 if ((1 << index) & dum_hcd->stream_en_ep) { in dummy_alloc_streams()
2544 dev_dbg(dummy_dev(dum_hcd), "Ep 0x%x only supports %u " in dummy_alloc_streams()
2554 dum_hcd->stream_en_ep |= 1 << index; in dummy_alloc_streams()
2555 set_max_streams_for_pipe(dum_hcd, in dummy_alloc_streams()
2559 spin_unlock_irqrestore(&dum_hcd->dum->lock, flags); in dummy_alloc_streams()
2568 struct dummy_hcd *dum_hcd = hcd_to_dummy_hcd(hcd); in dummy_free_streams() local
2574 spin_lock_irqsave(&dum_hcd->dum->lock, flags); in dummy_free_streams()
2577 if (!((1 << index) & dum_hcd->stream_en_ep)) { in dummy_free_streams()
2585 dum_hcd->stream_en_ep &= ~(1 << index); in dummy_free_streams()
2586 set_max_streams_for_pipe(dum_hcd, in dummy_free_streams()
2591 spin_unlock_irqrestore(&dum_hcd->dum->lock, flags); in dummy_free_streams()
2690 struct dummy_hcd *dum_hcd; in dummy_hcd_suspend() local
2696 dum_hcd = hcd_to_dummy_hcd(hcd); in dummy_hcd_suspend()
2697 if (dum_hcd->rh_state == DUMMY_RH_RUNNING) { in dummy_hcd_suspend()