1 /* SPDX-License-Identifier: GPL-2.0+ */ 2 /* 3 * Copyright (c) 2011-2018 Magewell Electronics Co., Ltd. (Nanjing) 4 * All rights reserved. 5 * Author: Yong Deng <yong.deng@magewell.com> 6 */ 7 8 #ifndef __SUN6I_VIDEO_H__ 9 #define __SUN6I_VIDEO_H__ 10 11 #include <media/v4l2-dev.h> 12 #include <media/videobuf2-core.h> 13 14 struct sun6i_csi; 15 16 struct sun6i_video { 17 struct video_device vdev; 18 struct media_pad pad; 19 struct sun6i_csi *csi; 20 21 struct mutex lock; 22 23 struct vb2_queue vb2_vidq; 24 spinlock_t dma_queue_lock; 25 struct list_head dma_queue; 26 27 unsigned int sequence; 28 struct v4l2_format fmt; 29 u32 mbus_code; 30 }; 31 32 int sun6i_video_init(struct sun6i_video *video, struct sun6i_csi *csi, 33 const char *name); 34 void sun6i_video_cleanup(struct sun6i_video *video); 35 36 void sun6i_video_frame_done(struct sun6i_video *video); 37 38 #endif /* __SUN6I_VIDEO_H__ */ 39