STRUCT ICVS(9)
β¨ struct icvs(9) β¨
okay so this is a page from the Kernel API Manual and it's literally all about struct icvs β the Core CVS device context π bestie this is the main character struct, the whole vibe of the CVS driver lives in here.
πΈ NAME πΈ
struct icvs β the Core CVS device context, aka the big central ~everything~ struct π
π¦ SYNOPSIS π¦
struct icvs {
struct i2c_client *i2c_client;
struct delayed_work work;
struct icvs_resp wq_resp;
struct completion cmd_completion;
struct mutex lock;
struct v4l2_subdev subdev;
struct media_pad *remote;
struct v4l2_async_notifier notifier;
struct v4l2_ctrl_handler ctrl_handler;
struct v4l2_ctrl *freq_ctrl;
struct media_pad pads[ICVS_CSI_NUM_PADS];
u32 nr_of_lanes;
struct device_link *ipu_link;
enum icvs_resources res;
struct icvs_dev_capabilities caps;
bool prefix;
unsigned long quirks;
struct gpio_desc *rst;
struct gpio_desc *req;
struct gpio_desc *resp;
int irq;
wait_queue_head_t hostwake_event;
bool hostwake_event_arg;
};
likeβ¦ she has EVERYTHING. no cap. π
π Members π
time for the member-by-member tour, bestie, grab a snack π
i2c_clientβ the I2C client. heads up: it'sNULLwhen you're in platform-only mode πworkβ delayed work used for polling device state / completionwq_respβ the last response container, populated by the workqueuecmd_completionβ completion for all the command waiters hanging aroundlockβ mutex protecting command submission & shared state. respect her π«Άsubdevβ the V4L2 sub-device representing the CSI bridge entityremoteβ remote media pad, connected to the upstream camera sensornotifierβ async notifier for remote sensor discoveryctrl_handlerβ the V4L2 control handlerfreq_ctrlβ (future) frequency control pointer. she's not here yet but we're obsessed with her already βpadsβ local media pads (sink/source)nr_of_lanesβ active CSI-2 lane countipu_linkβ PM runtime device link (IPU consumer, CVS supplier)resβ resource capability (light/full)capsβ the device protocol capabilities as reportedprefixβ firmware response prefix presentquirksβ device-specific quirk flagsrstβ Reset GPIO (full capability only)reqβ Request GPIO (ownership signaling)respβ Response GPIO (ownership signaling)irqβ wake IRQ (full capability)hostwake_eventβ waitqueue for wake eventshostwake_event_argβ the wake event flag
π SEE ALSO π
Kernel file ./drivers/media/i2c/cvs/icvs.h, plus the whole friend group: enum icvs_csi_cmd_id(9), enum icvs_csi_link_owner(9), enum icvs_csi_privacy_status(9), enum icvs_csi_pads(9), CVS device quirk flags(9), struct icvs_device_quirk(9), struct icvs_dt_config(9), struct icvs_vc_config(9), struct icvs_link_cfg(9), struct icvs_fw_version(9), struct icvs_vid_pid(9), struct icvs_mipi_data_packet(9), struct icvs_mipi_read_packet(9), struct icvs_dev_capabilities(9), struct icvs_cmd(9), struct icvs_resp(9), enum icvs_resources(9), enum icvs_command(9), enum icvs_state(9), cvs_dev(9) π
ngl, if you're touching any of the above, you're gonna want this struct open in another window. iykyk π₯
that's the whole page bestie, slay π
β¨ this one came from ./drivers/media/i2c/cvs and it's dated October 2026 β periodt, go read the header file now π§π
π¦ 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