summaryrefslogtreecommitdiff
path: root/drivers/common/firmware/firmware_type.h (plain)
blob: e997057bf1716819b23e65521eef3fa558ad2917
1/*
2* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
3*
4* This program is free software; you can redistribute it and/or modify
5* it under the terms of the GNU General Public License as published by
6* the Free Software Foundation; either version 2 of the License, or
7* (at your option) any later version.
8*
9* This program is distributed in the hope that it will be useful, but WITHOUT
10* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12* more details.
13*
14* You should have received a copy of the GNU General Public License along
15* with this program; if not, write to the Free Software Foundation, Inc.,
16* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17*
18* Description:
19*/
20#ifndef __VIDEO_FIRMWARE_FORMAT_
21#define __VIDEO_FIRMWARE_FORMAT_
22
23#include <linux/slab.h>
24
25/* example: #define VIDEO_DEC_AV1 TAG('A', 'V', '1', '-')*/
26#define TAG(a, b, c, d)\
27 ((a << 24) | (b << 16) | (c << 8) | d)
28
29/* fws define */
30#define VIDEO_DEC_MPEG12 (0)
31#define VIDEO_DEC_MPEG4_3 (1)
32#define VIDEO_DEC_MPEG4_4 (2)
33#define VIDEO_DEC_MPEG4_5 (3)
34#define VIDEO_DEC_H263 (4)
35#define VIDEO_DEC_MJPEG (5)
36#define VIDEO_DEC_MJPEG_MULTI (6)
37#define VIDEO_DEC_REAL_V8 (7)
38#define VIDEO_DEC_REAL_V9 (8)
39#define VIDEO_DEC_VC1 (9)
40#define VIDEO_DEC_AVS (10)
41#define VIDEO_DEC_H264 (11)
42#define VIDEO_DEC_H264_4k2K (12)
43#define VIDEO_DEC_H264_4k2K_SINGLE (13)
44#define VIDEO_DEC_H264_MVC (14)
45#define VIDEO_DEC_H264_MULTI (15)
46#define VIDEO_DEC_HEVC (16)
47#define VIDEO_DEC_HEVC_MMU (17)
48#define VIDEO_DEC_VP9 (18)
49#define VIDEO_DEC_VP9_MMU (19)
50#define VIDEO_ENC_H264 (20)
51#define VIDEO_ENC_JPEG (21)
52#define VIDEO_DEC_H264_MULTI_MMU (23)
53#define VIDEO_DEC_HEVC_G12A (24)
54#define VIDEO_DEC_VP9_G12A (25)
55#define VIDEO_DEC_AVS2 (26)
56#define VIDEO_DEC_AVS2_MMU (27)
57#define VIDEO_DEC_AVS_GXM (28)
58#define VIDEO_DEC_AVS_NOCABAC (29)
59#define VIDEO_DEC_H264_MULTI_GXM (30)
60#define VIDEO_DEC_H264_MVC_GXM (31)
61#define VIDEO_DEC_VC1_G12A (32)
62#define VIDEO_DEC_MPEG12_MULTI TAG('M', '1', '2', 'M')
63#define VIDEO_DEC_MPEG4_4_MULTI TAG('M', '4', '4', 'M')
64#define VIDEO_DEC_MPEG4_5_MULTI TAG('M', '4', '5', 'M')
65#define VIDEO_DEC_H263_MULTI TAG('2', '6', '3', 'M')
66#define VIDEO_DEC_HEVC_MMU_SWAP TAG('2', '6', '5', 'S')
67#define VIDEO_DEC_AVS_MULTI TAG('A', 'V', 'S', 'M')
68#define VIDEO_DEC_AV1_MMU TAG('A', 'V', '1', 'M')
69
70/* ... */
71#define FIRMWARE_MAX (UINT_MAX)
72
73#define VIDEO_PACKAGE (0)
74#define VIDEO_FW_FILE (1)
75
76#define VIDEO_DECODE (0)
77#define VIDEO_ENCODE (1)
78#define VIDEO_MISC (2)
79
80#define OPTEE_VDEC_LEGENCY (0)
81#define OPTEE_VDEC (1)
82#define OPTEE_VDEC_HEVC (2)
83
84struct format_name_s {
85 unsigned int format;
86 const char *name;
87};
88
89struct cpu_type_s {
90 int type;
91 const char *name;
92};
93
94const char *get_fw_format_name(unsigned int format);
95unsigned int get_fw_format(const char *name);
96int fw_get_cpu(const char *name);
97
98#endif
99