FILE
ipu6-isys-subdev.h
File preview with syntax highlighting.
linux-6.19.14/drivers/media/pci/intel/ipu6/ipu6-isys-subdev.h
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* Copyright (C) 2013--2024 Intel Corporation */ 3 4#ifndef IPU6_ISYS_SUBDEV_H 5#define IPU6_ISYS_SUBDEV_H 6 7#include <linux/container_of.h> 8 9#include <media/media-entity.h> 10#include <media/v4l2-ctrls.h> 11#include <media/v4l2-subdev.h> 12 13struct ipu6_isys; 14 15struct ipu6_isys_subdev { 16 struct v4l2_subdev sd; 17 struct ipu6_isys *isys; 18 u32 const *supported_codes; 19 struct media_pad *pad; 20 struct v4l2_ctrl_handler ctrl_handler; 21 void (*ctrl_init)(struct v4l2_subdev *sd); 22 int source; /* SSI stream source; -1 if unset */ 23}; 24 25#define to_ipu6_isys_subdev(__sd) \ 26 container_of(__sd, struct ipu6_isys_subdev, sd) 27 28unsigned int ipu6_isys_mbus_code_to_bpp(u32 code); 29unsigned int ipu6_isys_mbus_code_to_mipi(u32 code); 30bool ipu6_isys_is_bayer_format(u32 code); 31u32 ipu6_isys_convert_bayer_order(u32 code, int x, int y); 32 33int ipu6_isys_subdev_set_fmt(struct v4l2_subdev *sd, 34 struct v4l2_subdev_state *state, 35 struct v4l2_subdev_format *fmt); 36int ipu6_isys_subdev_enum_mbus_code(struct v4l2_subdev *sd, 37 struct v4l2_subdev_state *state, 38 struct v4l2_subdev_mbus_code_enum 39 *code); 40u32 ipu6_isys_get_src_stream_by_src_pad(struct v4l2_subdev *sd, u32 pad); 41int ipu6_isys_get_stream_pad_fmt(struct v4l2_subdev *sd, u32 pad, u32 stream, 42 struct v4l2_mbus_framefmt *format); 43int ipu6_isys_get_stream_pad_crop(struct v4l2_subdev *sd, u32 pad, u32 stream, 44 struct v4l2_rect *crop); 45int ipu6_isys_subdev_set_routing(struct v4l2_subdev *sd, 46 struct v4l2_subdev_state *state, 47 enum v4l2_subdev_format_whence which, 48 struct v4l2_subdev_krouting *routing); 49int ipu6_isys_subdev_init(struct ipu6_isys_subdev *asd, 50 const struct v4l2_subdev_ops *ops, 51 unsigned int nr_ctrls, 52 unsigned int num_sink_pads, 53 unsigned int num_source_pads); 54void ipu6_isys_subdev_cleanup(struct ipu6_isys_subdev *asd); 55#endif /* IPU6_ISYS_SUBDEV_H */
~/
Read-only file preview.