STRUCT FIMC_MD(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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 to true when 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 level v4l2_device holding 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 β€” true if 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