linux/drivers/media/platform/sunxi/sun8i-di/sun8i-di.h

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Allwinner Deinterlace driver
 *
 * Copyright (C) 2019 Jernej Skrabec <[email protected]>
 */

#ifndef _SUN8I_DEINTERLACE_H_
#define _SUN8I_DEINTERLACE_H_

#include <media/v4l2-device.h>
#include <media/v4l2-mem2mem.h>
#include <media/videobuf2-v4l2.h>
#include <media/videobuf2-dma-contig.h>

#include <linux/platform_device.h>

#define DEINTERLACE_NAME

#define DEINTERLACE_MOD_ENABLE
#define DEINTERLACE_MOD_ENABLE_EN

#define DEINTERLACE_FRM_CTRL
#define DEINTERLACE_FRM_CTRL_REG_READY
#define DEINTERLACE_FRM_CTRL_WB_EN
#define DEINTERLACE_FRM_CTRL_OUT_CTRL
#define DEINTERLACE_FRM_CTRL_START
#define DEINTERLACE_FRM_CTRL_COEF_ACCESS

#define DEINTERLACE_BYPASS
#define DEINTERLACE_BYPASS_CSC

#define DEINTERLACE_AGTH_SEL
#define DEINTERLACE_AGTH_SEL_LINEBUF

#define DEINTERLACE_LINT_CTRL
#define DEINTERLACE_TRD_PRELUMA
#define DEINTERLACE_BUF_ADDR0
#define DEINTERLACE_BUF_ADDR1
#define DEINTERLACE_BUF_ADDR2

#define DEINTERLACE_FIELD_CTRL
#define DEINTERLACE_FIELD_CTRL_FIELD_CNT(v)
#define DEINTERLACE_FIELD_CTRL_FIELD_CNT_MSK

#define DEINTERLACE_TB_OFFSET0
#define DEINTERLACE_TB_OFFSET1
#define DEINTERLACE_TB_OFFSET2
#define DEINTERLACE_TRD_PRECHROMA
#define DEINTERLACE_LINE_STRIDE0
#define DEINTERLACE_LINE_STRIDE1
#define DEINTERLACE_LINE_STRIDE2

#define DEINTERLACE_IN_FMT
#define DEINTERLACE_IN_FMT_PS(v)
#define DEINTERLACE_IN_FMT_FMT(v)
#define DEINTERLACE_IN_FMT_MOD(v)

#define DEINTERLACE_WB_ADDR0
#define DEINTERLACE_WB_ADDR1
#define DEINTERLACE_WB_ADDR2

#define DEINTERLACE_OUT_FMT
#define DEINTERLACE_OUT_FMT_FMT(v)
#define DEINTERLACE_OUT_FMT_PS(v)

#define DEINTERLACE_INT_ENABLE
#define DEINTERLACE_INT_ENABLE_WB_EN

#define DEINTERLACE_INT_STATUS
#define DEINTERLACE_INT_STATUS_WRITEBACK

#define DEINTERLACE_STATUS
#define DEINTERLACE_STATUS_COEF_STATUS
#define DEINTERLACE_STATUS_WB_ERROR

#define DEINTERLACE_CSC_COEF

#define DEINTERLACE_CTRL
#define DEINTERLACE_CTRL_EN
#define DEINTERLACE_CTRL_FLAG_OUT_EN
#define DEINTERLACE_CTRL_MODE_PASSTROUGH
#define DEINTERLACE_CTRL_MODE_WEAVE
#define DEINTERLACE_CTRL_MODE_BOB
#define DEINTERLACE_CTRL_MODE_MIXED
#define DEINTERLACE_CTRL_DIAG_INTP_EN
#define DEINTERLACE_CTRL_TEMP_DIFF_EN

#define DEINTERLACE_DIAG_INTP
#define DEINTERLACE_DIAG_INTP_TH0(v)
#define DEINTERLACE_DIAG_INTP_TH0_MSK
#define DEINTERLACE_DIAG_INTP_TH1(v)
#define DEINTERLACE_DIAG_INTP_TH1_MSK
#define DEINTERLACE_DIAG_INTP_TH3(v)
#define DEINTERLACE_DIAG_INTP_TH3_MSK

#define DEINTERLACE_TEMP_DIFF
#define DEINTERLACE_TEMP_DIFF_SAD_CENTRAL_TH(v)
#define DEINTERLACE_TEMP_DIFF_SAD_CENTRAL_TH_MSK
#define DEINTERLACE_TEMP_DIFF_AMBIGUITY_TH(v)
#define DEINTERLACE_TEMP_DIFF_AMBIGUITY_TH_MSK
#define DEINTERLACE_TEMP_DIFF_DIRECT_DITHER_TH(v)
#define DEINTERLACE_TEMP_DIFF_DIRECT_DITHER_TH_MSK

#define DEINTERLACE_LUMA_TH
#define DEINTERLACE_LUMA_TH_MIN_LUMA(v)
#define DEINTERLACE_LUMA_TH_MIN_LUMA_MSK
#define DEINTERLACE_LUMA_TH_MAX_LUMA(v)
#define DEINTERLACE_LUMA_TH_MAX_LUMA_MSK
#define DEINTERLACE_LUMA_TH_AVG_LUMA_SHIFT(v)
#define DEINTERLACE_LUMA_TH_AVG_LUMA_SHIFT_MSK
#define DEINTERLACE_LUMA_TH_PIXEL_STATIC(v)
#define DEINTERLACE_LUMA_TH_PIXEL_STATIC_MSK

#define DEINTERLACE_SPAT_COMP
#define DEINTERLACE_SPAT_COMP_TH2(v)
#define DEINTERLACE_SPAT_COMP_TH2_MSK
#define DEINTERLACE_SPAT_COMP_TH3(v)
#define DEINTERLACE_SPAT_COMP_TH3_MSK

#define DEINTERLACE_CHROMA_DIFF
#define DEINTERLACE_CHROMA_DIFF_TH(v)
#define DEINTERLACE_CHROMA_DIFF_TH_MSK
#define DEINTERLACE_CHROMA_DIFF_LUMA(v)
#define DEINTERLACE_CHROMA_DIFF_LUMA_MSK
#define DEINTERLACE_CHROMA_DIFF_CHROMA(v)
#define DEINTERLACE_CHROMA_DIFF_CHROMA_MSK

#define DEINTERLACE_PRELUMA
#define DEINTERLACE_PRECHROMA
#define DEINTERLACE_TILE_FLAG0
#define DEINTERLACE_TILE_FLAG1
#define DEINTERLACE_FLAG_LINE_STRIDE
#define DEINTERLACE_FLAG_SEQ

#define DEINTERLACE_WB_LINE_STRIDE_CTRL
#define DEINTERLACE_WB_LINE_STRIDE_CTRL_EN

#define DEINTERLACE_WB_LINE_STRIDE0
#define DEINTERLACE_WB_LINE_STRIDE1
#define DEINTERLACE_WB_LINE_STRIDE2
#define DEINTERLACE_TRD_CTRL
#define DEINTERLACE_TRD_BUF_ADDR0
#define DEINTERLACE_TRD_BUF_ADDR1
#define DEINTERLACE_TRD_BUF_ADDR2
#define DEINTERLACE_TRD_TB_OFF0
#define DEINTERLACE_TRD_TB_OFF1
#define DEINTERLACE_TRD_TB_OFF2
#define DEINTERLACE_TRD_WB_STRIDE
#define DEINTERLACE_CH0_IN_SIZE
#define DEINTERLACE_CH0_OUT_SIZE
#define DEINTERLACE_CH0_HORZ_FACT
#define DEINTERLACE_CH0_VERT_FACT
#define DEINTERLACE_CH0_HORZ_PHASE
#define DEINTERLACE_CH0_VERT_PHASE0
#define DEINTERLACE_CH0_VERT_PHASE1
#define DEINTERLACE_CH0_HORZ_TAP0
#define DEINTERLACE_CH0_HORZ_TAP1
#define DEINTERLACE_CH0_VERT_TAP
#define DEINTERLACE_CH1_IN_SIZE
#define DEINTERLACE_CH1_OUT_SIZE
#define DEINTERLACE_CH1_HORZ_FACT
#define DEINTERLACE_CH1_VERT_FACT
#define DEINTERLACE_CH1_HORZ_PHASE
#define DEINTERLACE_CH1_VERT_PHASE0
#define DEINTERLACE_CH1_VERT_PHASE1
#define DEINTERLACE_CH1_HORZ_TAP0
#define DEINTERLACE_CH1_HORZ_TAP1
#define DEINTERLACE_CH1_VERT_TAP
#define DEINTERLACE_CH0_HORZ_COEF0
#define DEINTERLACE_CH0_HORZ_COEF1
#define DEINTERLACE_CH0_VERT_COEF
#define DEINTERLACE_CH1_HORZ_COEF0
#define DEINTERLACE_CH1_HORZ_COEF1
#define DEINTERLACE_CH1_VERT_COEF
#define DEINTERLACE_CH3_HORZ_COEF0
#define DEINTERLACE_CH3_HORZ_COEF1
#define DEINTERLACE_CH3_VERT_COEF

#define DEINTERLACE_MIN_WIDTH
#define DEINTERLACE_MIN_HEIGHT
#define DEINTERLACE_MAX_WIDTH
#define DEINTERLACE_MAX_HEIGHT

#define DEINTERLACE_MODE_UV_COMBINED

#define DEINTERLACE_IN_FMT_YUV420

#define DEINTERLACE_OUT_FMT_YUV420SP

#define DEINTERLACE_PS_UVUV
#define DEINTERLACE_PS_VUVU

#define DEINTERLACE_IDENTITY_COEF

#define DEINTERLACE_SIZE(w, h)

struct deinterlace_ctx {};

struct deinterlace_dev {};

#endif