89 lines
4.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/* Copyright (c) 2021 Rockchip Electronics Co., Ltd. */
#ifndef _RKISP_CAPTURE_V3X_H
#define _RKISP_CAPTURE_V3X_H
/* memory align for mpp */
#define RK_MPP_ALIGN 4096
//#define RKISP_STREAM_BP_EN 1
void rkisp_mipi_v3x_isr(u32 phy, u32 packet, u32 overflow, u32 state, struct rkisp_device *dev);
#if IS_ENABLED(CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V30)
int rkisp_register_stream_v30(struct rkisp_device *dev);
void rkisp_unregister_stream_v30(struct rkisp_device *dev);
void rkisp_mi_v30_isr(u32 mis_val, struct rkisp_device *dev);
#else
static inline int rkisp_register_stream_v30(struct rkisp_device *dev) { return -EINVAL; }
static inline void rkisp_unregister_stream_v30(struct rkisp_device *dev) {}
static inline void rkisp_mi_v30_isr(u32 mis_val, struct rkisp_device *dev) {}
#endif
#if IS_ENABLED(CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V32)
int rkisp_register_stream_v32(struct rkisp_device *dev);
void rkisp_unregister_stream_v32(struct rkisp_device *dev);
void rkisp_mi_v32_isr(u32 mis_val, struct rkisp_device *dev);
#else
static inline int rkisp_register_stream_v32(struct rkisp_device *dev) { return -EINVAL; }
static inline void rkisp_unregister_stream_v32(struct rkisp_device *dev) {}
static inline void rkisp_mi_v32_isr(u32 mis_val, struct rkisp_device *dev) {}
#endif
#if IS_ENABLED(CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V33)
int rkisp_register_stream_v33(struct rkisp_device *dev);
void rkisp_unregister_stream_v33(struct rkisp_device *dev);
void rkisp_mi_v33_isr(u32 mis_val, struct rkisp_device *dev);
#else
static inline int rkisp_register_stream_v33(struct rkisp_device *dev) { return -EINVAL; }
static inline void rkisp_unregister_stream_v33(struct rkisp_device *dev) {}
static inline void rkisp_mi_v33_isr(u32 mis_val, struct rkisp_device *dev) {}
#endif
#if IS_ENABLED(CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V32) || IS_ENABLED(CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V33)
void rkisp_rockit_buf_state_clear(struct rkisp_stream *stream);
int rkisp_rockit_buf_free(struct rkisp_stream *stream);
void rkisp_rockit_dev_init(struct rkisp_device *dev);
void rkisp_rockit_dev_deinit(void);
void rkisp_rockit_frame_start(struct rkisp_device *dev);
int rkisp_rockit_fps_set(int *dst_fps, struct rkisp_stream *stream);
int rkisp_rockit_fps_get(int *dst_fps, struct rkisp_stream *stream);
int rkisp_rockit_buf_done(struct rkisp_stream *stream, int cmd, struct rkisp_buffer *curr_buf);
#else
static inline void rkisp_rockit_buf_state_clear(struct rkisp_stream *stream) { return; }
static inline int rkisp_rockit_buf_free(struct rkisp_stream *stream) { return -EINVAL; }
static inline void rkisp_rockit_dev_init(struct rkisp_device *dev) { return; }
static inline void rkisp_rockit_dev_deinit(void) {}
static inline void rkisp_rockit_frame_start(struct rkisp_device *dev) {}
static inline int rkisp_rockit_fps_set(int *dst_fps, struct rkisp_stream *stream) { return -EINVAL; }
static inline int rkisp_rockit_fps_get(int *dst_fps, struct rkisp_stream *stream) { return -EINVAL; }
static inline int rkisp_rockit_buf_done(struct rkisp_stream *stream, int cmd,
struct rkisp_buffer *curr_buf) { return -EINVAL; }
#endif
#if IS_ENABLED(CONFIG_VIDEO_ROCKCHIP_ISP_VERSION_V39)
int rkisp_register_stream_v39(struct rkisp_device *dev);
void rkisp_unregister_stream_v39(struct rkisp_device *dev);
void rkisp_mi_v39_isr(u32 mis_val, struct rkisp_device *dev);
void rkisp_stream_ldc_end_v39(struct rkisp_device *dev);
#else
static inline int rkisp_register_stream_v39(struct rkisp_device *dev) { return -EINVAL; }
static inline void rkisp_unregister_stream_v39(struct rkisp_device *dev) {}
static inline void rkisp_mi_v39_isr(u32 mis_val, struct rkisp_device *dev) {}
static inline void rkisp_stream_ldc_end_v39(struct rkisp_device *dev) {}
#endif
#if IS_ENABLED(CONFIG_ROCKCHIP_DVBM)
int rkisp_dvbm_get(struct rkisp_device *dev);
int rkisp_dvbm_init(struct rkisp_stream *stream);
void rkisp_dvbm_deinit(struct rkisp_device *dev);
int rkisp_dvbm_event(struct rkisp_device *dev, u32 event);
#else
static inline int rkisp_dvbm_get(struct rkisp_device *dev) { return -EINVAL; }
static inline int rkisp_dvbm_init(struct rkisp_stream *stream) { return -EINVAL; }
static inline void rkisp_dvbm_deinit(struct rkisp_device *dev) {}
static inline int rkisp_dvbm_event(struct rkisp_device *dev, u32 event) { return -EINVAL; }
#endif
#endif