dwc2_hsotg_ep_sethalt(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… dwc2_hsotg_ep_sethalt

okay so welcome to the Kernel API Manual, bestie β€” today's main character is dwc2_hsotg_ep_sethalt, and honestly? she's short but she matters. let's get into it πŸŽ€


✨ NAME ✨

dwc2_hsotg_ep_sethalt β€” set halt on a given endpoint

no cap, that's the whole vibe: you're flipping the halt on an endpoint. πŸ’…


✨ SYNOPSIS ✨

int dwc2_hsotg_ep_sethalt (struct usb_ep *ep , int value , bool now );

like, look at her. three little args and she's out. πŸ¦‹


✨ ARGUMENTS ✨

  • ep β€” the endpoint you're setting halt on. that's the target, periodt.
  • value β€” set or unset the halt. so like, on or off, bestie.
  • now β€” if it's true, stall the endpoint right now, immediately, no waiting. otherwise, if the endpoint is busy processing requests, she returns -EAGAIN instead. 😭
lowkey important: that -EAGAIN only happens when now is not true and the endpoint is busy. don't come for me, that's literally what it says.

✨ DESCRIPTION ✨

we need to stall the endpoint immediately if the request comes from the set_feature protocol command handler. that's the whole reason this function exists β€” the set_feature handler needs that immediate stall energy, and she delivers. πŸ”₯


✨ SEE ALSO ✨

so you wanna go deeper? say less. all of these live in the kernel file ./drivers/usb/dwc2/gadget.c, and here's the full squad:

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_set_test_mode(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_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)

like... that's a lot of friends. iykyk 🫢


okay that's the page!! and for the cute sign-off moment you asked for: this little icon comes from the ./drivers/usb/dwc2 source, dated October 2026 β€” so yeah, she's stamped and everything. mwah πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from