STRUCT RZG2L_CRU_DEV(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct rzg2l_cru_dev(9) 🌸

okay bestie, welcome to the Kernel API Manual πŸ’– this is literally the page for struct rzg2l_cru_dev(9) β€” the Renesas CRU device structure. no cap, it's giving "one struct to rule the whole CRU" energy and I'm obsessed. πŸŽ€


✨ NAME ✨

struct rzg2l_cru_dev β€” Renesas CRU device structure πŸ’…


πŸ’… SYNOPSIS πŸ’…

struct rzg2l_cru_dev {
    struct device *dev;
    void __iomem *base;
    const struct rzg2l_cru_info *info;
    struct reset_control *presetn;
    struct reset_control *aresetn;
    struct clk *vclk;
    struct video_device vdev;
    struct v4l2_device v4l2_dev;
    u8 num_buf;
    u8 svc_channel;
    struct v4l2_async_notifier notifier;
    struct rzg2l_cru_ip ip;
    struct rzg2l_cru_csi csi;
    struct media_device mdev;
    struct mutex mdev_lock;
    struct media_pad pad;
    spinlock_t hw_lock;
    dma_addr_t buf_addr[RZG2L_CRU_HW_BUFFER_DEFAULT];
    unsigned int active_slot;
    struct mutex lock;
    struct vb2_queue queue;
    void *scratch;
    dma_addr_t scratch_phys;
    spinlock_t qlock;
    struct vb2_v4l2_buffer *queue_buf[RZG2L_CRU_HW_BUFFER_MAX];
    struct list_head buf_list;
    unsigned int sequence;
    struct v4l2_pix_format format;
};

no notes, she's perfect πŸ’…βœ¨


πŸ‘‘ MEMBERS πŸ‘‘

okay so let's meet the whole cast, every single one, fr fr β€” no member left behind 🫢

  • dev β€” the (OF) device πŸ’– like, the parent device, the whole reason we're here.
  • base β€” the device I/O register space, remapped to virtual memory ✨ the hardware's home address, basically.
  • info β€” info about the CRU instance 🌸 the lore.
  • presetn β€” the CRU_PRESETN reset line πŸŽ€
  • aresetn β€” the CRU_ARESETN reset line πŸ’…
  • vclk β€” the CRU Main clock ⏰ iconic behavior.
  • vdev β€” the V4L2 video device associated with the CRU πŸŽ₯ main character.
  • v4l2_dev β€” the V4L2 device πŸ¦‹
  • num_buf β€” holds the current number of buffers enabled πŸ”’
  • svc_channel β€” the SVC0/SVC1/SVC2/SVC3 to use for RZ/G3E 🚦 choose your fighter.
  • notifier β€” the V4L2 asynchronous subdevs notifier πŸ“£
  • ip β€” image processing subdev info πŸ–ΌοΈ
  • csi β€” CSI info πŸ“·
  • mdev β€” media device 🎬
  • mdev_lock β€” protects the count, notifier and csi members πŸ”’ do not touch, she's locked.
  • pad β€” media pad for the video device entity 🧚
  • hw_lock β€” protects the active_slot counter, hardware programming of slot addresses and the buf_addr[] list πŸ” very serious, very locked.
  • buf_addr β€” memory addresses where current video data is written πŸ“πŸ’Ύ
  • active_slot β€” the slot in use 🎯
  • lock β€” protects queue πŸ”’
  • queue β€” vb2 buffers queue πŸ“š
  • scratch β€” cpu address for the scratch buffer 🧠✨
  • scratch_phys β€” physical address of the scratch buffer πŸ§ πŸ“
  • qlock β€” protects queue_buf, buf_list, and sequence πŸ”
  • queue_buf β€” keeps track of buffers given to the HW slot πŸ—‚οΈ
  • buf_list β€” list of queued buffers πŸ“‹
  • sequence β€” V4L2 buffers sequence number πŸ”’
  • format β€” active V4L2 pixel format 🎨

🌈 SEE ALSO 🌈

  • Kernel file ./drivers/media/platform/renesas/rzg2l-cru/rzg2l-cru.h πŸ“
  • struct rzg2l_cru_ip_format(9) πŸ’œ

and that's the whole page, bestie! πŸŽ€ brought to you by the source/version line ./drivers/media/platform/renes... and dated October 2026 β€” yeah the footer got a lil truncated but she's still iconic πŸ’…βœ¨ periodt.

πŸ“¦ where this page comes from