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>
11 #include <media/videobuf2-core.h>
13 #include "mtk_jpeg_core.h"
14 #include "mtk_jpeg_reg.h"
17 MTK_JPEG_DEC_RESULT_EOF_DONE
= 0,
18 MTK_JPEG_DEC_RESULT_PAUSE
= 1,
19 MTK_JPEG_DEC_RESULT_UNDERFLOW
= 2,
20 MTK_JPEG_DEC_RESULT_OVERFLOW
= 3,
21 MTK_JPEG_DEC_RESULT_ERROR_BS
= 4,
22 MTK_JPEG_DEC_RESULT_ERROR_UNKNOWN
= 6
25 struct mtk_jpeg_dec_param
{
37 u32 comp_id
[MTK_JPEG_COMP_MAX
];
38 u32 sampling_w
[MTK_JPEG_COMP_MAX
];
39 u32 sampling_h
[MTK_JPEG_COMP_MAX
];
40 u32 qtbl_num
[MTK_JPEG_COMP_MAX
];
42 u32 blk_comp
[MTK_JPEG_COMP_MAX
];
47 u32 img_stride
[MTK_JPEG_COMP_MAX
];
48 u32 mem_stride
[MTK_JPEG_COMP_MAX
];
49 u32 comp_w
[MTK_JPEG_COMP_MAX
];
50 u32 comp_size
[MTK_JPEG_COMP_MAX
];
57 static inline u32
mtk_jpeg_align(u32 val
, u32 align
)
59 return (val
+ align
- 1) & ~(align
- 1);
69 dma_addr_t plane_addr
[MTK_JPEG_COMP_MAX
];
73 int mtk_jpeg_dec_fill_param(struct mtk_jpeg_dec_param
*param
);
74 u32
mtk_jpeg_dec_get_int_status(void __iomem
*dec_reg_base
);
75 u32
mtk_jpeg_dec_enum_result(u32 irq_result
);
76 void mtk_jpeg_dec_set_config(void __iomem
*base
,
77 struct mtk_jpeg_dec_param
*config
,
78 struct mtk_jpeg_bs
*bs
,
79 struct mtk_jpeg_fb
*fb
);
80 void mtk_jpeg_dec_reset(void __iomem
*dec_reg_base
);
81 void mtk_jpeg_dec_start(void __iomem
*dec_reg_base
);
83 #endif /* _MTK_JPEG_HW_H */