19d4fa1a1SMauro Carvalho Chehab /*
29d4fa1a1SMauro Carvalho Chehab  * Support for Medifield PNW Camera Imaging ISP subsystem.
39d4fa1a1SMauro Carvalho Chehab  *
49d4fa1a1SMauro Carvalho Chehab  * Copyright (c) 2010 Intel Corporation. All Rights Reserved.
59d4fa1a1SMauro Carvalho Chehab  *
69d4fa1a1SMauro Carvalho Chehab  * Copyright (c) 2010 Silicon Hive www.siliconhive.com.
79d4fa1a1SMauro Carvalho Chehab  *
89d4fa1a1SMauro Carvalho Chehab  * This program is free software; you can redistribute it and/or
99d4fa1a1SMauro Carvalho Chehab  * modify it under the terms of the GNU General Public License version
109d4fa1a1SMauro Carvalho Chehab  * 2 as published by the Free Software Foundation.
119d4fa1a1SMauro Carvalho Chehab  *
129d4fa1a1SMauro Carvalho Chehab  * This program is distributed in the hope that it will be useful,
139d4fa1a1SMauro Carvalho Chehab  * but WITHOUT ANY WARRANTY; without even the implied warranty of
149d4fa1a1SMauro Carvalho Chehab  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
159d4fa1a1SMauro Carvalho Chehab  * GNU General Public License for more details.
169d4fa1a1SMauro Carvalho Chehab  *
179d4fa1a1SMauro Carvalho Chehab  *
189d4fa1a1SMauro Carvalho Chehab  */
199d4fa1a1SMauro Carvalho Chehab 
209d4fa1a1SMauro Carvalho Chehab #ifndef	__ATOMISP_FOPS_H__
219d4fa1a1SMauro Carvalho Chehab #define	__ATOMISP_FOPS_H__
229d4fa1a1SMauro Carvalho Chehab #include "atomisp_subdev.h"
239d4fa1a1SMauro Carvalho Chehab 
249d4fa1a1SMauro Carvalho Chehab int atomisp_q_video_buffers_to_css(struct atomisp_sub_device *asd,
259d4fa1a1SMauro Carvalho Chehab 				   struct atomisp_video_pipe *pipe,
269d4fa1a1SMauro Carvalho Chehab 				   enum atomisp_input_stream_id stream_id,
279d4fa1a1SMauro Carvalho Chehab 				   enum atomisp_css_buffer_type css_buf_type,
289d4fa1a1SMauro Carvalho Chehab 				   enum atomisp_css_pipe_id css_pipe_id);
299d4fa1a1SMauro Carvalho Chehab 
309d4fa1a1SMauro Carvalho Chehab unsigned int atomisp_dev_users(struct atomisp_device *isp);
319d4fa1a1SMauro Carvalho Chehab unsigned int atomisp_sub_dev_users(struct atomisp_sub_device *asd);
329d4fa1a1SMauro Carvalho Chehab 
339d4fa1a1SMauro Carvalho Chehab /*
349d4fa1a1SMauro Carvalho Chehab  * Memory help functions for image frame and private parameters
359d4fa1a1SMauro Carvalho Chehab  */
369d4fa1a1SMauro Carvalho Chehab 
379d4fa1a1SMauro Carvalho Chehab int atomisp_videobuf_mmap_mapper(struct videobuf_queue *q,
389d4fa1a1SMauro Carvalho Chehab 				 struct vm_area_struct *vma);
399d4fa1a1SMauro Carvalho Chehab 
409d4fa1a1SMauro Carvalho Chehab int atomisp_qbuf_to_css(struct atomisp_device *isp,
419d4fa1a1SMauro Carvalho Chehab 			struct atomisp_video_pipe *pipe,
429d4fa1a1SMauro Carvalho Chehab 			struct videobuf_buffer *vb);
439d4fa1a1SMauro Carvalho Chehab 
449d4fa1a1SMauro Carvalho Chehab int atomisp_qbuffers_to_css(struct atomisp_sub_device *asd);
459d4fa1a1SMauro Carvalho Chehab 
469d4fa1a1SMauro Carvalho Chehab extern const struct v4l2_file_operations atomisp_fops;
479d4fa1a1SMauro Carvalho Chehab 
489d4fa1a1SMauro Carvalho Chehab extern bool defer_fw_load;
499d4fa1a1SMauro Carvalho Chehab 
509d4fa1a1SMauro Carvalho Chehab #endif /* __ATOMISP_FOPS_H__ */
51