STRUCT CSIS_STATE(9)
π struct csis_state(9) π
okay so bestie, welcome to the Kernel API Manual, section 9 β this page is literally all about struct csis_state, which is the driver's internal state data structure. like, it's the main character of the whole s5p-mipi-csis situation. let's get into it π
β¨ SYNOPSIS β¨
here's the whole shape of it, bestie β every field, no skips:
struct csis_state {
struct mutex lock;
struct media_pad pads[CSIS_PADS_NUM];
struct v4l2_subdev sd;
u8 index;
struct platform_device *pdev;
struct phy *phy;
void __iomem *regs;
struct regulator_bulk_data supplies[CSIS_NUM_SUPPLIES];
struct clk *clock[NUM_CSIS_CLOCKS];
int irq;
u32 interrupt_mask;
u32 flags;
u32 clk_frequency;
u32 hs_settle;
u32 num_lanes;
u32 max_num_lanes;
u8 wclk_ext;
const struct csis_pix_format *csis_fmt;
struct v4l2_mbus_framefmt format;
spinlock_t slock;
struct csis_pktbuf pkt_buf;
struct s5pcsis_event events[S5PCSIS_NUM_EVENTS];
};
π¦ no cap, that's the whole vibe right there.
πΈ Members πΈ
okay now the part you actually came for β member by member, let's go π
lockβ a mutex that serializes the subdev and power management operations, and it also protects theformatandflagsmembers. it's giving bouncer at the club πpadsβ the CSIS pads array. iconic.sdβ thev4l2_subdevthat's associated with this CSIS device instance.indexβ the hardware instance index. which one are we, bestie?pdevβ the CSIS platform device.phyβ pointer to the CSIS generic PHY.regsβ the mmapped I/O registers memory. that's where the registers live πsuppliesβ the CSIS regulator supplies.clockβ the CSIS clocks. plural, she's got a whole collection β°irqβ the requesteds5p-mipi-csisirq number.interrupt_maskβ the interrupt mask of all the used interrupts.flagsβ the state variable for power and streaming control. very "am i on, am i streaming" of her.clk_frequencyβ the device bus clock frequency.hs_settleβ the HS-RX settle time.num_lanesβ number of MIPI-CSI data lanes used.max_num_lanesβ maximum number of MIPI-CSI data lanes supported. yes she can do more, she's just choosing not to πwclk_extβ CSI wrapper clock:0- bus clock,1- externalSCLK_CAM. two options, pick your fighter βcsis_fmtβ the current CSIS pixel format.formatβ the common media bus format for the source and sink pad.slockβ a spinlock protecting the structure members below. she's the guard dog for the next few fields πpkt_bufβ the frame embedded (non-image) data buffer.eventsβ MIPI-CSIS event (error) counters. keeping receipts on every error π₯
π SEE ALSO π
go touch grass in these files, iykyk:
- Kernel file
./drivers/media/platform/samsung/exynos4-is/mipi-csis.c struct csis_pix_format(9)
and that's the whole page, bestie π«Ά fr fr you ate that. this lil number came to you from the source path ./drivers/media/platform/samsu... and it's dated October 2026 β so like, future vibes only πβ¨π
π¦ 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