61 lines
1.4 KiB
C
61 lines
1.4 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd. */
|
|
|
|
#ifndef _RKISPP_DEV_H
|
|
#define _RKISPP_DEV_H
|
|
|
|
#include "ispp.h"
|
|
#include "params.h"
|
|
#include "stream.h"
|
|
#include "stats.h"
|
|
#include "hw.h"
|
|
#include "procfs.h"
|
|
|
|
#define DRIVER_NAME "rkispp"
|
|
#define II_VDEV_NAME DRIVER_NAME "_input_image"
|
|
#define MB_VDEV_NAME DRIVER_NAME "_m_bypass"
|
|
#define S0_VDEV_NAME DRIVER_NAME "_scale0"
|
|
#define S1_VDEV_NAME DRIVER_NAME "_scale1"
|
|
#define S2_VDEV_NAME DRIVER_NAME "_scale2"
|
|
#define VIR_VDEV_NAME DRIVER_NAME "_iqtool"
|
|
|
|
enum rkispp_input {
|
|
INP_INVAL = 0,
|
|
INP_ISP,
|
|
INP_DDR,
|
|
};
|
|
|
|
struct rkispp_device {
|
|
char name[128];
|
|
struct device *dev;
|
|
void *sw_base_addr;
|
|
struct media_device media_dev;
|
|
struct v4l2_device v4l2_dev;
|
|
struct v4l2_ctrl_handler ctrl_handler;
|
|
|
|
struct rkispp_hw_dev *hw_dev;
|
|
struct rkispp_subdev ispp_sdev;
|
|
struct rkispp_stream_vdev stream_vdev;
|
|
struct rkispp_params_vdev params_vdev[PARAM_VDEV_MAX];
|
|
struct rkispp_stats_vdev stats_vdev[STATS_VDEV_MAX];
|
|
struct proc_dir_entry *procfs;
|
|
|
|
struct work_struct irq_work;
|
|
enum rkispp_ver ispp_ver;
|
|
/* mutex to serialize the calls from user */
|
|
struct mutex apilock;
|
|
/* mutex to serialize the calls of iq */
|
|
struct mutex iqlock;
|
|
enum rkispp_input inp;
|
|
u32 dev_id;
|
|
u32 isp_mode;
|
|
u32 isr_cnt;
|
|
u32 isr_err_cnt;
|
|
u32 mis_val;
|
|
wait_queue_head_t sync_onoff;
|
|
bool stream_sync;
|
|
u8 stream_max;
|
|
void (*irq_hdl)(u32 mis, struct rkispp_device *dev);
|
|
};
|
|
#endif
|