STRUCT XCSI2RXSS_STATE(9)
π 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 tovideo_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:
- Kernel file
./drivers/media/platform/xilinx/xilinx-csi2rxss.c - struct
xcsi2rxss_event(9) xcsi2rxss_soft_reset(9)xcsi2rxss_irq_handler(9)
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
- 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