dwc2_hsotg_set_test_mode(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

dwc2_hsotg_set_test_mode β€” bestie, this is the one that enables usb Test Modes ✨ (yes, capital T, capital M, we're fancy). This page comes straight out of the Kernel API Manual, section 9, and it's giving very niche-kernel-girlie energy πŸŽ€


🌸 SYNOPSIS 🌸

int dwc2_hsotg_set_test_mode (struct dwc2_hsotg *hsotg , int testmode );

No cap, that's the whole signature. Two args in, one int out 🫢


✨ ARGUMENTS ✨

  • hsotg β€” The driver state. That's it, that's the description πŸ’€ it's the driver state, the main character of this whole struct, hold it gently.
  • testmode β€” requested usb test mode. This is where you tell it which mode you want: Enable usb Test Mode requested by the Host. So like, the Host asked for it, and you're just the messenger carrying the vibe check through πŸ¦‹
Heads up bestie: the manpage literally says "Enable usb Test Modes" in NAME and then "Enable usb Test Mode requested by the Host" for testmode. I'm not paraphrasing those away, that's canon, I'm keeping it exactly as written πŸ”₯

πŸ‘‘ SEE ALSO πŸ‘‘

Okay so this is the part where the page just drops the entire friend group at once, no context, no warning 😭 The kernel file is ./drivers/usb/dwc2/gadget.c β€” that's where the lore lives β€” and it links out to all of these:

using_dma(9), dwc2_gadget_incr_frame_num(9), dwc2_gadget_dec_frame_num_by_one(9), dwc2_hsotg_en_gsint(9), dwc2_hsotg_disable_gsint(9), dwc2_hsotg_ctrl_epint(9), dwc2_hsotg_tx_fifo_count(9), dwc2_hsotg_tx_fifo_total_depth(9), dwc2_gadget_wkup_alert_handler(9), dwc2_hsotg_tx_fifo_average_depth(9), dwc2_hsotg_init_fifo(9), dwc2_hsotg_ep_alloc_request(9), is_ep_periodic(9), dwc2_hsotg_unmap_dma(9), dwc2_hsotg_write_fifo(9), get_ep_limit(9), dwc2_hsotg_read_frameno(9), dwc2_gadget_get_chain_limit(9), dwc2_hsotg_start_req(9), dwc2_hsotg_map_dma(9), dwc2_gadget_target_frame_elapsed(9), dwc2_hsotg_complete_oursetup(9), ep_from_windex(9), dwc2_hsotg_send_reply(9), dwc2_hsotg_process_req_status(9), get_ep_head(9), dwc2_gadget_start_next_request(9), dwc2_hsotg_process_req_feature(9), dwc2_hsotg_stall_ep0(9), dwc2_hsotg_process_control(9), dwc2_hsotg_complete_setup(9), dwc2_hsotg_enqueue_setup(9), dwc2_hsotg_complete_request(9), dwc2_hsotg_rx_data(9), dwc2_hsotg_ep0_zlp(9), dwc2_hsotg_handle_outdone(9), dwc2_hsotg_handle_rx(9), dwc2_hsotg_ep0_mps(9), dwc2_hsotg_set_ep_maxpacket(9), dwc2_hsotg_txfifo_flush(9), dwc2_hsotg_trytx(9), dwc2_hsotg_complete_in(9), dwc2_gadget_read_ep_interrupts(9), dwc2_gadget_handle_ep_disabled(9), dwc2_gadget_handle_out_token_ep_disabled(9), dwc2_gadget_handle_nak(9), dwc2_hsotg_epint(9), dwc2_hsotg_irq_enumdone(9), kill_all_requests(9), dwc2_hsotg_disconnect(9), dwc2_hsotg_irq_fifoempty(9), dwc2_hsotg_core_init_disconnected(9), dwc2_gadget_handle_incomplete_isoc_in(9), dwc2_gadget_handle_incomplete_isoc_out(9), dwc2_hsotg_irq(9), dwc2_hsotg_ep_enable(9), dwc2_hsotg_ep_disable(9), on_list(9), dwc2_hsotg_ep_dequeue(9), dwc2_gadget_ep_set_wedge(9), dwc2_hsotg_ep_sethalt(9), dwc2_hsotg_ep_sethalt_lock(9), dwc2_hsotg_init(9), dwc2_hsotg_udc_start(9), dwc2_hsotg_udc_stop(9), dwc2_hsotg_gadget_getframe(9), dwc2_hsotg_set_selfpowered(9), dwc2_hsotg_pullup(9), dwc2_hsotg_vbus_draw(9), dwc2_hsotg_initep(9), dwc2_hsotg_hw_cfg(9), dwc2_hsotg_dump(9), dwc2_gadget_init(9), dwc2_hsotg_remove(9), dwc2_backup_device_registers(9), dwc2_restore_device_registers(9), dwc2_gadget_init_lpm(9), dwc2_gadget_program_ref_clk(9), dwc2_gadget_enter_hibernation(9), dwc2_gadget_exit_hibernation(9), dwc2_gadget_enter_partial_power_down(9), dwc2_gadget_enter_clock_gating(9)

Literally the whole dwc2 gadget roster, iykyk πŸ’œ read them alphabetically, read them backwards, read them like a group chat you got added to at 3am β€” they're all here, nobody got left on read 🌈


Lowkey, this is a tiny page. One function, two args, an entire extended family of SEE ALSO refs. That's the vibe. Periodt πŸ’…

Kernel source file: ./drivers/usb/dwc2 β€” October 2026 edition, bestie πŸŽ€ that's your source and your date, screenshotted and framed on the wall of the kernel API manual, dwc2_hsotg_set_test_mode(9) forever πŸ’–βœ¨

πŸ“¦ where this page comes from