STRUCT CDNSP_RUN_REGS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ struct cdnsp_run_regs(9) πŸŽ€

okay so bestie, welcome to the Kernel API Manual β€” this one's a struct page and honestly it's giving "quiet luxury" because the NAME section is literally just vibes and a dangling dash. Let's get into it πŸ’…


✨ NAME ✨

struct cdnsp_run_regs β€”

and that's it. That's the whole description. The dash just sits there. No notes. Iconic behaviour honestly 🫢


🌸 SYNOPSIS 🌸

struct cdnsp_run_regs {
    __le32 microframe_index;
    __le32 rsvd[7];
    struct cdnsp_intr_reg ir_set[128];
 };

look at her. three fields. one of them is literally named rsvd and there are seven of them, and we respect that πŸ™ˆ


πŸ¦‹ Members πŸ¦‹

  • microframe_index β€” this is the MFINDEX register, and it's holding the current microframe number. that's it, that's the whole job. slay.
  • ir_set β€” an array of Interrupter registers. yes, it's an array. yes, it's of struct cdnsp_intr_reg. yes, there are 128 of them. no cap πŸ’–

πŸ’œ Description πŸ’œ

These are the Device Controller Runtime Registers, bestie. and there's a rule, and I need you to hear it in your bones:

"Software should read and write these registers using only Dword (32 bit) or larger accesses"

fr fr. dword or bigger. no little byte-poking around here, that's the whole vibe check πŸŽ€


πŸ”₯ SEE ALSO πŸ”₯

the kernel file is at ./drivers/usb/cdns3/cdnsp-gadget.h, and then there is a whole friend group of structs you should go meet:

  • struct cdnsp_cap_regs(9)
  • struct cdnsp_op_regs(9)
  • struct cdnsp_port_regs(9)
  • struct cdnsp_intr_reg(9)
  • struct cdnsp_rev_cap(9)
  • struct cdnsp_doorbell_array(9)
  • struct cdnsp_container_ctx(9)
  • struct cdnsp_slot_ctx(9)
  • struct cdnsp_ep_ctx(9)
  • struct cdnsp_stream_info(9)
  • struct cdnsp_ep(9)
  • struct cdnsp_device_context_array(9)
  • struct cdnsp_transfer_event(9)
  • struct cdnsp_link_trb(9)
  • struct cdnsp_event_cmd(9)
  • struct cdnsp_segment(9)
  • struct cdnsp_td(9)
  • struct cdnsp_dequeue_state(9)
  • struct cdnsp_ring(9)
  • struct cdnsp_erst_entry(9)
  • struct cdnsp_erst(9)
  • struct cdnsp_request(9)
  • struct cdnsp_port(9)
  • struct cdnsp_device(9)
  • next_request(9)

that's the whole group chat, go say hi πŸ˜­πŸ‘‘


anyway, this page lives in ./drivers/usb/cdns3, dated October 2026, and yes it's still titled struct cdnsp_run_regs(9) at the bottom like a little signature. bye bestie, go read your registers properly πŸ’–βœ¨πŸŒΈ

πŸ“¦ where this page comes from