STRUCT FIMC_MD(9)
π NAME π
okay so struct fimc_md β that's literally the fimc media device information struct, bestie. like, this is the big one that holds the whole media device's info together β¨ (and yes, we're in the Kernel API Manual, section 9, for all my fellow kernel girlies out there π«Ά).
β¨ SYNOPSIS β¨
no cap, here's the whole shape of it, character for character:
struct fimc_md {
struct fimc_csis_info csis[CSIS_MAX_ENTITIES];
struct fimc_sensor_info sensor[FIMC_MAX_SENSORS];
int num_sensors;
struct fimc_camclk_info camclk[FIMC_MAX_CAMCLKS];
struct clk *wbclk[FIMC_MAX_WBCLKS];
struct fimc_lite *fimc_lite[FIMC_LITE_MAX_DEVS];
struct fimc_dev *fimc[FIMC_MAX_DEVS];
struct fimc_is *fimc_is;
bool use_isp;
struct device *pmf;
struct media_device media_dev;
struct v4l2_device v4l2_dev;
struct platform_device *pdev;
struct cam_clk_provider {
struct clk *clks[FIMC_MAX_CAMCLKS];
struct clk_onecell_data clk_data;
struct device_node *of_node;
struct cam_clk camclk[FIMC_MAX_CAMCLKS];
int num_clocks;
} clk_provider;
struct v4l2_async_notifier subdev_notifier;
bool user_subdev_api;
spinlock_t slock;
struct list_head pipelines;
struct media_graph link_setup_graph;
};
like... look at her. she's giving main character energy π (and yes, that nested struct cam_clk_provider { ... } clk_provider; is living inside her, we love a struct that contains a struct π
).
πΈ MEMBERS πΈ
okay bestie, let's go member by member, because every single one of these matters, and I refuse to skip any π
csisβ the MIPI CSIS subdevs data. that's the csis info, holding it down πsensorβ array of registered sensor subdevs. all the sensors, registered, in an array, iconic.num_sensorsβ the actual number of registered sensors. like the real, lived count π₯camclkβ external sensor clock information. clock info for the external sensors, periodt.wbclkβ external writeback clock information. writeback clocks, external, exactly what it says πΈfimc_liteβ array of registered fimc-lite devices. the lite ones, and yes they're still registered π¦fimcβ array of registered fimc devices. the full-size ones, same deal β¨fimc_isβ the fimc-is data structure. it's right there, being a data structure.use_ispβ set totruewhen the FIMC-IS subsystem is used. otherwise it's not true, and that's the whole vibe check πpmfβ handle to the CAMCLK clock control FIMC helper device. a handle, bestie, a whole handle π«Άmedia_devβ top level media device. she's at the top, as she should be πv4l2_devβ the top levelv4l2_deviceholding up the subdevs. literally holding them up π carrying the whole team.pdevβ the platform device this media device is hooked up into. hooked up. attached. committed πclk_providerβ CAMCLK clock provider structure. the provider of the CAMCLK clocks, no notes.subdev_notifierβ notifier for the subdevs. it notifies. about subdevs. we stan a straightforward queen πuser_subdev_apiβtrueif the subdevs are not configured by the host driver. read that carefully ngl, it's a not situation πslockβ spinlock protecting the sensor array. do NOT forget the lock, I'm serious, that array is protected π (okay that's me being dramatic but it really is a spinlock protecting the sensor array π)pipelinesβ list of pipelines. a whole list, of pipelines βlink_setup_graphβ the graph iterator. it iterates the graph, and honestly? slay.
π¦ SEE ALSO π¦
- Kernel file
./drivers/media/platform/samsung/exynos4-is/media-dev.hβ go read the header, iykyk π struct fimc_sensor_info(9)β the sensor info struct's very own page, go give her a visit π
lowkey important: everything above is exactly what the page says β I'm just the messenger with better emoji, fr fr π
that's the whole page bestie, you ate that π β source ./drivers/media/platform/samsu..., Kernel API Manual, dated October 2026, and that's a wrap, mwah π π
π¦ 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