STRUCT CVMX_USB_PIPE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct cvmx_usb_pipe(9) πŸ’–

from the Kernel API Manual β€” okay bestie, let's get into this pipe. 🫢

πŸŽ€ NAME πŸŽ€

struct cvmx_usb_pipe β€” a pipe represents a virtual connection between Octeon and some USB device. It contains a list of pending request to the device. ✨

🌸 SYNOPSIS 🌸

struct cvmx_usb_pipe {
    struct list_head node;
    struct list_head transactions;
    u64 interval;
    u64 next_tx_frame;
    enum cvmx_usb_pipe_flags flags;
    enum cvmx_usb_speed device_speed;
    enum cvmx_usb_transfer transfer_type;
    enum cvmx_usb_direction transfer_dir;
    int multi_count;
    u16 max_packet;
    u8 device_addr;
    u8 endpoint_num;
    u8 hub_device_addr;
    u8 hub_port;
    u8 pid_toggle;
    u8 channel;
    s8 split_sc_frame;
};

πŸ’… Members πŸ’…

okay so every member here is doing its own iconic thing:

  • node β€” List node for pipe list 🧡
  • transactions β€” List of pending transactions πŸ“‹
  • interval β€” For periodic pipes, the interval between packets in frames ⏱️
  • next_tx_frame β€” The next frame this pipe is allowed to transmit on 🚦
  • flags β€” State flags for this pipe 🚩
  • device_speed β€” Speed of device connected to this pipe ⚑
  • transfer_type β€” Type of transaction supported by this pipe πŸ”„
  • transfer_dir β€” IN or OUT. Ignored for Control ↔️
  • multi_count β€” Max packet in a row for the device πŸ“¦
  • max_packet β€” The device's maximum packet size in bytes πŸ“
  • device_addr β€” USB device address at other end of pipe πŸ”Œ
  • endpoint_num β€” USB endpoint number at other end of pipe πŸ”’
  • hub_device_addr β€” Hub address this device is connected to πŸ›°οΈ
  • hub_port β€” Hub port this device is connected to πŸšͺ
  • pid_toggle β€” This toggles between 0/1 on every packet send to track the data pid needed πŸ”
  • channel β€” Hardware DMA channel for this pipe πŸ“‘
  • split_sc_frame β€” The low order bits of the frame number the split complete should be sent on 🧩

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/usb/host/octeon-hcd.c is the main character, and the whole squad is:


mwah πŸ’‹ source/version vibes: ./drivers/usb/host, dated October 2026 β€” and that's the struct cvmx_usb_pipe(9) page, bestie. 🫢

πŸ“¦ where this page comes from