STRUCT RVIN_DEV(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct rvin_dev(9)

okay so this page lives in the Kernel API Manual, and bestie, it's literally a whole tour of struct rvin_dev β€” the Renesas VIN device structure. grab a strawberry drink πŸ“ and let's get into it.


✨ NAME ✨

struct rvin_dev β€” the Renesas VIN device structure. that's it, that's the vibe. πŸ’œ


πŸ¦‹ SYNOPSIS πŸ¦‹

struct rvin_dev {
    struct device *dev;
    void __iomem *base;
    const struct rvin_info *info;
    struct video_device vdev;
    struct v4l2_device v4l2_dev;
    struct v4l2_ctrl_handler ctrl_handler;
    struct rvin_parallel_entity parallel;
    struct rvin_group *group;
    unsigned int id;
    struct media_pad pad;
    struct mutex lock;
    struct vb2_queue queue;
    void *scratch;
    dma_addr_t scratch_phys;
    spinlock_t qlock;
    struct {
      struct vb2_v4l2_buffer *buffer;
      dma_addr_t phys;
    } buf_hw[HW_BUFFER_NUM];
    struct list_head buf_list;
    unsigned int sequence;
    bool running;
    bool is_csi;
    unsigned int chsel;
    u32 mbus_code;
    struct v4l2_pix_format format;
    struct v4l2_rect crop;
    struct v4l2_rect compose;
    void (*scaler)(struct rvin_dev *vin);
    unsigned int alpha;
 };

like, look at her. main character energy fr fr πŸ‘‘


πŸŽ€ MEMBERS πŸŽ€

  • dev β€” the (OF) device. she's the anchor, the literal source of truth for this whole struct πŸ’–
  • base β€” the device I/O register space, remapped to virtual memory. iykyk 🌸
  • info β€” info about the VIN instance. the lore, basically ✨
  • vdev β€” the V4L2 video device associated with VIN πŸŽ€
  • v4l2_dev β€” the V4L2 device πŸ¦‹
  • ctrl_handler β€” the V4L2 control handler. handle it πŸ’…
  • parallel β€” parallel input subdevice descriptor 🌈
  • group β€” Gen3 CSI group πŸ‘‘
  • id β€” Gen3 group id for this VIN. know your id bestie 🫢
  • pad β€” media pad for the video device entity ⭐
  • lock β€” protects queue πŸ”’
  • queue β€” vb2 buffers queue 🧚
  • scratch β€” cpu address for scratch buffer πŸ“
  • scratch_phys β€” physical address of the scratch buffer πŸ“
  • qlock β€” protects buf_hw, buf_list, sequence and running. so many things, but she's got it πŸ”₯
  • buf_hw β€” keeps track of buffers given to HW slot πŸ‘€
  • buf_list β€” list of queued buffers πŸ’€
  • sequence β€” V4L2 buffers sequence number πŸ”’
  • running β€” keeps track of if the VIN is running. are you running? are you okay? πŸƒβ€β™€οΈ
  • is_csi β€” flag to mark the VIN as using a CSI-2 subdevice 🌟
  • chsel β€” cached value of the current CSI-2 channel selection πŸ“Ί
  • mbus_code β€” media bus format code πŸ’«
  • format β€” active V4L2 pixel format 🎨
  • crop β€” active cropping βœ‚οΈ
  • compose β€” active composing πŸ–ΌοΈ
  • scaler β€” optional scaler. optional but iconic 🌸
  • alpha β€” alpha component to fill in for supported pixel formats. translucent era 🫧
ngl there are a lot of members here, and every single one of them is doing her own little job. no cap. not one of them is dead weight πŸ’…

🌟 SEE ALSO 🌟

  • Kernel file ./drivers/media/platform/renesas/rcar-vin/rcar-vin.h
  • struct rvin_video_format(9)
  • struct rvin_parallel_entity(9)
  • struct rvin_group_route(9)
  • struct rvin_info(9)
  • struct rvin_group(9)

like, go read those next. they're all in their flop era until you do πŸ¦‹


okay that's the whole page!! this one came from ./drivers/media/platform/renes... and it's dated October 2026 β€” so yeah, future icon behavior πŸ‘‘βœ¨ thanks for reading, ily, now go write some kernel code πŸ’–

struct rvin_dev(9) β€” periodt πŸŽ€

πŸ“¦ where this page comes from