xref: /rockchip-linux_mpp/osal/inc/mpp_dev_defs.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 OR MIT */
2*437bfbebSnyanmisaka /*
3*437bfbebSnyanmisaka  * Copyright (c) 2020 Rockchip Electronics Co., Ltd.
4*437bfbebSnyanmisaka  */
5*437bfbebSnyanmisaka 
6*437bfbebSnyanmisaka #ifndef __MPP_DEV_DEFS_H__
7*437bfbebSnyanmisaka #define __MPP_DEV_DEFS_H__
8*437bfbebSnyanmisaka 
9*437bfbebSnyanmisaka #include "rk_type.h"
10*437bfbebSnyanmisaka 
11*437bfbebSnyanmisaka /*
12*437bfbebSnyanmisaka  * Platform video codec hardware feature
13*437bfbebSnyanmisaka  */
14*437bfbebSnyanmisaka typedef enum MppClientType_e {
15*437bfbebSnyanmisaka     VPU_CLIENT_VDPU1        = 0,    /* 0x00000001 */
16*437bfbebSnyanmisaka     VPU_CLIENT_VDPU2        = 1,    /* 0x00000002 */
17*437bfbebSnyanmisaka     VPU_CLIENT_VDPU1_PP     = 2,    /* 0x00000004 */
18*437bfbebSnyanmisaka     VPU_CLIENT_VDPU2_PP     = 3,    /* 0x00000008 */
19*437bfbebSnyanmisaka     VPU_CLIENT_AV1DEC       = 4,    /* 0x00000010 */
20*437bfbebSnyanmisaka 
21*437bfbebSnyanmisaka     VPU_CLIENT_HEVC_DEC     = 8,    /* 0x00000100 */
22*437bfbebSnyanmisaka     VPU_CLIENT_RKVDEC       = 9,    /* 0x00000200 */
23*437bfbebSnyanmisaka     VPU_CLIENT_AVSPLUS_DEC  = 12,   /* 0x00001000 */
24*437bfbebSnyanmisaka     VPU_CLIENT_JPEG_DEC     = 13,   /* 0x00002000 */
25*437bfbebSnyanmisaka 
26*437bfbebSnyanmisaka     VPU_CLIENT_RKVENC       = 16,   /* 0x00010000 */
27*437bfbebSnyanmisaka     VPU_CLIENT_VEPU1        = 17,   /* 0x00020000 */
28*437bfbebSnyanmisaka     VPU_CLIENT_VEPU2        = 18,   /* 0x00040000 */
29*437bfbebSnyanmisaka     VPU_CLIENT_VEPU2_JPEG   = 19,   /* 0x00080000 */
30*437bfbebSnyanmisaka     VPU_CLIENT_JPEG_ENC     = 20,   /* 0x00100000 */
31*437bfbebSnyanmisaka 
32*437bfbebSnyanmisaka     VPU_CLIENT_VEPU22       = 24,   /* 0x01000000 */
33*437bfbebSnyanmisaka 
34*437bfbebSnyanmisaka     IEP_CLIENT_TYPE         = 28,   /* 0x10000000 */
35*437bfbebSnyanmisaka     VDPP_CLIENT_TYPE        = 29,   /* 0x20000000 */
36*437bfbebSnyanmisaka 
37*437bfbebSnyanmisaka     VPU_CLIENT_BUTT,
38*437bfbebSnyanmisaka } MppClientType;
39*437bfbebSnyanmisaka 
40*437bfbebSnyanmisaka #define CLIENT_TYPE_MASK_DEC    0x0000ffff
41*437bfbebSnyanmisaka #define CLIENT_TYPE_MASK_ENC    0x0fff0000
42*437bfbebSnyanmisaka #define CLIENT_TYPE_MASK_VPROC  0xf0000000
43*437bfbebSnyanmisaka 
44*437bfbebSnyanmisaka /* RK combined codec */
45*437bfbebSnyanmisaka #define HAVE_VDPU1          (1 << VPU_CLIENT_VDPU1)         /* 0x00000001 */
46*437bfbebSnyanmisaka #define HAVE_VDPU2          (1 << VPU_CLIENT_VDPU2)         /* 0x00000002 */
47*437bfbebSnyanmisaka #define HAVE_VDPU1_PP       (1 << VPU_CLIENT_VDPU1_PP)      /* 0x00000004 */
48*437bfbebSnyanmisaka #define HAVE_VDPU2_PP       (1 << VPU_CLIENT_VDPU2_PP)      /* 0x00000008 */
49*437bfbebSnyanmisaka #define HAVE_AV1DEC         (1 << VPU_CLIENT_AV1DEC)        /* 0x00000008 */
50*437bfbebSnyanmisaka /* RK standalone decoder */
51*437bfbebSnyanmisaka #define HAVE_HEVC_DEC       (1 << VPU_CLIENT_HEVC_DEC)      /* 0x00000100 */
52*437bfbebSnyanmisaka #define HAVE_RKVDEC         (1 << VPU_CLIENT_RKVDEC)        /* 0x00000200 */
53*437bfbebSnyanmisaka #define HAVE_AVSDEC         (1 << VPU_CLIENT_AVSPLUS_DEC)   /* 0x00001000 */
54*437bfbebSnyanmisaka #define HAVE_JPEG_DEC       (1 << VPU_CLIENT_JPEG_DEC)      /* 0x00002000 */
55*437bfbebSnyanmisaka /* RK standalone encoder */
56*437bfbebSnyanmisaka #define HAVE_RKVENC         (1 << VPU_CLIENT_RKVENC)        /* 0x00010000 */
57*437bfbebSnyanmisaka #define HAVE_VEPU1          (1 << VPU_CLIENT_VEPU1)         /* 0x00020000 */
58*437bfbebSnyanmisaka #define HAVE_VEPU2          (1 << VPU_CLIENT_VEPU2)         /* 0x00040000 */
59*437bfbebSnyanmisaka #define HAVE_VEPU2_JPEG     (1 << VPU_CLIENT_VEPU2_JPEG)    /* 0x00080000 */
60*437bfbebSnyanmisaka #define HAVE_JPEG_ENC       (1 << VPU_CLIENT_JPEG_ENC)      /* 0x00100000 */
61*437bfbebSnyanmisaka /* External encoder */
62*437bfbebSnyanmisaka #define HAVE_VEPU22         (1 << VPU_CLIENT_VEPU22)        /* 0x01000000 */
63*437bfbebSnyanmisaka /* RK Image Enhance Processor for deinterlacing */
64*437bfbebSnyanmisaka #define HAVE_IEP            (1 << IEP_CLIENT_TYPE)          /* 0x10000000 */
65*437bfbebSnyanmisaka /* RK Image Enhance Processor for dispaly */
66*437bfbebSnyanmisaka #define HAVE_VDPP           (1 << VDPP_CLIENT_TYPE)         /* 0x20000000 */
67*437bfbebSnyanmisaka 
68*437bfbebSnyanmisaka /* Platform image process hardware feature */
69*437bfbebSnyanmisaka #define HAVE_IPP            (0x00000001)
70*437bfbebSnyanmisaka #define HAVE_RGA            (0x00000002)
71*437bfbebSnyanmisaka #define HAVE_RGA2           (0x00000004)
72*437bfbebSnyanmisaka 
73*437bfbebSnyanmisaka #endif /*__MPP_DEV_DEFS_H__*/
74