STRUCT RCAR_ISP_CORE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct rcar_isp_core(9) πŸ’–

okay so bestie, welcome to the Kernel API Manual β€” this is the struct rcar_isp_core(9) page and it's literally the main character of the Renesas ISP core world, no cap πŸŽ€


✨ NAME ✨

struct rcar_isp_core β€” the ISP Core, periodt πŸ¦‹


🌸 SYNOPSIS 🌸

like, here's the whole vibe, character for character:

struct rcar_isp_core {
    struct device *dev;
    u32 rppaddr;
    struct clk *clk;
    struct reset_control *rstc;
    struct reset_control *csrstc;
    void __iomem *base;
    void __iomem *csbase;
    struct v4l2_subdev subdev;
    struct media_pad pads[RISP_CORE_NUM_PADS];
    struct v4l2_device v4l2_dev;
    struct rppx1 *rpp;
    struct mutex io_lock;
    struct rcar_isp_core_io io[RISP_CORE_NUM_PADS];
    spinlock_t lock;
    struct rcar_isp_vspx vspx;
    struct list_head risp_jobs;
    unsigned int sequence;
    bool streaming;
 };

πŸ‘‘ Members πŸ‘‘

it's giving tour of every single field, so let's go πŸ”₯

  • dev β€” the (OF) device, the whole reason we're here fr fr
  • rppaddr β€” the hardware address of the RPP ISP, straight from OF πŸ’…
  • clk β€” the clock for the ISP CORE, keeps the heartbeat going ⭐
  • rstc β€” the reset for the ISP Core, one (1) little reset icon
  • csrstc β€” the reset for the ISP Channel Selector, its own separate reset bestie
  • base β€” MMIO base of the ISP CORE, where the CORE lives
  • csbase β€” MMIO base of the ISP CS, where the CS lives 🫢
  • subdev β€” the V4L2 subdevice that represents the ISP CORE, iconic
  • pads β€” the media pad for the subdev πŸŽ€
  • v4l2_dev β€” the V4L2 device, hi queen
  • rpp β€” a handle to the RPP ISP that's connected to the ISP CORE πŸ”—
  • io_lock β€” this one protects io[*].streaming and io[*].buffers, do not skip her
  • io β€” an array of IO ports to the ISP CORE, one per pad, we love an array
  • lock β€” protects vspx, risp_jobs, sequence and streaming β€” she's a spinlock and she's busy πŸ’€
  • vspx β€” a handle to the resources used by VSPX that's connected to the ISP CORE
  • risp_jobs β€” the queue of VSPX transfer jobs, it's giving to-do list 🌈
  • sequence β€” the V4L2 buffers sequence number, counting up like your unread messages
  • streaming β€” tracks whether the device is streaming, yes/no, on/off, the vibe check of the whole struct ✨
ngl bestie, note how io_lock and lock guard different things β€” don't go swapping them, that's not the move πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

  • Kernel file ./drivers/media/platform/renesas/rcar-isp/risp-core.h
  • struct risp_buffer(9)
  • struct rcar_isp_core_io(9)
  • struct rcar_isp_job(9)
  • struct rcar_isp_vspx(9)

go read those next, iykyk πŸ’œ


and that's the page!! mwah πŸ’‹ this one came from ./drivers/media/platform/renes... and it's stamped October 2026 β€” so like, future-coded of it. slay, go touch some registers πŸ§šπŸ’–

πŸ“¦ where this page comes from