STRUCT V4L2_SUBDEV_PLATFORM_DATA(9)
π NAME π
struct v4l2_subdev_platform_data β the regulators config struct, bestie π
(also hi, this is the Kernel API Manual, section 9 β the kernel docs girlies know β¨)
β¨ SYNOPSIS β¨
okay so here's the whole struct, no cap, exactly as it lives:
struct v4l2_subdev_platform_data {
struct regulator_bulk_data *regulators;
int num_regulators;
void *host_priv;
};
three fields. that's it. she's small but she's doing something, i promise π«Ά
π§ Members π§
regulatorsβ optional, key word optional π these are the regulators used to power the subdevice on and off. if you don't need 'em, you don't need 'em.num_regulatorsβ the number of regulators. like, how many are in thatregulatorssituation. count 'em πhost_privβ per-subdevice data, and it's specific for a certain video host device. it's avoid *, so it's giving "i contain multitudes" π it's yours to point at whatever host-specific thing you need.
π₯ SEE ALSO π₯
first up, the kernel file herself: ./include/media/v4l2-subdev.h β that's where this struct is living her best life π β¨
and then, buckle up bestie, because the friend group is large, and i'm listing every single one of them because that's what she deserves π
the vbi / pin / core crew
struct v4l2_decode_vbi_line(9)enum v4l2_subdev_io_pin_bits(9)struct v4l2_subdev_io_pin_config(9)struct v4l2_subdev_core_ops(9)struct v4l2_subdev_tuner_ops(9)struct v4l2_subdev_audio_ops(9)
the mbus frame desc situation
struct v4l2_mbus_frame_desc_entry_csi2(9)enum v4l2_mbus_frame_desc_flags(9)struct v4l2_mbus_frame_desc_entry(9)enum v4l2_mbus_frame_desc_type(9)struct v4l2_mbus_frame_desc(9)
the ops girlies
enum v4l2_subdev_pre_streamon_flags(9)struct v4l2_subdev_video_ops(9)struct v4l2_subdev_vbi_ops(9)struct v4l2_subdev_sensor_ops(9)enum v4l2_subdev_ir_mode(9)struct v4l2_subdev_ir_parameters(9)struct v4l2_subdev_ir_ops(9)struct v4l2_subdev_pad_config(9)struct v4l2_subdev_stream_configs(9)struct v4l2_subdev_krouting(9)struct v4l2_subdev_state(9)struct v4l2_subdev_pad_ops(9)struct v4l2_subdev_ops(9)struct v4l2_subdev_internal_ops(9)struct v4l2_subdev(9)
the "wait, which subdev was that again" converters
media_entity_to_v4l2_subdev(9)vdev_to_v4l2_subdev(9)struct v4l2_subdev_fh(9)to_v4l2_subdev_fh(9)
the data getters & setters (they ate, ngl)
v4l2_set_subdevdata(9)v4l2_get_subdevdata(9)v4l2_set_subdev_hostdata(9)v4l2_get_subdev_hostdata(9)v4l2_subdev_get_fwnode_pad_1_to_1(9)
link validate & state lifecycle π±
v4l2_subdev_link_validate_default(9)v4l2_subdev_link_validate(9)v4l2_subdev_has_pad_interdep(9)__v4l2_subdev_state_alloc(9)__v4l2_subdev_state_free(9)v4l2_subdev_init_finalize(9)v4l2_subdev_cleanup(9)
state getters, the whole collection π
v4l2_subdev_state_get_format(9)v4l2_subdev_state_get_crop(9)v4l2_subdev_state_get_compose(9)v4l2_subdev_state_get_interval(9)v4l2_subdev_get_fmt(9)v4l2_subdev_get_frame_interval(9)
routing era π
v4l2_subdev_set_routing(9)for_each_active_route(9)v4l2_subdev_set_routing_with_fmt(9)v4l2_subdev_routing_find_opposite_end(9)v4l2_subdev_state_get_opposite_stream_format(9)v4l2_subdev_state_xlate_streams(9)enum v4l2_subdev_routing_restriction(9)v4l2_subdev_routing_validate(9)
streams on / streams off π¬
frame desc passthrough
locking, because of course π
v4l2_subdev_lock_state(9)v4l2_subdev_unlock_state(9)v4l2_subdev_lock_states(9)v4l2_subdev_unlock_states(9)v4l2_subdev_get_unlocked_active_state(9)v4l2_subdev_get_locked_active_state(9)v4l2_subdev_lock_and_get_active_state(9)
calls, init & misc icons π
v4l2_subdev_init(9)v4l2_subdev_call(9)v4l2_subdev_call_state_active(9)v4l2_subdev_call_state_try(9)v4l2_subdev_has_op(9)v4l2_subdev_notify_event(9)v4l2_subdev_is_streaming(9)
fr fr that's the whole list, i didn't skip a single one, because gatekeeping docs is not the vibe π
and that's the page, bestie π¦ this one lives in ./include/media, and the version of record is dated October 2026 β so like, mark your calendars, mwah π 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