STRUCT CDNSP_STREAM_INFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

Okay bestie, this is the struct cdnsp_stream_info(9) page from the Kernel API Manual, and it's giving β€œsupport system for stream-capable endpoints.”

struct cdnsp_stream_info β€” representing everything that is needed to supports stream capable endpoints. That's the name description, no cap: she's the struct holding all the stream-info pieces. 🫢


πŸ¦‹ SYNOPSIS πŸ¦‹

Here's the struct in all her glory β€” copy it exactly, bestie:

       struct cdnsp_stream_info {
           struct cdnsp_ring **stream_rings;
           unsigned int num_streams;
           struct cdnsp_stream_ctx *stream_ctx_array;
           unsigned int num_stream_ctxs;
           dma_addr_t ctx_array_dma;
           struct radix_tree_root trb_address_map;
           int td_count;
           u8 first_prime_det;
         #define STREAM_DRBL_FIFO_DEPTH 2;
           u8 drbls_count;
        };

And yes, that #define STREAM_DRBL_FIFO_DEPTH 2; is literally sitting inside the struct block in the synopsis. Not me double-checking it three times. πŸ’…


πŸ’… Members πŸ’…

Okay, roster time β€” every member and exactly what the page says about her:

  • stream_rings β€” array of pointers containing Transfer rings for all supported streams. πŸ’–
  • num_streams β€” number of streams, including stream 0. Stream 0 is invited to the party, bestie.
  • stream_ctx_array β€” the stream context array may be bigger than the number of streams the driver asked for. She can be extra, okay?
  • num_stream_ctxs β€” number of streams. That's what the page says; we're not renegotiating it. 😭
  • ctx_array_dma β€” Dma address of Context Stream Array.
  • trb_address_map β€” for mapping physical TRB addresses to segments in stream rings.
  • td_count β€” number of TDs associated with endpoint.
  • first_prime_det β€” first PRIME packet detected.
  • drbls_count β€” number of allowed doorbells. πŸ””

🌈 SEE ALSO 🌈

This page is linked with the Kernel file ./drivers/usb/cdns3/cdnsp-gadget.h and the whole friend group:

  • Kernel file ./drivers/usb/cdns3/cdnsp-gadget.h
  • struct cdnsp_cap_regs(9)
  • struct cdnsp_op_regs(9)
  • struct cdnsp_port_regs(9)
  • struct cdnsp_intr_reg(9)
  • struct cdnsp_run_regs(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_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)

Catch you later, bestie 🫢 β€” source/path: ./drivers/usb/cdns3; version/date: October 2026; page: struct cdnsp_stream_info(9).

πŸ“¦ where this page comes from