root/drivers/media/platform/mtk-vcodec/mtk_vcodec_util.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 
  14 struct mtk_vcodec_mem {
  15         size_t size;
  16         void *va;
  17         dma_addr_t dma_addr;
  18 };
  19 
  20 struct mtk_vcodec_fb {
  21         size_t size;
  22         dma_addr_t dma_addr;
  23 };
  24 
  25 struct mtk_vcodec_ctx;
  26 struct mtk_vcodec_dev;
  27 
  28 extern int mtk_v4l2_dbg_level;
  29 extern 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 
  76 void __iomem *mtk_vcodec_get_reg_addr(struct mtk_vcodec_ctx *data,
  77                                 unsigned int reg_idx);
  78 int mtk_vcodec_mem_alloc(struct mtk_vcodec_ctx *data,
  79                                 struct mtk_vcodec_mem *mem);
  80 void mtk_vcodec_mem_free(struct mtk_vcodec_ctx *data,
  81                                 struct mtk_vcodec_mem *mem);
  82 void mtk_vcodec_set_curr_ctx(struct mtk_vcodec_dev *dev,
  83         struct mtk_vcodec_ctx *ctx);
  84 struct mtk_vcodec_ctx *mtk_vcodec_get_curr_ctx(struct mtk_vcodec_dev *dev);
  85 
  86 #endif /* _MTK_VCODEC_UTIL_H_ */

/* [<][>][^][v][top][bottom][index][help] */