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