1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright (c) 2016 MediaTek Inc.
4 * Author: Ming Hsiu Tsai <minghsiu.tsai@mediatek.com>
5 * Rick Chang <rick.chang@mediatek.com>
6 * Xia Jiang <xia.jiang@mediatek.com>
9 #ifndef _MTK_JPEG_DEC_HW_H
10 #define _MTK_JPEG_DEC_HW_H
12 #include <media/videobuf2-core.h>
14 #include "mtk_jpeg_core.h"
15 #include "mtk_jpeg_dec_reg.h"
18 MTK_JPEG_DEC_RESULT_EOF_DONE = 0,
19 MTK_JPEG_DEC_RESULT_PAUSE = 1,
20 MTK_JPEG_DEC_RESULT_UNDERFLOW = 2,
21 MTK_JPEG_DEC_RESULT_OVERFLOW = 3,
22 MTK_JPEG_DEC_RESULT_ERROR_BS = 4,
23 MTK_JPEG_DEC_RESULT_ERROR_UNKNOWN = 6
26 struct mtk_jpeg_dec_param {
38 u32 comp_id[MTK_JPEG_COMP_MAX];
39 u32 sampling_w[MTK_JPEG_COMP_MAX];
40 u32 sampling_h[MTK_JPEG_COMP_MAX];
41 u32 qtbl_num[MTK_JPEG_COMP_MAX];
43 u32 blk_comp[MTK_JPEG_COMP_MAX];
48 u32 img_stride[MTK_JPEG_COMP_MAX];
49 u32 mem_stride[MTK_JPEG_COMP_MAX];
50 u32 comp_w[MTK_JPEG_COMP_MAX];
51 u32 comp_size[MTK_JPEG_COMP_MAX];
65 dma_addr_t plane_addr[MTK_JPEG_COMP_MAX];
69 int mtk_jpeg_dec_fill_param(struct mtk_jpeg_dec_param *param);
70 u32 mtk_jpeg_dec_get_int_status(void __iomem *dec_reg_base);
71 u32 mtk_jpeg_dec_enum_result(u32 irq_result);
72 void mtk_jpeg_dec_set_config(void __iomem *base,
73 struct mtk_jpeg_dec_param *config,
74 struct mtk_jpeg_bs *bs,
75 struct mtk_jpeg_fb *fb);
76 void mtk_jpeg_dec_reset(void __iomem *dec_reg_base);
77 void mtk_jpeg_dec_start(void __iomem *dec_reg_base);
79 #endif /* _MTK_JPEG_HW_H */