alistair23-linux/drivers/media/platform/mtk-jpeg/mtk_jpeg_hw.h
Thomas Gleixner 1802d0beec treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174
Based on 1 normalized pattern(s):

  this program is free software you can redistribute it and or modify
  it under the terms of the gnu general public license version 2 as
  published by the free software foundation this program is
  distributed in the hope that it will be useful but without any
  warranty without even the implied warranty of merchantability or
  fitness for a particular purpose see the gnu general public license
  for more details

extracted by the scancode license scanner the SPDX license identifier

  GPL-2.0-only

has been chosen to replace the boilerplate/reference in 655 file(s).

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Allison Randal <allison@lohutok.net>
Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org>
Reviewed-by: Richard Fontana <rfontana@redhat.com>
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190527070034.575739538@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-30 11:26:41 -07:00

84 lines
1.9 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2016 MediaTek Inc.
* Author: Ming Hsiu Tsai <minghsiu.tsai@mediatek.com>
* Rick Chang <rick.chang@mediatek.com>
*/
#ifndef _MTK_JPEG_HW_H
#define _MTK_JPEG_HW_H
#include <media/videobuf2-core.h>
#include "mtk_jpeg_core.h"
#include "mtk_jpeg_reg.h"
enum {
MTK_JPEG_DEC_RESULT_EOF_DONE = 0,
MTK_JPEG_DEC_RESULT_PAUSE = 1,
MTK_JPEG_DEC_RESULT_UNDERFLOW = 2,
MTK_JPEG_DEC_RESULT_OVERFLOW = 3,
MTK_JPEG_DEC_RESULT_ERROR_BS = 4,
MTK_JPEG_DEC_RESULT_ERROR_UNKNOWN = 6
};
struct mtk_jpeg_dec_param {
u32 pic_w;
u32 pic_h;
u32 dec_w;
u32 dec_h;
u32 src_color;
u32 dst_fourcc;
u32 mcu_w;
u32 mcu_h;
u32 total_mcu;
u32 unit_num;
u32 comp_num;
u32 comp_id[MTK_JPEG_COMP_MAX];
u32 sampling_w[MTK_JPEG_COMP_MAX];
u32 sampling_h[MTK_JPEG_COMP_MAX];
u32 qtbl_num[MTK_JPEG_COMP_MAX];
u32 blk_num;
u32 blk_comp[MTK_JPEG_COMP_MAX];
u32 membership;
u32 dma_mcu;
u32 dma_group;
u32 dma_last_mcu;
u32 img_stride[MTK_JPEG_COMP_MAX];
u32 mem_stride[MTK_JPEG_COMP_MAX];
u32 comp_w[MTK_JPEG_COMP_MAX];
u32 comp_size[MTK_JPEG_COMP_MAX];
u32 y_size;
u32 uv_size;
u32 dec_size;
u8 uv_brz_w;
};
static inline u32 mtk_jpeg_align(u32 val, u32 align)
{
return (val + align - 1) & ~(align - 1);
}
struct mtk_jpeg_bs {
dma_addr_t str_addr;
dma_addr_t end_addr;
size_t size;
};
struct mtk_jpeg_fb {
dma_addr_t plane_addr[MTK_JPEG_COMP_MAX];
size_t size;
};
int mtk_jpeg_dec_fill_param(struct mtk_jpeg_dec_param *param);
u32 mtk_jpeg_dec_get_int_status(void __iomem *dec_reg_base);
u32 mtk_jpeg_dec_enum_result(u32 irq_result);
void mtk_jpeg_dec_set_config(void __iomem *base,
struct mtk_jpeg_dec_param *config,
struct mtk_jpeg_bs *bs,
struct mtk_jpeg_fb *fb);
void mtk_jpeg_dec_reset(void __iomem *dec_reg_base);
void mtk_jpeg_dec_start(void __iomem *dec_reg_base);
#endif /* _MTK_JPEG_HW_H */