Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel...
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / drivers / staging / dream / include / mach / qdsp5 / qdsp5vdeccmdi.h
blob3a32ee99c6e4d7d19d162a406f26f43880d4489f
1 #ifndef QDSP5VIDDECCMDI_H
2 #define QDSP5VIDDECCMDI_H
4 /*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
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
8 GENERAL DESCRIPTION
9 This file contains defintions of format blocks of commands
10 that are accepted by VIDDEC Task
12 REFERENCES
13 None
15 EXTERNALIZED FUNCTIONS
16 None
18 Copyright(c) 1992 - 2008 by QUALCOMM, Incorporated.
20 This software is licensed under the terms of the GNU General Public
21 License version 2, as published by the Free Software Foundation, and
22 may be copied, distributed, and modified under those terms.
24 This program is distributed in the hope that it will be useful,
25 but WITHOUT ANY WARRANTY; without even the implied warranty of
26 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27 GNU General Public License for more details.
29 *====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/
30 /*===========================================================================
32 EDIT HISTORY FOR FILE
34 This section contains comments describing changes made to this file.
35 Notice that changes are listed in reverse chronological order.
37 $Header: //source/qcom/qct/multimedia2/AdspSvc/7XXX/qdsp5cmd/video/qdsp5vdeccmdi.h#2 $ $DateTime: 2008/07/30 10:50:23 $ $Author: pavanr $
38 Revision History:
40 when who what, where, why
41 -------- --- ----------------------------------------------------------
42 05/10/08 ac initial version
43 ===========================================================================*/
47 * Command to inform VIDDEC that new subframe packet is ready
50 #define VIDDEC_CMD_SUBFRAME_PKT 0x0000
51 #define VIDDEC_CMD_SUBFRAME_PKT_LEN \
52 sizeof(viddec_cmd_subframe_pkt)
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
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
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
72 typedef 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;
94 * Command to inform VIDDEC task that post processing is required for the frame
97 #define VIDDEC_CMD_PP_ENABLE 0x0001
98 #define VIDDEC_CMD_PP_ENABLE_LEN \
99 sizeof(viddec_cmd_pp_enable)
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
104 typedef 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;
126 * FRAME Header Packet : It is at the start of new frame
129 #define VIDDEC_CMD_FRAME_HEADER_PACKET 0x0002
130 #define VIDDEC_CMD_FRAME_HEADER_PACKET_LEN \
131 sizeof(viddec_cmd_frame_header_packet)
133 #define VIDDEC_CMD_FRAME_INFO_0_ERROR_SKIP 0x0000
134 #define VIDDEC_CMD_FRAME_INFO_0_ERROR_BLACK 0x0800
136 typedef 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;
181 * SLICE HEADER PACKET
182 * I-Slice and P-Slice
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)
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
197 #define VIDDEC_CMD_ISLICE_EOP_MARKER 0x7FFF
199 typedef 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;
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)
217 typedef 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;
235 #endif