/* SPDX-License-Identifier: GPL-2.0+ */ 
 | 
/* 
 | 
 * Copyright (c) 2011-2018 Magewell Electronics Co., Ltd. (Nanjing) 
 | 
 * All rights reserved. 
 | 
 * Author: Yong Deng <yong.deng@magewell.com> 
 | 
 */ 
 | 
  
 | 
#ifndef __SUN6I_VIDEO_H__ 
 | 
#define __SUN6I_VIDEO_H__ 
 | 
  
 | 
#include <media/v4l2-dev.h> 
 | 
#include <media/videobuf2-core.h> 
 | 
  
 | 
struct sun6i_csi; 
 | 
  
 | 
struct sun6i_video { 
 | 
    struct video_device        vdev; 
 | 
    struct media_pad        pad; 
 | 
    struct sun6i_csi        *csi; 
 | 
  
 | 
    struct mutex            lock; 
 | 
  
 | 
    struct vb2_queue        vb2_vidq; 
 | 
    spinlock_t            dma_queue_lock; 
 | 
    struct list_head        dma_queue; 
 | 
  
 | 
    unsigned int            sequence; 
 | 
    struct v4l2_format        fmt; 
 | 
    u32                mbus_code; 
 | 
}; 
 | 
  
 | 
int sun6i_video_init(struct sun6i_video *video, struct sun6i_csi *csi, 
 | 
             const char *name); 
 | 
void sun6i_video_cleanup(struct sun6i_video *video); 
 | 
  
 | 
void sun6i_video_frame_done(struct sun6i_video *video); 
 | 
  
 | 
#endif /* __SUN6I_VIDEO_H__ */ 
 |