]> bbs.cooldavid.org Git - net-next-2.6.git/blame - drivers/staging/dream/include/mach/qdsp5/qdsp5vdeccmdi.h
Ensure FMODE_NONOTIFY is not set by userspace
[net-next-2.6.git] / drivers / staging / dream / include / mach / qdsp5 / qdsp5vdeccmdi.h
CommitLineData
e79753ed
PM
1#ifndef QDSP5VIDDECCMDI_H
2#define QDSP5VIDDECCMDI_H
3
4/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
5
6 V I D E O D E C O D E R I N T E R N A L C O M M A N D S
7
8GENERAL DESCRIPTION
9 This file contains defintions of format blocks of commands
10 that are accepted by VIDDEC Task
11
12REFERENCES
13 None
14
15EXTERNALIZED FUNCTIONS
16 None
17
18Copyright(c) 1992 - 2008 by QUALCOMM, Incorporated.
19
20This software is licensed under the terms of the GNU General Public
21License version 2, as published by the Free Software Foundation, and
22may be copied, distributed, and modified under those terms.
23
24This program is distributed in the hope that it will be useful,
25but WITHOUT ANY WARRANTY; without even the implied warranty of
26MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27GNU General Public License for more details.
28
29*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/
30/*===========================================================================
31
32 EDIT HISTORY FOR FILE
33
34This section contains comments describing changes made to this file.
35Notice that changes are listed in reverse chronological order.
36
37$Header: //source/qcom/qct/multimedia2/AdspSvc/7XXX/qdsp5cmd/video/qdsp5vdeccmdi.h#2 $ $DateTime: 2008/07/30 10:50:23 $ $Author: pavanr $
38Revision History:
39
40when who what, where, why
41-------- --- ----------------------------------------------------------
4205/10/08 ac initial version
43===========================================================================*/
44
45
46/*
47 * Command to inform VIDDEC that new subframe packet is ready
48 */
49
50#define VIDDEC_CMD_SUBFRAME_PKT 0x0000
51#define VIDDEC_CMD_SUBFRAME_PKT_LEN \
52 sizeof(viddec_cmd_subframe_pkt)
53
54#define VIDDEC_CMD_SF_INFO_1_DM_DMA_STATS_EXCHANGE_FLAG_DM 0x0000
55#define VIDDEC_CMD_SF_INFO_1_DM_DMA_STATS_EXCHANGE_FLAG_DMA 0x0001
56
57#define VIDDEC_CMD_SF_INFO_0_SUBFRAME_CONTI 0x0000
58#define VIDDEC_CMD_SF_INFO_0_SUBFRAME_FIRST 0x0001
59#define VIDDEC_CMD_SF_INFO_0_SUBFRAME_LAST 0x0002
60#define VIDDEC_CMD_SF_INFO_0_SUBFRAME_FIRST_AND_LAST 0x0003
61
62#define VIDDEC_CMD_CODEC_SELECTION_WORD_MPEG_4 0x0000
63#define VIDDEC_CMD_CODEC_SELECTION_WORD_H_263_P0 0x0001
64#define VIDDEC_CMD_CODEC_SELECTION_WORD_H_264 0x0002
65#define VIDDEC_CMD_CODEC_SELECTION_WORD_H_263_p3 0x0003
66#define VIDDEC_CMD_CODEC_SELECTION_WORD_RV9 0x0004
67#define VIDDEC_CMD_CODEC_SELECTION_WORD_WMV9 0x0005
68#define VIDDEC_CMD_CODEC_SELECTION_WORD_SMCDB 0x0006
69#define VIDDEC_CMD_CODEC_SELECTION_WORD_QFRE 0x0007
70#define VIDDEC_CMD_CODEC_SELECTION_WORD_VLD 0x0008
71
72typedef struct {
73 unsigned short cmd_id;
74 unsigned short packet_seq_number;
75 unsigned short codec_instance_id;
76 unsigned short subframe_packet_size_high;
77 unsigned short subframe_packet_size_low;
78 unsigned short subframe_packet_high;
79 unsigned short subframe_packet_low;
80 unsigned short subframe_packet_partition;
81 unsigned short statistics_packet_size_high;
82 unsigned short statistics_packet_size_low;
83 unsigned short statistics_packet_high;
84 unsigned short statistics_packet_low;
85 unsigned short statistics_partition;
86 unsigned short subframe_info_1;
87 unsigned short subframe_info_0;
88 unsigned short codec_selection_word;
89 unsigned short num_mbs;
90} __attribute__((packed)) viddec_cmd_subframe_pkt;
91
92
93/*
94 * Command to inform VIDDEC task that post processing is required for the frame
95 */
96
97#define VIDDEC_CMD_PP_ENABLE 0x0001
98#define VIDDEC_CMD_PP_ENABLE_LEN \
99 sizeof(viddec_cmd_pp_enable)
100
101#define VIDDEC_CMD_PP_INFO_0_DM_DMA_LS_EXCHANGE_FLAG_DM 0x0000
102#define VIDDEC_CMD_PP_INFO_0_DM_DMA_LS_EXCHANGE_FLAG_DMA 0x0001
103
104typedef struct {
105 unsigned short cmd_id;
106 unsigned short packet_seq_num;
107 unsigned short codec_instance_id;
108 unsigned short postproc_info_0;
109 unsigned short codec_selection_word;
110 unsigned short pp_output_addr_high;
111 unsigned short pp_output_addr_low;
112 unsigned short postproc_info_1;
113 unsigned short load_sharing_packet_size_high;
114 unsigned short load_sharing_packet_size_low;
115 unsigned short load_sharing_packet_high;
116 unsigned short load_sharing_packet_low;
117 unsigned short load_sharing_partition;
118 unsigned short pp_param_0;
119 unsigned short pp_param_1;
120 unsigned short pp_param_2;
121 unsigned short pp_param_3;
122} __attribute__((packed)) viddec_cmd_pp_enable;
123
124
125/*
126 * FRAME Header Packet : It is at the start of new frame
127 */
128
129#define VIDDEC_CMD_FRAME_HEADER_PACKET 0x0002
130#define VIDDEC_CMD_FRAME_HEADER_PACKET_LEN \
131 sizeof(viddec_cmd_frame_header_packet)
132
133#define VIDDEC_CMD_FRAME_INFO_0_ERROR_SKIP 0x0000
134#define VIDDEC_CMD_FRAME_INFO_0_ERROR_BLACK 0x0800
135
136typedef struct {
137 unsigned short packet_id;
138 unsigned short x_dimension;
139 unsigned short y_dimension;
140 unsigned short line_width;
141 unsigned short frame_info_0;
142 unsigned short frame_buffer_0_high;
143 unsigned short frame_buffer_0_low;
144 unsigned short frame_buffer_1_high;
145 unsigned short frame_buffer_1_low;
146 unsigned short frame_buffer_2_high;
147 unsigned short frame_buffer_2_low;
148 unsigned short frame_buffer_3_high;
149 unsigned short frame_buffer_3_low;
150 unsigned short frame_buffer_4_high;
151 unsigned short frame_buffer_4_low;
152 unsigned short frame_buffer_5_high;
153 unsigned short frame_buffer_5_low;
154 unsigned short frame_buffer_6_high;
155 unsigned short frame_buffer_6_low;
156 unsigned short frame_buffer_7_high;
157 unsigned short frame_buffer_7_low;
158 unsigned short frame_buffer_8_high;
159 unsigned short frame_buffer_8_low;
160 unsigned short frame_buffer_9_high;
161 unsigned short frame_buffer_9_low;
162 unsigned short frame_buffer_10_high;
163 unsigned short frame_buffer_10_low;
164 unsigned short frame_buffer_11_high;
165 unsigned short frame_buffer_11_low;
166 unsigned short frame_buffer_12_high;
167 unsigned short frame_buffer_12_low;
168 unsigned short frame_buffer_13_high;
169 unsigned short frame_buffer_13_low;
170 unsigned short frame_buffer_14_high;
171 unsigned short frame_buffer_14_low;
172 unsigned short frame_buffer_15_high;
173 unsigned short frame_buffer_15_low;
174 unsigned short output_frame_buffer_high;
175 unsigned short output_frame_buffer_low;
176 unsigned short end_of_packet_marker;
177} __attribute__((packed)) viddec_cmd_frame_header_packet;
178
179
180/*
181 * SLICE HEADER PACKET
182 * I-Slice and P-Slice
183 */
184
185#define VIDDEC_CMD_SLICE_HEADER_PKT_ISLICE 0x0003
186#define VIDDEC_CMD_SLICE_HEADER_PKT_ISLICE_LEN \
187 sizeof(viddec_cmd_slice_header_pkt_islice)
188
189#define VIDDEC_CMD_ISLICE_INFO_1_MOD_SLICE_TYPE_PSLICE 0x0000
190#define VIDDEC_CMD_ISLICE_INFO_1_MOD_SLICE_TYPE_BSLICE 0x0100
191#define VIDDEC_CMD_ISLICE_INFO_1_MOD_SLICE_TYPE_ISLICE 0x0200
192#define VIDDEC_CMD_ISLICE_INFO_1_MOD_SLICE_TYPE_SPSLICE 0x0300
193#define VIDDEC_CMD_ISLICE_INFO_1_MOD_SLICE_TYPE_SISLICE 0x0400
194#define VIDDEC_CMD_ISLICE_INFO_1_NOPADDING 0x0000
195#define VIDDEC_CMD_ISLICE_INFO_1_PADDING 0x0800
196
197#define VIDDEC_CMD_ISLICE_EOP_MARKER 0x7FFF
198
199typedef struct {
200 unsigned short cmd_id;
201 unsigned short packet_id;
202 unsigned short slice_info_0;
203 unsigned short slice_info_1;
204 unsigned short slice_info_2;
205 unsigned short num_bytes_in_rbsp_high;
206 unsigned short num_bytes_in_rbsp_low;
207 unsigned short num_bytes_in_rbsp_consumed;
208 unsigned short end_of_packet_marker;
209} __attribute__((packed)) viddec_cmd_slice_header_pkt_islice;
210
211
212#define VIDDEC_CMD_SLICE_HEADER_PKT_PSLICE 0x0003
213#define VIDDEC_CMD_SLICE_HEADER_PKT_PSLICE_LEN \
214 sizeof(viddec_cmd_slice_header_pkt_pslice)
215
216
217typedef struct {
218 unsigned short cmd_id;
219 unsigned short packet_id;
220 unsigned short slice_info_0;
221 unsigned short slice_info_1;
222 unsigned short slice_info_2;
223 unsigned short slice_info_3;
224 unsigned short refidx_l0_map_tab_info_0;
225 unsigned short refidx_l0_map_tab_info_1;
226 unsigned short refidx_l0_map_tab_info_2;
227 unsigned short refidx_l0_map_tab_info_3;
228 unsigned short num_bytes_in_rbsp_high;
229 unsigned short num_bytes_in_rbsp_low;
230 unsigned short num_bytes_in_rbsp_consumed;
231 unsigned short end_of_packet_marker;
232} __attribute__((packed)) viddec_cmd_slice_header_pkt_pslice;
233
234
235#endif