Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
at v5.3 86 lines 2.2 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3* Copyright (c) 2016 MediaTek Inc. 4* Author: PC Chen <pc.chen@mediatek.com> 5* Tiffany Lin <tiffany.lin@mediatek.com> 6*/ 7 8#ifndef _MTK_VCODEC_UTIL_H_ 9#define _MTK_VCODEC_UTIL_H_ 10 11#include <linux/types.h> 12#include <linux/dma-direction.h> 13 14struct mtk_vcodec_mem { 15 size_t size; 16 void *va; 17 dma_addr_t dma_addr; 18}; 19 20struct mtk_vcodec_fb { 21 size_t size; 22 dma_addr_t dma_addr; 23}; 24 25struct mtk_vcodec_ctx; 26struct mtk_vcodec_dev; 27 28extern int mtk_v4l2_dbg_level; 29extern bool mtk_vcodec_dbg; 30 31 32#define mtk_v4l2_err(fmt, args...) \ 33 pr_err("[MTK_V4L2][ERROR] %s:%d: " fmt "\n", __func__, __LINE__, \ 34 ##args) 35 36#define mtk_vcodec_err(h, fmt, args...) \ 37 pr_err("[MTK_VCODEC][ERROR][%d]: %s() " fmt "\n", \ 38 ((struct mtk_vcodec_ctx *)h->ctx)->id, __func__, ##args) 39 40 41#if defined(DEBUG) 42 43#define mtk_v4l2_debug(level, fmt, args...) \ 44 do { \ 45 if (mtk_v4l2_dbg_level >= level) \ 46 pr_info("[MTK_V4L2] level=%d %s(),%d: " fmt "\n",\ 47 level, __func__, __LINE__, ##args); \ 48 } while (0) 49 50#define mtk_v4l2_debug_enter() mtk_v4l2_debug(3, "+") 51#define mtk_v4l2_debug_leave() mtk_v4l2_debug(3, "-") 52 53#define mtk_vcodec_debug(h, fmt, args...) \ 54 do { \ 55 if (mtk_vcodec_dbg) \ 56 pr_info("[MTK_VCODEC][%d]: %s() " fmt "\n", \ 57 ((struct mtk_vcodec_ctx *)h->ctx)->id, \ 58 __func__, ##args); \ 59 } while (0) 60 61#define mtk_vcodec_debug_enter(h) mtk_vcodec_debug(h, "+") 62#define mtk_vcodec_debug_leave(h) mtk_vcodec_debug(h, "-") 63 64#else 65 66#define mtk_v4l2_debug(level, fmt, args...) {} 67#define mtk_v4l2_debug_enter() {} 68#define mtk_v4l2_debug_leave() {} 69 70#define mtk_vcodec_debug(h, fmt, args...) {} 71#define mtk_vcodec_debug_enter(h) {} 72#define mtk_vcodec_debug_leave(h) {} 73 74#endif 75 76void __iomem *mtk_vcodec_get_reg_addr(struct mtk_vcodec_ctx *data, 77 unsigned int reg_idx); 78int mtk_vcodec_mem_alloc(struct mtk_vcodec_ctx *data, 79 struct mtk_vcodec_mem *mem); 80void mtk_vcodec_mem_free(struct mtk_vcodec_ctx *data, 81 struct mtk_vcodec_mem *mem); 82void mtk_vcodec_set_curr_ctx(struct mtk_vcodec_dev *dev, 83 struct mtk_vcodec_ctx *ctx); 84struct mtk_vcodec_ctx *mtk_vcodec_get_curr_ctx(struct mtk_vcodec_dev *dev); 85 86#endif /* _MTK_VCODEC_UTIL_H_ */