• Home
  • Raw
  • Download

Lines Matching full:dwc3

41 int dwc3_gadget_set_test_mode(struct dwc3 *dwc, int mode)  in dwc3_gadget_set_test_mode()
72 int dwc3_gadget_get_link_state(struct dwc3 *dwc) in dwc3_gadget_get_link_state()
89 int dwc3_gadget_set_link_state(struct dwc3 *dwc, enum dwc3_link_state state) in dwc3_gadget_set_link_state()
98 if (!DWC3_VER_IS_PRIOR(DWC3, 194A)) { in dwc3_gadget_set_link_state()
125 if (!DWC3_VER_IS_PRIOR(DWC3, 194A)) in dwc3_gadget_set_link_state()
178 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_del_and_unmap_request()
212 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_giveback()
231 int dwc3_send_gadget_generic_command(struct dwc3 *dwc, unsigned int cmd, in dwc3_send_gadget_generic_command()
262 static int __dwc3_gadget_wakeup(struct dwc3 *dwc);
277 struct dwc3 *dwc = dep->dwc; in dwc3_send_gadget_ep_cmd()
424 struct dwc3 *dwc = dep->dwc; in dwc3_send_clear_stall_ep_cmd()
437 !DWC3_VER_IS_PRIOR(DWC3, 260A) && in dwc3_send_clear_stall_ep_cmd()
456 struct dwc3 *dwc = dep->dwc; in dwc3_alloc_trb_pool()
475 struct dwc3 *dwc = dep->dwc; in dwc3_free_trb_pool()
532 struct dwc3 *dwc; in dwc3_gadget_start_config()
567 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_set_ep_config()
658 struct dwc3 *dwc = dep->dwc; in __dwc3_gadget_ep_enable()
757 static void dwc3_remove_requests(struct dwc3 *dwc, struct dwc3_ep *dep, int status) in dwc3_remove_requests()
795 struct dwc3 *dwc = dep->dwc; in __dwc3_gadget_ep_disable()
842 struct dwc3 *dwc; in dwc3_gadget_ep_enable()
847 pr_debug("dwc3: invalid parameters\n"); in dwc3_gadget_ep_enable()
852 pr_debug("dwc3: missing wMaxPacketSize\n"); in dwc3_gadget_ep_enable()
874 struct dwc3 *dwc; in dwc3_gadget_ep_disable()
879 pr_debug("dwc3: invalid parameters\n"); in dwc3_gadget_ep_disable()
996 struct dwc3 *dwc = dep->dwc; in dwc3_prepare_one_trb()
1325 struct dwc3 *dwc = dep->dwc; in dwc3_prepare_trbs()
1436 static int __dwc3_gadget_get_frame(struct dwc3 *dwc) in __dwc3_gadget_get_frame()
1457 struct dwc3 *dwc = dep->dwc; in __dwc3_stop_active_transfer()
1472 if (!DWC3_IP_IS(DWC3) || DWC3_VER_IS_PRIOR(DWC3, 310A)) in __dwc3_stop_active_transfer()
1600 struct dwc3 *dwc = dep->dwc; in __dwc3_gadget_start_isoc()
1659 struct dwc3 *dwc = dep->dwc; in __dwc3_gadget_ep_queue()
1729 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_ep_queue()
1789 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_ep_dequeue()
1842 struct dwc3 *dwc = dep->dwc; in __dwc3_gadget_ep_set_halt()
1925 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_ep_set_halt()
1941 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_ep_set_wedge()
1991 struct dwc3 *dwc = gadget_to_dwc(g); in dwc3_gadget_get_frame()
1996 static int __dwc3_gadget_wakeup(struct dwc3 *dwc) in __dwc3_gadget_wakeup()
2034 if (DWC3_VER_IS_PRIOR(DWC3, 194A)) { in __dwc3_gadget_wakeup()
2062 struct dwc3 *dwc = gadget_to_dwc(g); in dwc3_gadget_wakeup()
2076 struct dwc3 *dwc = gadget_to_dwc(g); in dwc3_gadget_set_selfpowered()
2086 static void dwc3_stop_active_transfers(struct dwc3 *dwc) in dwc3_stop_active_transfers()
2101 static int dwc3_gadget_run_stop(struct dwc3 *dwc, int is_on, int suspend) in dwc3_gadget_run_stop()
2111 if (DWC3_VER_IS_WITHIN(DWC3, ANY, 187A)) { in dwc3_gadget_run_stop()
2116 if (!DWC3_VER_IS_PRIOR(DWC3, 194A)) in dwc3_gadget_run_stop()
2146 static void dwc3_gadget_disable_irq(struct dwc3 *dwc);
2147 static void __dwc3_gadget_stop(struct dwc3 *dwc);
2148 static int __dwc3_gadget_start(struct dwc3 *dwc);
2150 static int dwc3_gadget_soft_disconnect(struct dwc3 *dwc) in dwc3_gadget_soft_disconnect()
2180 struct dwc3 *dwc = gadget_to_dwc(g); in dwc3_gadget_pullup()
2201 * suspended state during gadget disconnect. DWC3 gadget was already in dwc3_gadget_pullup()
2212 * successful resume, the DWC3 runtime PM resume routine will handle in dwc3_gadget_pullup()
2249 static void dwc3_gadget_enable_irq(struct dwc3 *dwc) in dwc3_gadget_enable_irq()
2263 if (DWC3_VER_IS_PRIOR(DWC3, 250A)) in dwc3_gadget_enable_irq()
2267 if (!DWC3_VER_IS_PRIOR(DWC3, 230A)) in dwc3_gadget_enable_irq()
2273 static void dwc3_gadget_disable_irq(struct dwc3 *dwc) in dwc3_gadget_disable_irq()
2303 static void dwc3_gadget_setup_nump(struct dwc3 *dwc) in dwc3_gadget_setup_nump()
2325 static int __dwc3_gadget_start(struct dwc3 *dwc) in __dwc3_gadget_start()
2343 * We are telling dwc3 that we want to use DCFG.NUMP as ACK TP's NUMP in __dwc3_gadget_start()
2344 * field instead of letting dwc3 itself calculate that automatically. in __dwc3_gadget_start()
2350 if (DWC3_IP_IS(DWC3)) in __dwc3_gadget_start()
2396 struct dwc3 *dwc = gadget_to_dwc(g); in dwc3_gadget_start()
2403 IRQF_SHARED, "dwc3", dwc->ev_buf); in dwc3_gadget_start()
2432 static void __dwc3_gadget_stop(struct dwc3 *dwc) in __dwc3_gadget_stop()
2441 struct dwc3 *dwc = gadget_to_dwc(g); in dwc3_gadget_stop()
2456 struct dwc3 *dwc = gadget_to_dwc(g); in dwc3_gadget_config_params()
2495 struct dwc3 *dwc = gadget_to_dwc(g); in dwc3_gadget_set_speed()
2504 * WORKAROUND: DWC3 revision < 2.20a have an issue in dwc3_gadget_set_speed()
2516 if (DWC3_VER_IS_PRIOR(DWC3, 220A) && in dwc3_gadget_set_speed()
2534 if (DWC3_IP_IS(DWC3)) in dwc3_gadget_set_speed()
2542 if (DWC3_IP_IS(DWC3)) in dwc3_gadget_set_speed()
2568 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_init_control_endpoint()
2583 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_init_in_endpoint()
2595 if (DWC3_IP_IS(DWC3)) in dwc3_gadget_init_in_endpoint()
2630 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_init_out_endpoint()
2643 if (DWC3_IP_IS(DWC3)) in dwc3_gadget_init_out_endpoint()
2677 static int dwc3_gadget_init_endpoint(struct dwc3 *dwc, u8 epnum) in dwc3_gadget_init_endpoint()
2728 static int dwc3_gadget_init_endpoints(struct dwc3 *dwc, u8 total) in dwc3_gadget_init_endpoints()
2745 static void dwc3_gadget_free_endpoints(struct dwc3 *dwc) in dwc3_gadget_free_endpoints()
2761 * with all sorts of bugs when removing dwc3.ko. in dwc3_gadget_free_endpoints()
2788 * receive a short transfer along the way, DWC3 will skip in dwc3_gadget_ep_reclaim_completed_trb()
2790 * where CHN bit is zero. DWC3 will also avoid clearing HWO in dwc3_gadget_ep_reclaim_completed_trb()
2986 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_endpoint_trbs_complete()
3010 if (DWC3_VER_IS_PRIOR(DWC3, 183A)) { in dwc3_gadget_endpoint_trbs_complete()
3108 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_endpoint_command_complete()
3135 struct dwc3 *dwc = dep->dwc; in dwc3_gadget_endpoint_stream_event()
3196 static void dwc3_endpoint_interrupt(struct dwc3 *dwc, in dwc3_endpoint_interrupt()
3239 static void dwc3_disconnect_gadget(struct dwc3 *dwc) in dwc3_disconnect_gadget()
3248 static void dwc3_suspend_gadget(struct dwc3 *dwc) in dwc3_suspend_gadget()
3257 static void dwc3_resume_gadget(struct dwc3 *dwc) in dwc3_resume_gadget()
3266 static void dwc3_reset_gadget(struct dwc3 *dwc) in dwc3_reset_gadget()
3312 * controller to handle the command completely before DWC3 in dwc3_stop_active_transfer()
3319 static void dwc3_clear_stall_all_ep(struct dwc3 *dwc) in dwc3_clear_stall_all_ep()
3341 static void dwc3_gadget_disconnect_interrupt(struct dwc3 *dwc) in dwc3_gadget_disconnect_interrupt()
3361 static void dwc3_gadget_reset_interrupt(struct dwc3 *dwc) in dwc3_gadget_reset_interrupt()
3375 * WORKAROUND: DWC3 revisions <1.88a have an issue which in dwc3_gadget_reset_interrupt()
3400 if (DWC3_VER_IS_PRIOR(DWC3, 188A)) { in dwc3_gadget_reset_interrupt()
3427 static void dwc3_gadget_conndone_interrupt(struct dwc3 *dwc) in dwc3_gadget_conndone_interrupt()
3455 * WORKAROUND: DWC3 revisions <1.90a have an issue which in dwc3_gadget_conndone_interrupt()
3467 if (DWC3_VER_IS_PRIOR(DWC3, 190A)) in dwc3_gadget_conndone_interrupt()
3495 if (!DWC3_VER_IS_WITHIN(DWC3, ANY, 194A) && in dwc3_gadget_conndone_interrupt()
3510 * When dwc3 revisions >= 2.40a, LPM Erratum is enabled and in dwc3_gadget_conndone_interrupt()
3515 WARN_ONCE(DWC3_VER_IS_PRIOR(DWC3, 240A) && dwc->has_lpm_erratum, in dwc3_gadget_conndone_interrupt()
3516 "LPM Erratum not available on dwc3 revisions < 2.40a\n"); in dwc3_gadget_conndone_interrupt()
3518 if (dwc->has_lpm_erratum && !DWC3_VER_IS_PRIOR(DWC3, 240A)) in dwc3_gadget_conndone_interrupt()
3557 static void dwc3_gadget_wakeup_interrupt(struct dwc3 *dwc) in dwc3_gadget_wakeup_interrupt()
3571 static void dwc3_gadget_linksts_change_interrupt(struct dwc3 *dwc, in dwc3_gadget_linksts_change_interrupt()
3578 * WORKAROUND: DWC3 < 2.50a have an issue when configured without in dwc3_gadget_linksts_change_interrupt()
3595 if (DWC3_VER_IS_PRIOR(DWC3, 250A) && in dwc3_gadget_linksts_change_interrupt()
3604 * WORKAROUND: DWC3 Revisions <1.83a have an issue which, depending in dwc3_gadget_linksts_change_interrupt()
3621 if (DWC3_VER_IS_PRIOR(DWC3, 183A)) { in dwc3_gadget_linksts_change_interrupt()
3669 static void dwc3_gadget_suspend_interrupt(struct dwc3 *dwc, in dwc3_gadget_suspend_interrupt()
3680 static void dwc3_gadget_hibernation_interrupt(struct dwc3 *dwc, in dwc3_gadget_hibernation_interrupt()
3686 * WORKAROUND: DWC3 revison 2.20a with hibernation support in dwc3_gadget_hibernation_interrupt()
3704 static void dwc3_gadget_interrupt(struct dwc3 *dwc, in dwc3_gadget_interrupt()
3732 if (!DWC3_VER_IS_PRIOR(DWC3, 230A)) { in dwc3_gadget_interrupt()
3752 static void dwc3_process_event_entry(struct dwc3 *dwc, in dwc3_process_event_entry()
3767 struct dwc3 *dwc = evt->dwc; in dwc3_process_event_buf()
3819 struct dwc3 *dwc = evt->dwc; in dwc3_thread_interrupt()
3834 struct dwc3 *dwc = evt->dwc; in dwc3_check_event_buf()
3891 static int dwc3_gadget_get_irq(struct dwc3 *dwc) in dwc3_gadget_get_irq()
3934 int dwc3_gadget_init(struct dwc3 *dwc) in dwc3_gadget_init()
3984 dwc->gadget->name = "dwc3-gadget"; in dwc3_gadget_init()
3989 * <2.20a of dwc3 have an issue with metastability (documented in dwc3_gadget_init()
3994 * drivers (i.e. it won't go into dwc3's registers) we are allowing this in dwc3_gadget_init()
4003 if (DWC3_VER_IS_PRIOR(DWC3, 220A) && in dwc3_gadget_init()
4051 void dwc3_gadget_exit(struct dwc3 *dwc) in dwc3_gadget_exit()
4066 int dwc3_gadget_suspend(struct dwc3 *dwc) in dwc3_gadget_suspend()
4078 int dwc3_gadget_resume(struct dwc3 *dwc) in dwc3_gadget_resume()
4102 void dwc3_gadget_process_pending_events(struct dwc3 *dwc) in dwc3_gadget_process_pending_events()