STRUCT DCMIPP_ENT_DEVICE(9)
π struct_dcmipp_ent_device(9) π
okay so bestie, welcome to the Kernel API Manual β this is the page for struct dcmipp_ent_device, and it's literally the core struct that represents a node in the topology. yes, THE core one. main character energy fr fr π
β¨ NAME β¨
struct dcmipp_ent_device β the core struct that represents a node in the topology π«Ά
π SYNOPSIS π
struct dcmipp_ent_device {
struct media_entity *ent;
struct media_pad *pads;
struct v4l2_mbus_config_parallel bus;
enum v4l2_mbus_type bus_type;
irq_handler_t handler;
irqreturn_t handler_ret;
irq_handler_t thread_fn;
};
like, that's the whole shape of it. no cap π
πΈ Members πΈ
entβ the pointer tostruct media_entityfor the node. it's giving "where am i in the topology" energy π¦padsβ the list of pads of the node. all of them. every single pad πbusβ astruct v4l2_mbus_config_paralleldescribing the input bus πbus_typeβ type of input bus (parallel or BT656). iykyk πhandlerβ irq handler dedicated to the subdev β‘handler_retβ value returned by the irq handler π¬thread_fnβ threaded irq handler π§΅
π Description π
so here's the vibe: the DCMIPP provides a single IRQ line and a IRQ status registers for all subdevs. yep, ONE line for everybody. so once the main irq handler (registered at probe time) is called, it will chain calls to the irq handler of each the subdevs of the pipelines, using the handler/handler_ret/thread_fn variables. it's a whole relay race, honestly πββοΈ
Each node of the topology must create a dcmipp_ent_device struct. literally every node. Depending on the node it will be of an instance of v4l2_subdev or video_device struct where both contains a struct media_entity. Those structures should embedded the dcmipp_ent_device struct through v4l2_set_subdevdata and video_set_drvdata respectivaly, allowing the dcmipp_ent_device struct to be retrieved from the corresponding struct media_entity. see what they did there? embedding so you can always find your way back home π‘β¨
ngl, the embedding-through-v4l2_set_subdevdata-and-video_set_drvdatathing is the whole trick β that's how thedcmipp_ent_devicegets retrieved back out of thestruct media_entity. iconic behavior, tbh π
π SEE ALSO π
Kernel file ./drivers/media/platform/st/stm32/stm32-dcmipp/dcmipp-common.h plus the whole friend group:
dcmipp_colorimetry_clamp(9)dcmipp_pads_init(9)dcmipp_pads_cleanup(9)dcmipp_ent_sd_register(9)dcmipp_ent_sd_unregister(9)
and that's the page bestie!! π mwah π this one came from ./drivers/media/platform/st/st... and it's dated October 2026, so like, future vibes only βπ¦ go forth and build your topology nodes, you've got this π
π¦ 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