STRUCT RZG2L_CRU_DEV(9)
πΈ 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β theCRU_PRESETNreset line πaresetnβ theCRU_ARESETNreset 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β theSVC0/SVC1/SVC2/SVC3to 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 thecount,notifierandcsimembers π do not touch, she's locked.padβ media pad for the video device entity π§hw_lockβ protects theactive_slotcounter, hardware programming of slot addresses and thebuf_addr[]list π very serious, very locked.buf_addrβ memory addresses where current video data is written ππΎactive_slotβ the slot in use π―lockβ protectsqueueπqueueβ vb2 buffers queue πscratchβ cpu address for the scratch buffer π§ β¨scratch_physβ physical address of the scratch buffer π§ πqlockβ protectsqueue_buf,buf_list, andsequenceπ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
- 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