summaryrefslogtreecommitdiff
path: root/drivers/common/firmware/firmware_type.h (plain)
blob: c2ef01ab60b53d2ecad1aa73871cf806b1ed33f8
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
69/* ... */
70#define FIRMWARE_MAX (UINT_MAX)
71
72#define VIDEO_PACKAGE (0)
73#define VIDEO_FW_FILE (1)
74
75#define VIDEO_DECODE (0)
76#define VIDEO_ENCODE (1)
77#define VIDEO_MISC (2)
78
79#define OPTEE_VDEC_LEGENCY (0)
80#define OPTEE_VDEC (1)
81#define OPTEE_VDEC_HEVC (2)
82
83struct format_name_s {
84 unsigned int format;
85 const char *name;
86};
87
88struct cpu_type_s {
89 int type;
90 const char *name;
91};
92
93const char *get_fw_format_name(unsigned int format);
94unsigned int get_fw_format(const char *name);
95int fw_get_cpu(const char *name);
96
97#endif
98