dwc2_hsotg_ep_sethalt(9)
π 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'strue, stall the endpoint right now, immediately, no waiting. otherwise, if the endpoint is busy processing requests, she returns-EAGAINinstead. π
lowkey important: that-EAGAINonly happens whennowis 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms