STRUCT FIMC_LITE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct fimc_lite(9) πŸ’…

okay bestie, welcome to the Kernel API Manual ✨ β€” today we're getting deep into the fimc lite structure and honestly? it's giving main character energy for the whole Exynos camera pipeline πŸ“ΈπŸ’–


🌈 SYNOPSIS 🌈

like, here's the whole vibe of the struct, character for character, no notes:

struct fimc_lite {
    struct platform_device  *pdev;
    struct flite_drvdata    *dd;
    struct exynos_video_entity ve;
    struct v4l2_device      *v4l2_dev;
    struct v4l2_fh          fh;
    struct v4l2_subdev      subdev;
    struct media_pad        vd_pad;
    struct media_pad        subdev_pads[FLITE_SD_PADS_NUM];
    struct v4l2_subdev      *sensor;
    struct v4l2_ctrl_handler ctrl_handler;
    struct v4l2_ctrl        *test_pattern;
    int index;
    struct mutex            lock;
    spinlock_t slock;
    struct clk              *clock;
    void __iomem            *regs;
    wait_queue_head_t irq_queue;
    unsigned long           payload[FLITE_MAX_PLANES];
    struct flite_frame      inp_frame;
    struct flite_frame      out_frame;
    atomic_t out_path;
    unsigned int            source_subdev_grp_id;
    unsigned long           state;
    struct list_head        pending_buf_q;
    struct list_head        active_buf_q;
    struct vb2_queue        vb_queue;
    unsigned short          buf_index;
    unsigned int            frame_count;
    unsigned int            reqbufs_count;
    struct fimc_lite_events events;
    bool streaming;
 };

πŸŽ€ Members πŸŽ€

  • pdev β€” pointer to the FIMC-LITE platform device 🫢
  • dd β€” the SoC specific driver data structure, iykyk
  • ve β€” exynos video device entity structure ✨
  • v4l2_dev β€” pointer to top the level v4l2_device (yes, "top the level", that's what it says, periodt)
  • fh β€” v4l2 file handle 🎫
  • subdev β€” the FIMC-LITE subdev πŸ’…
  • vd_pad β€” media (sink) pad for the capture video node
  • subdev_pads β€” the subdev media pads, plural, we love an array
  • sensor β€” sensor subdev attached to FIMC-LITE directly or through MIPI-CSIS πŸ“·
  • ctrl_handler β€” v4l2 control handler πŸŽ›οΈ
  • test_pattern β€” test pattern controls πŸ§ͺ
  • index β€” FIMC-LITE platform device index
  • lock β€” mutex serializing video device and the subdev operations πŸ”’
  • slock β€” spinlock protecting this data structure and the hw registers, no cap, it's doing the most
  • clock β€” FIMC-LITE gate clock ⏰
  • regs β€” memory mapped io registers
  • irq_queue β€” interrupt handler waitqueue 😴 (it waits, respectfully)
  • payload β€” image size in bytes (w x h x bpp) πŸ“
  • inp_frame β€” camera input frame structure 🎬
  • out_frame β€” DMA output frame structure πŸ“€
  • out_path β€” output data path (DMA or FIFO)
  • source_subdev_grp_id β€” source subdev group id πŸ†”
  • state β€” driver state flags 🚩
  • pending_buf_q β€” pending buffers queue head
  • active_buf_q β€” the queue head of buffers scheduled in hardware πŸ”₯
  • vb_queue β€” vb2 buffers queue πŸ“š
  • buf_index β€” helps to keep track of the DMA start address register index
  • frame_count β€” the captured frames counter πŸ”’
  • reqbufs_count β€” the number of buffers requested with REQBUFS ioctl
  • events β€” event info πŸŽ‰
  • streaming β€” is streaming in progress? literally the whole question πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/media/platform/samsung/exynos4-is/fimc-lite.h πŸ“
  • struct flite_drvdata(9), struct flite_frame(9), struct flite_buffer(9) β€” go read these next bestie, they're iconic πŸ‘‘

and that's the tea β˜•πŸ’– this page came from ./drivers/media/platform/samsu... and it's dated October 2026, so like, future vibes only 🌸🫢 slay, and remember: know your structs, know yourself βœ¨πŸ’…

πŸ“¦ where this page comes from