STRUCT XCSI2RXSS_STATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct xcsi2rxss_state(9) β€” CSI-2 Rx Subsystem device structure πŸ’–

okay bestie, welcome to the Kernel API Manual entry for struct xcsi2rxss_state(9) β€” the actual main-character struct of the CSI-2 Rx Subsystem. this is the whole vibe-coded dossier of everything the driver needs to keep track of, and we're gonna go through every single field together. no skipping. periodt. ✨


🌸 SYNOPSIS 🌸

here's the full struct, exactly as it lives, bestie β€” do not touch, do not "clean up", just vibe check it:

struct xcsi2rxss_state {
    struct v4l2_subdev subdev;
    struct v4l2_mbus_framefmt format;
    struct v4l2_mbus_framefmt default_format;
    u32 events[XCSI_NUM_EVENTS];
    u32 vcx_events[XCSI_VCX_NUM_EVENTS];
    struct device *dev;
    struct v4l2_subdev *rsubdev;
    struct gpio_desc *rst_gpio;
    struct clk_bulk_data *clks;
    void __iomem *iomem;
    u32 max_num_lanes;
    u32 datatype;
    struct mutex lock;
    struct media_pad pads[XCSI_MEDIA_PADS];
    bool streaming;
    bool enable_active_lanes;
    bool en_vcx;
};

πŸ¦‹ MEMBERS πŸ¦‹

every field, one by one, with the lore attached. slay. πŸ’…

  • subdev β€” The v4l2 subdev structure. literally the subdev's whole identity card. πŸ‘‘
  • format β€” Active V4L2 formats on each pad. this is the currently happening format energy, per pad. πŸ”₯
  • default_format β€” Default V4L2 format. the fallback fit, iykyk. πŸŽ€
  • events β€” counter for events. keeping tally, fr fr. ⭐
  • vcx_events β€” counter for vcx_events. yeah, the vcx-flavoured tally, separate account. πŸ“
  • dev β€” Platform structure. the device's home base. 🏠
  • rsubdev β€” Remote subdev connected to sink pad. the neighbor on the other end of the wire, lowkey iconic. 🌈
  • rst_gpio β€” reset to video_aresetn. that's the reset line, bestie, do not poke it for fun. πŸ™ˆ
  • clks β€” array of clocks. plural. a whole array. tick tock. ⏰
  • iomem β€” Base address of subsystem. where the registers actually live. πŸ’€
  • max_num_lanes β€” Maximum number of lanes present. how many lanes we got, max. πŸ›£οΈ
  • datatype β€” Data type filter. it decides what data types pass the vibe check. 🧚
  • lock β€” mutex for accessing this structure. do NOT touch the struct without holding this. seriously. it's the rule. πŸ’œ
  • pads β€” media pads. the connection points, plural, obviously. πŸ”Œ
  • streaming β€” Flag for storing streaming state. are we streaming or are we not, that is the question. πŸŽ₯
  • enable_active_lanes β€” If number of active lanes can be modified. basically: is changing the active lane count even allowed rn. 🚦
  • en_vcx β€” If more than 4 VC are enabled. four-plus virtual channels? this flag knows. ✨

πŸ’« DESCRIPTION πŸ’«

This structure contains the device driver related parameters. that's it, that's the whole description β€” but like, it's the entire driver-state brain trust in one struct, so show some respect. 🫢


⭐ SEE ALSO ⭐

go read these next, bestie, they're all in the same kernel file:


and that's the page!! πŸŽ€ this little masterpiece lives at ./drivers/media/platform/xilinx, and it's dated October 2026 β€” so yeah, it's from the future, we stay ahead. mwah, go read the kernel source, ily, bye πŸ’–

πŸ“¦ where this page comes from