1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * vivid-vid-common.h - common video support functions.
5 * Copyright 2014 Cisco Systems, Inc. and/or its affiliates. All rights reserved.
8 #ifndef _VIVID_VID_COMMON_H_
9 #define _VIVID_VID_COMMON_H_
11 typedef int (*fmtfunc
)(struct file
*file
, void *priv
, struct v4l2_format
*f
);
14 * Conversion function that converts a single-planar format to a
15 * single-plane multiplanar format.
17 void fmt_sp2mp(const struct v4l2_format
*sp_fmt
, struct v4l2_format
*mp_fmt
);
18 int fmt_sp2mp_func(struct file
*file
, void *priv
,
19 struct v4l2_format
*f
, fmtfunc func
);
21 extern const struct v4l2_dv_timings_cap vivid_dv_timings_cap
;
23 const struct vivid_fmt
*vivid_get_format(struct vivid_dev
*dev
, u32 pixelformat
);
25 bool vivid_vid_can_loop(struct vivid_dev
*dev
);
26 void vivid_send_source_change(struct vivid_dev
*dev
, unsigned type
);
28 int vivid_vid_adjust_sel(unsigned flags
, struct v4l2_rect
*r
);
30 int vivid_enum_fmt_vid(struct file
*file
, void *priv
, struct v4l2_fmtdesc
*f
);
31 int vidioc_enum_fmt_vid_mplane(struct file
*file
, void *priv
, struct v4l2_fmtdesc
*f
);
32 int vidioc_enum_fmt_vid(struct file
*file
, void *priv
, struct v4l2_fmtdesc
*f
);
33 int vidioc_g_std(struct file
*file
, void *priv
, v4l2_std_id
*id
);
34 int vidioc_g_dv_timings(struct file
*file
, void *_fh
, struct v4l2_dv_timings
*timings
);
35 int vidioc_enum_dv_timings(struct file
*file
, void *_fh
, struct v4l2_enum_dv_timings
*timings
);
36 int vidioc_dv_timings_cap(struct file
*file
, void *_fh
, struct v4l2_dv_timings_cap
*cap
);
37 int vidioc_g_edid(struct file
*file
, void *_fh
, struct v4l2_edid
*edid
);
38 int vidioc_subscribe_event(struct v4l2_fh
*fh
, const struct v4l2_event_subscription
*sub
);