1*53ee8cc1Swenshuai.xi #include <linux/kernel.h>
2*53ee8cc1Swenshuai.xi #include <linux/string.h>
3*53ee8cc1Swenshuai.xi #include <linux/slab.h>
4*53ee8cc1Swenshuai.xi #include <asm/uaccess.h>
5*53ee8cc1Swenshuai.xi
6*53ee8cc1Swenshuai.xi #include "NJPEG_EX_adp.h"
7*53ee8cc1Swenshuai.xi #include "utopia.h"
8*53ee8cc1Swenshuai.xi #include "utopia_adp.h"
9*53ee8cc1Swenshuai.xi
10*53ee8cc1Swenshuai.xi #include "apiJPEG.h"
11*53ee8cc1Swenshuai.xi #include "apiJPEG_v2.h"
12*53ee8cc1Swenshuai.xi
13*53ee8cc1Swenshuai.xi #include "MsDevice.h"
14*53ee8cc1Swenshuai.xi
15*53ee8cc1Swenshuai.xi
16*53ee8cc1Swenshuai.xi #ifdef MSOS_TYPE_LINUX_KERNEL
17*53ee8cc1Swenshuai.xi
18*53ee8cc1Swenshuai.xi #ifndef CPY_FROM_USER
19*53ee8cc1Swenshuai.xi #define CPY_FROM_USER copy_from_user
20*53ee8cc1Swenshuai.xi #endif
21*53ee8cc1Swenshuai.xi #ifndef CPY_to_USER
22*53ee8cc1Swenshuai.xi #define CPY_to_USER copy_to_user
23*53ee8cc1Swenshuai.xi #endif
24*53ee8cc1Swenshuai.xi
25*53ee8cc1Swenshuai.xi #else
26*53ee8cc1Swenshuai.xi #ifndef CPY_FROM_USER
27*53ee8cc1Swenshuai.xi #define CPY_FROM_USER memcpy
28*53ee8cc1Swenshuai.xi #endif
29*53ee8cc1Swenshuai.xi #ifndef CPY_to_USER
30*53ee8cc1Swenshuai.xi #define CPY_to_USER memcpy
31*53ee8cc1Swenshuai.xi #endif
32*53ee8cc1Swenshuai.xi
33*53ee8cc1Swenshuai.xi #endif
34*53ee8cc1Swenshuai.xi
35*53ee8cc1Swenshuai.xi
36*53ee8cc1Swenshuai.xi
37*53ee8cc1Swenshuai.xi UADP_SDT_0_DEF(NJPEG_MS_PHY);
38*53ee8cc1Swenshuai.xi UADP_SDT_0_DEF(NJPEG_MS_VIRT);
39*53ee8cc1Swenshuai.xi UADP_SDT_0_DEF(NJPEG_POINTER);
40*53ee8cc1Swenshuai.xi
41*53ee8cc1Swenshuai.xi
42*53ee8cc1Swenshuai.xi
43*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_BOOL,0);
44*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_U8,0);
45*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_U16,0);
46*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_U32,0);
47*53ee8cc1Swenshuai.xi
48*53ee8cc1Swenshuai.xi
49*53ee8cc1Swenshuai.xi
50*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_BOOL_PARAM,0);
51*53ee8cc1Swenshuai.xi
52*53ee8cc1Swenshuai.xi
53*53ee8cc1Swenshuai.xi #ifdef BIFROST_32BIT_MODE
54*53ee8cc1Swenshuai.xi UADP_SDT_4_DEF(NJPEG_InitParam);
55*53ee8cc1Swenshuai.xi #else
56*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_InitParam);
57*53ee8cc1Swenshuai.xi #endif
58*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_INIT_PARAM);
59*53ee8cc1Swenshuai.xi
60*53ee8cc1Swenshuai.xi
61*53ee8cc1Swenshuai.xi UADP_SDT_3_DEF(NJPEG_GETAPP0INFO_PARAM);
62*53ee8cc1Swenshuai.xi
63*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_RESULT_PARAM,0);
64*53ee8cc1Swenshuai.xi
65*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_GETERRORCODE_PARAM,0);
66*53ee8cc1Swenshuai.xi
67*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_JPEGEVENT_PARAM,0);
68*53ee8cc1Swenshuai.xi
69*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_SETMBUFFERVALID_PARAM,0);
70*53ee8cc1Swenshuai.xi
71*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_UPDATEREADINFO_PARAM,0);
72*53ee8cc1Swenshuai.xi
73*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_PROCESSEOF_PARAM,0);
74*53ee8cc1Swenshuai.xi
75*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_SETERRORCODE_PARAM,0);
76*53ee8cc1Swenshuai.xi
77*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_RESOLUTION_PARAM,0);
78*53ee8cc1Swenshuai.xi
79*53ee8cc1Swenshuai.xi
80*53ee8cc1Swenshuai.xi UADP_SDT_0_DEF(NJPEG_MSIF_Version);
81*53ee8cc1Swenshuai.xi UADP_SDT_3_DEF(NJPEG_Info);
82*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_GETINFO_PARAM);
83*53ee8cc1Swenshuai.xi
84*53ee8cc1Swenshuai.xi
85*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_Status,0);
86*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_GETSTATUS_PARAM,1);
87*53ee8cc1Swenshuai.xi
88*53ee8cc1Swenshuai.xi typedef struct
89*53ee8cc1Swenshuai.xi {
90*53ee8cc1Swenshuai.xi MSIF_Version* pMSIF_Version;
91*53ee8cc1Swenshuai.xi }PMSIF_Version;
92*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_PMSIF_Version);
93*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_GETLIBVER_PARAM);
94*53ee8cc1Swenshuai.xi
95*53ee8cc1Swenshuai.xi
96*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_BuffLoadType,0);
97*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_GETBUFFLOADTYPE_PARAM,1);
98*53ee8cc1Swenshuai.xi
99*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_WAITDONE_PARAM,0);
100*53ee8cc1Swenshuai.xi
101*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_EXIF_DateTime,0);
102*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_GETEXIFDATETIME_PARAM,1);
103*53ee8cc1Swenshuai.xi
104*53ee8cc1Swenshuai.xi UADP_SDT_0_DEF(NJPEG_EXIF_Orientation);
105*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_GETEXIFORIENTATION_PARAM);
106*53ee8cc1Swenshuai.xi
107*53ee8cc1Swenshuai.xi UADP_SDT_0_DEF(NJPEG_EXIF_STRING);
108*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_GETEXIFSTRING_PARAM);
109*53ee8cc1Swenshuai.xi
110*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_GETEXIFU16_PARAM);
111*53ee8cc1Swenshuai.xi
112*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_GETEXIFU32_PARAM);
113*53ee8cc1Swenshuai.xi
114*53ee8cc1Swenshuai.xi UADP_SDT_0_DEF(NJPEG_RATIONAL);
115*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_GETEXIFRATIONAL_PARAM);
116*53ee8cc1Swenshuai.xi
117*53ee8cc1Swenshuai.xi #ifdef BIFROST_32BIT_MODE
118*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_GETFREEMEMORY_PARAM);
119*53ee8cc1Swenshuai.xi #else
120*53ee8cc1Swenshuai.xi UADP_SDT_0_DEF(NJPEG_GETFREEMEMORY_PARAM);
121*53ee8cc1Swenshuai.xi #endif
122*53ee8cc1Swenshuai.xi
123*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_SUPPORTCMYK_PARAM,0);
124*53ee8cc1Swenshuai.xi
125*53ee8cc1Swenshuai.xi
126*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
127*53ee8cc1Swenshuai.xi {
128*53ee8cc1Swenshuai.xi JPEG_MPO_INDEX_INFO* pMPOIndex;
129*53ee8cc1Swenshuai.xi }PJPEG_MPO_INDEX_INFO;
130*53ee8cc1Swenshuai.xi
131*53ee8cc1Swenshuai.xi UADP_SDT_0_DEF(NJPEG_MPO_INDEX_INFO);
132*53ee8cc1Swenshuai.xi //UADP_SDT_1_DEF(NJPEG_PJPEG_MPO_INDEX_INFO);
133*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_GETMPOINDEX_PARAM);
134*53ee8cc1Swenshuai.xi
135*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
136*53ee8cc1Swenshuai.xi {
137*53ee8cc1Swenshuai.xi JPEG_MPO_ATTRIBUTE_INFO* pMPOAttr;
138*53ee8cc1Swenshuai.xi }PJPEG_MPO_ATTRIBUTE_INFO;
139*53ee8cc1Swenshuai.xi
140*53ee8cc1Swenshuai.xi UADP_SDT_0_DEF(NJPEG_MPO_ATTRIBUTE_INFO);
141*53ee8cc1Swenshuai.xi //UADP_SDT_1_DEF(NJPEG_PJPEG_MPO_ATTRIBUTE_INFO);
142*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_GETMPOATTR_PARAM);
143*53ee8cc1Swenshuai.xi
144*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_SETMPOBUFFER_PARAM,0);
145*53ee8cc1Swenshuai.xi
146*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_VERIFICATION_PARAM,0);
147*53ee8cc1Swenshuai.xi
148*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_GET_CTRL_PARAM,1);
149*53ee8cc1Swenshuai.xi
150*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
151*53ee8cc1Swenshuai.xi {
152*53ee8cc1Swenshuai.xi char info[128];
153*53ee8cc1Swenshuai.xi }JPEG_INFO_128BYTE;
154*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_EXIF_MANUFACTURER,0);
155*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_GET_EXIF_MANUFACTURER,1);
156*53ee8cc1Swenshuai.xi
157*53ee8cc1Swenshuai.xi typedef struct DLL_PACKED
158*53ee8cc1Swenshuai.xi {
159*53ee8cc1Swenshuai.xi char info[8];
160*53ee8cc1Swenshuai.xi }JPEG_INFO_8BYTE;
161*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_EXIF_SHUTTER_SPEED_VALUE,0);
162*53ee8cc1Swenshuai.xi UADP_SPT_NAMEnNXT_DEF(NJPEG_GET_EXIF_SHUTTER_SPEED_VALUE,1);
163*53ee8cc1Swenshuai.xi
164*53ee8cc1Swenshuai.xi
165*53ee8cc1Swenshuai.xi #ifdef BIFROST_32BIT_MODE
166*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_CB_CTRL_PARAM);
167*53ee8cc1Swenshuai.xi #else
168*53ee8cc1Swenshuai.xi UADP_SDT_0_DEF(NJPEG_CB_CTRL_PARAM);
169*53ee8cc1Swenshuai.xi #endif
170*53ee8cc1Swenshuai.xi
171*53ee8cc1Swenshuai.xi UADP_SDT_1_DEF(NJPEG_ENABLE_ISR);
172*53ee8cc1Swenshuai.xi
173*53ee8cc1Swenshuai.xi
174*53ee8cc1Swenshuai.xi
175*53ee8cc1Swenshuai.xi
176*53ee8cc1Swenshuai.xi
177*53ee8cc1Swenshuai.xi
NJPEG_EX_adp_Init(FUtopiaIOctl * pIoctl)178*53ee8cc1Swenshuai.xi MS_U32 NJPEG_EX_adp_Init(FUtopiaIOctl* pIoctl)
179*53ee8cc1Swenshuai.xi {
180*53ee8cc1Swenshuai.xi
181*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_MS_PHY,MS_PHY);
182*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_MS_VIRT,MS_VIRT);
183*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_POINTER,unsigned char);
184*53ee8cc1Swenshuai.xi
185*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_BOOL,MS_BOOL);
186*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_U8,MS_U8);
187*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_U16,MS_U16);
188*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_U32,MS_U32);
189*53ee8cc1Swenshuai.xi
190*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_BOOL_PARAM,JPEG_BOOL_PARAM);
191*53ee8cc1Swenshuai.xi
192*53ee8cc1Swenshuai.xi #ifdef BIFROST_32BIT_MODE
193*53ee8cc1Swenshuai.xi UADP_SDT_NAME4(NJPEG_InitParam,JPEG_InitParam,
194*53ee8cc1Swenshuai.xi UADP_SDT_AT, u32MRCBufAddr, NJPEG_MS_PHY,
195*53ee8cc1Swenshuai.xi UADP_SDT_AT, u32MWCBufAddr, NJPEG_MS_PHY,
196*53ee8cc1Swenshuai.xi UADP_SDT_AT, u32InternalBufAddr, NJPEG_MS_PHY,
197*53ee8cc1Swenshuai.xi UADP_SDT_AT, pFillHdrFunc, NJPEG_POINTER);
198*53ee8cc1Swenshuai.xi #else
199*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_InitParam,JPEG_InitParam,
200*53ee8cc1Swenshuai.xi UADP_SDT_AT, pFillHdrFunc, NJPEG_POINTER);
201*53ee8cc1Swenshuai.xi #endif
202*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_INIT_PARAM, JPEG_INIT_PARAM,
203*53ee8cc1Swenshuai.xi UADP_SDT_P2N, pInitParam, NJPEG_InitParam);
204*53ee8cc1Swenshuai.xi
205*53ee8cc1Swenshuai.xi UADP_SDT_NAME3(NJPEG_GETAPP0INFO_PARAM,JPEG_GETAPP0INFO_PARAM,
206*53ee8cc1Swenshuai.xi UADP_SDT_P2N, unit, NJPEG_U8,
207*53ee8cc1Swenshuai.xi UADP_SDT_P2N, x, NJPEG_U16,
208*53ee8cc1Swenshuai.xi UADP_SDT_P2N, y, NJPEG_U16);
209*53ee8cc1Swenshuai.xi
210*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_RESULT_PARAM,JPEG_RESULT_PARAM);
211*53ee8cc1Swenshuai.xi
212*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_GETERRORCODE_PARAM,JPEG_GETERRORCODE_PARAM);
213*53ee8cc1Swenshuai.xi
214*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_JPEGEVENT_PARAM,JPEG_JPEGEVENT_PARAM);
215*53ee8cc1Swenshuai.xi
216*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_SETMBUFFERVALID_PARAM,JPEG_SETMBUFFERVALID_PARAM);
217*53ee8cc1Swenshuai.xi
218*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_UPDATEREADINFO_PARAM,JPEG_UPDATEREADINFO_PARAM);
219*53ee8cc1Swenshuai.xi
220*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_PROCESSEOF_PARAM,JPEG_PROCESSEOF_PARAM);
221*53ee8cc1Swenshuai.xi
222*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_SETERRORCODE_PARAM,JPEG_SETERRORCODE_PARAM);
223*53ee8cc1Swenshuai.xi
224*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_RESOLUTION_PARAM,JPEG_RESOLUTION_PARAM);
225*53ee8cc1Swenshuai.xi
226*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_MSIF_Version, MSIF_Version);
227*53ee8cc1Swenshuai.xi UADP_SDT_NAME3(NJPEG_Info,JPEG_Info,
228*53ee8cc1Swenshuai.xi UADP_SDT_AT, pu8DrvVer, NJPEG_MSIF_Version,
229*53ee8cc1Swenshuai.xi UADP_SDT_AT, pu8HalVer, NJPEG_U8,
230*53ee8cc1Swenshuai.xi UADP_SDT_AT, pu8FwVer, NJPEG_U8);
231*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETINFO_PARAM, JPEG_GETINFO_PARAM,
232*53ee8cc1Swenshuai.xi UADP_SDT_P2N, pJPEG_Info, NJPEG_Info);
233*53ee8cc1Swenshuai.xi
234*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_Status, JPEG_Status);
235*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETSTATUS_PARAM, JPEG_GETSTATUS_PARAM,
236*53ee8cc1Swenshuai.xi UADP_SDT_P2N, pJPEG_Status, NJPEG_Status);
237*53ee8cc1Swenshuai.xi
238*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_PMSIF_Version, PMSIF_Version,
239*53ee8cc1Swenshuai.xi UADP_SDT_P2N, pMSIF_Version, NJPEG_MSIF_Version);
240*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETLIBVER_PARAM, JPEG_GETLIBVER_PARAM,
241*53ee8cc1Swenshuai.xi UADP_SDT_AT, ppVersion, NJPEG_PMSIF_Version);
242*53ee8cc1Swenshuai.xi
243*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_BuffLoadType, JPEG_BuffLoadType);
244*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETBUFFLOADTYPE_PARAM, JPEG_GETBUFFLOADTYPE_PARAM,
245*53ee8cc1Swenshuai.xi UADP_SDT_P2N, pBuffLoadType, NJPEG_BuffLoadType);
246*53ee8cc1Swenshuai.xi
247*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_WAITDONE_PARAM,JPEG_WAITDONE_PARAM);
248*53ee8cc1Swenshuai.xi
249*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_EXIF_DateTime, JPEG_EXIF_DateTime);
250*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETEXIFDATETIME_PARAM, JPEG_GETEXIFDATETIME_PARAM,
251*53ee8cc1Swenshuai.xi UADP_SDT_P2N, DateTime, NJPEG_EXIF_DateTime);
252*53ee8cc1Swenshuai.xi
253*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_EXIF_Orientation, JPEG_EXIF_Orientation);
254*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETEXIFORIENTATION_PARAM, JPEG_GETEXIFORIENTATION_PARAM,
255*53ee8cc1Swenshuai.xi UADP_SDT_P2N, eOrientation, NJPEG_EXIF_Orientation);
256*53ee8cc1Swenshuai.xi
257*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_EXIF_STRING, JPEG_INFO_128BYTE);
258*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETEXIFSTRING_PARAM, JPEG_GETEXIFSTRING_PARAM,
259*53ee8cc1Swenshuai.xi UADP_SDT_P2N, pu8String, NJPEG_EXIF_STRING);
260*53ee8cc1Swenshuai.xi
261*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETEXIFU16_PARAM, JPEG_GETEXIFU16_PARAM,
262*53ee8cc1Swenshuai.xi UADP_SDT_P2N, pu16Value, NJPEG_U16);
263*53ee8cc1Swenshuai.xi
264*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETEXIFU32_PARAM, JPEG_GETEXIFU32_PARAM,
265*53ee8cc1Swenshuai.xi UADP_SDT_P2N, pu32Value, NJPEG_U32);
266*53ee8cc1Swenshuai.xi
267*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_RATIONAL, JPEG_RATIONAL);
268*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETEXIFRATIONAL_PARAM, JPEG_GETEXIFRATIONAL_PARAM,
269*53ee8cc1Swenshuai.xi UADP_SDT_P2N, pRational, NJPEG_RATIONAL);
270*53ee8cc1Swenshuai.xi
271*53ee8cc1Swenshuai.xi #ifdef BIFROST_32BIT_MODE
272*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETFREEMEMORY_PARAM, JPEG_GETFREEMEMORY_PARAM,
273*53ee8cc1Swenshuai.xi UADP_SDT_AT, addr, NJPEG_MS_PHY);
274*53ee8cc1Swenshuai.xi #else
275*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_GETFREEMEMORY_PARAM, JPEG_GETFREEMEMORY_PARAM);
276*53ee8cc1Swenshuai.xi #endif
277*53ee8cc1Swenshuai.xi
278*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_SUPPORTCMYK_PARAM,JPEG_SUPPORTCMYK_PARAM);
279*53ee8cc1Swenshuai.xi
280*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_MPO_INDEX_INFO, JPEG_MPO_INDEX_INFO);
281*53ee8cc1Swenshuai.xi // UADP_SDT_NAME1(NJPEG_PJPEG_MPO_INDEX_INFO, PJPEG_MPO_INDEX_INFO,
282*53ee8cc1Swenshuai.xi // UADP_SDT_P2N, pMPOIndex, NJPEG_MPO_INDEX_INFO);
283*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETMPOINDEX_PARAM, JPEG_GETMPOINDEX_PARAM,
284*53ee8cc1Swenshuai.xi UADP_SDT_AT, pMPOIndex, NJPEG_MPO_INDEX_INFO);
285*53ee8cc1Swenshuai.xi
286*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_MPO_ATTRIBUTE_INFO, JPEG_MPO_ATTRIBUTE_INFO);
287*53ee8cc1Swenshuai.xi // UADP_SDT_NAME1(NJPEG_PJPEG_MPO_ATTRIBUTE_INFO, PJPEG_MPO_ATTRIBUTE_INFO,
288*53ee8cc1Swenshuai.xi // UADP_SDT_P2N, pMPOAttr, NJPEG_MPO_ATTRIBUTE_INFO);
289*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GETMPOATTR_PARAM, JPEG_GETMPOATTR_PARAM,
290*53ee8cc1Swenshuai.xi UADP_SDT_AT, pMPOAttr, NJPEG_MPO_ATTRIBUTE_INFO);
291*53ee8cc1Swenshuai.xi
292*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_SETMPOBUFFER_PARAM,JPEG_SETMPOBUFFER_PARAM);
293*53ee8cc1Swenshuai.xi
294*53ee8cc1Swenshuai.xi UADP_SPT_NAME0NXT(NJPEG_VERIFICATION_PARAM,JPEG_VERIFICATION_PARAM);
295*53ee8cc1Swenshuai.xi
296*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GET_CTRL_PARAM, JPEG_GET_CTRL_PARAM,
297*53ee8cc1Swenshuai.xi UADP_SDT_AT, param, NJPEG_POINTER);
298*53ee8cc1Swenshuai.xi
299*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_EXIF_MANUFACTURER, JPEG_INFO_128BYTE);
300*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GET_EXIF_MANUFACTURER, JPEG_GET_CTRL_PARAM,
301*53ee8cc1Swenshuai.xi UADP_SDT_P2N, param,NJPEG_EXIF_MANUFACTURER);
302*53ee8cc1Swenshuai.xi
303*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_EXIF_SHUTTER_SPEED_VALUE, JPEG_INFO_128BYTE);
304*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_GET_EXIF_SHUTTER_SPEED_VALUE, JPEG_GET_CTRL_PARAM,
305*53ee8cc1Swenshuai.xi UADP_SDT_P2N, param,NJPEG_EXIF_SHUTTER_SPEED_VALUE);
306*53ee8cc1Swenshuai.xi
307*53ee8cc1Swenshuai.xi #ifdef BIFROST_32BIT_MODE
308*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_CB_CTRL_PARAM, JPEG_CB_EVENT_PARAM,
309*53ee8cc1Swenshuai.xi UADP_SDT_AT, BufAddr,NJPEG_MS_PHY);
310*53ee8cc1Swenshuai.xi #else
311*53ee8cc1Swenshuai.xi UADP_SDT_NAME0(NJPEG_CB_CTRL_PARAM, JPEG_CB_EVENT_PARAM);
312*53ee8cc1Swenshuai.xi #endif
313*53ee8cc1Swenshuai.xi
314*53ee8cc1Swenshuai.xi UADP_SDT_NAME1(NJPEG_ENABLE_ISR, JPEG_ENABLEISR_PARAM,
315*53ee8cc1Swenshuai.xi UADP_SDT_AT, IsrCb,NJPEG_POINTER);
316*53ee8cc1Swenshuai.xi
317*53ee8cc1Swenshuai.xi
318*53ee8cc1Swenshuai.xi
319*53ee8cc1Swenshuai.xi *pIoctl= (FUtopiaIOctl)NJPEG_EX_adp_Ioctl;
320*53ee8cc1Swenshuai.xi
321*53ee8cc1Swenshuai.xi return 0;
322*53ee8cc1Swenshuai.xi }
323*53ee8cc1Swenshuai.xi
324*53ee8cc1Swenshuai.xi
NJPEG_EX_adp_Ioctl(void * pInstanceTmp,MS_U32 u32Cmd,void * const pArgs)325*53ee8cc1Swenshuai.xi MS_U32 NJPEG_EX_adp_Ioctl(void* pInstanceTmp, MS_U32 u32Cmd, void* const pArgs)
326*53ee8cc1Swenshuai.xi {
327*53ee8cc1Swenshuai.xi MS_U32 u32Ret;
328*53ee8cc1Swenshuai.xi char buffer_arg[2048];
329*53ee8cc1Swenshuai.xi
330*53ee8cc1Swenshuai.xi switch(u32Cmd)
331*53ee8cc1Swenshuai.xi {
332*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_EnableOJPD:
333*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_IsProgressive:
334*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_ThumbnailFound:
335*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetMHEG5:
336*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_IsMPOFormat:
337*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_BOOL_PARAM, spt_NJPEG_BOOL_PARAM,buffer_arg,sizeof(buffer_arg));
338*53ee8cc1Swenshuai.xi break;
339*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_Init_UsingOJPD:
340*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_Init:// TODO: there is callback inside
341*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_INIT_PARAM, spt_NJPEG_INIT_PARAM,buffer_arg,sizeof(buffer_arg));
342*53ee8cc1Swenshuai.xi break;
343*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_get_APP0_info:
344*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETAPP0INFO_PARAM, spt_NJPEG_GETAPP0INFO_PARAM,buffer_arg,sizeof(buffer_arg));
345*53ee8cc1Swenshuai.xi break;
346*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_DecodeHdr:
347*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_Decode:
348*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_HdlVidxChk:
349*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_DisableISR:
350*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_RESULT_PARAM, spt_NJPEG_RESULT_PARAM,buffer_arg,sizeof(buffer_arg));
351*53ee8cc1Swenshuai.xi break;
352*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetMaxDecodeResolution:
353*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetProMaxDecodeResolution:
354*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetMPOMaxDecodeResolution:
355*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetMPOProMaxDecodeResolution:
356*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_RESOLUTION_PARAM, spt_NJPEG_RESOLUTION_PARAM,buffer_arg,sizeof(buffer_arg));
357*53ee8cc1Swenshuai.xi break;
358*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_Exit:
359*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_Rst:
360*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_PowerOn:
361*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_PowerOff:
362*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_DumpMPO:
363*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_Debug:
364*53ee8cc1Swenshuai.xi u32Ret=UtopiaIoctl(pInstanceTmp,u32Cmd, NULL);
365*53ee8cc1Swenshuai.xi break;
366*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetErrorCode:
367*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETERRORCODE_PARAM, spt_NJPEG_GETERRORCODE_PARAM,buffer_arg,sizeof(buffer_arg));
368*53ee8cc1Swenshuai.xi break;
369*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetJPDEventFlag:
370*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetJPDEventFlag:
371*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_JPEGEVENT_PARAM, spt_NJPEG_JPEGEVENT_PARAM,buffer_arg,sizeof(buffer_arg));
372*53ee8cc1Swenshuai.xi break;
373*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetCurVidx:
374*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetWidth:
375*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetHeight:
376*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetOriginalWidth:
377*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetOriginalHeight:
378*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetNonAlignmentWidth:
379*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetNonAlignmentHeight:
380*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetAlignedPitch:
381*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetAlignedPitch_H:
382*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetAlignedWidth:
383*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetAlignedHeight:
384*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_U16, spt_NJPEG_U16,buffer_arg,sizeof(buffer_arg));
385*53ee8cc1Swenshuai.xi break;
386*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetScaleDownFactor:
387*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetDbgLevel:
388*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetDbgLevel:
389*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetNJPDInstance:
390*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_U8, spt_NJPEG_U8,buffer_arg,sizeof(buffer_arg));
391*53ee8cc1Swenshuai.xi break;
392*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetMRBufferValid:
393*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_SETMBUFFERVALID_PARAM, spt_NJPEG_SETMBUFFERVALID_PARAM,buffer_arg,sizeof(buffer_arg));
394*53ee8cc1Swenshuai.xi break;
395*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_UpdateReadInfo:
396*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_UPDATEREADINFO_PARAM, spt_NJPEG_UPDATEREADINFO_PARAM,buffer_arg,sizeof(buffer_arg));
397*53ee8cc1Swenshuai.xi break;
398*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_ProcessEOF:
399*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_PROCESSEOF_PARAM, spt_NJPEG_PROCESSEOF_PARAM,buffer_arg,sizeof(buffer_arg));
400*53ee8cc1Swenshuai.xi break;
401*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetErrCode:
402*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_SETERRORCODE_PARAM, spt_NJPEG_SETERRORCODE_PARAM,buffer_arg,sizeof(buffer_arg));
403*53ee8cc1Swenshuai.xi break;
404*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetInfo:
405*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETINFO_PARAM, spt_NJPEG_GETINFO_PARAM,buffer_arg,sizeof(buffer_arg));
406*53ee8cc1Swenshuai.xi break;
407*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetStatus:
408*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETSTATUS_PARAM, spt_NJPEG_GETSTATUS_PARAM,buffer_arg,sizeof(buffer_arg));
409*53ee8cc1Swenshuai.xi break;
410*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetLibVer:
411*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETLIBVER_PARAM, spt_NJPEG_GETLIBVER_PARAM,buffer_arg,sizeof(buffer_arg));
412*53ee8cc1Swenshuai.xi break;
413*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetBuffLoadType:
414*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETBUFFLOADTYPE_PARAM, spt_NJPEG_GETBUFFLOADTYPE_PARAM,buffer_arg,sizeof(buffer_arg));
415*53ee8cc1Swenshuai.xi break;
416*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_EnableISR:// TODO: callback
417*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_ENABLE_ISR, spt_NJPEG_ENABLE_ISR,buffer_arg,sizeof(buffer_arg));
418*53ee8cc1Swenshuai.xi break;
419*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_WaitDone:
420*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_WAITDONE_PARAM, spt_NJPEG_WAITDONE_PARAM,buffer_arg,sizeof(buffer_arg));
421*53ee8cc1Swenshuai.xi break;
422*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFDateTime:
423*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETEXIFDATETIME_PARAM, spt_NJPEG_GETEXIFDATETIME_PARAM,buffer_arg,sizeof(buffer_arg));
424*53ee8cc1Swenshuai.xi break;
425*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFOrientation:
426*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETEXIFORIENTATION_PARAM, spt_NJPEG_GETEXIFORIENTATION_PARAM,buffer_arg,sizeof(buffer_arg));
427*53ee8cc1Swenshuai.xi break;
428*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFManufacturer:
429*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFModel:
430*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETEXIFSTRING_PARAM, spt_NJPEG_GETEXIFSTRING_PARAM,buffer_arg,sizeof(buffer_arg));
431*53ee8cc1Swenshuai.xi // u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GET_EXIF_MANUFACTURER, spt_NJPEG_GET_EXIF_MANUFACTURER,buffer_arg,sizeof(buffer_arg));
432*53ee8cc1Swenshuai.xi break;
433*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFFlash:
434*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETEXIFU16_PARAM, spt_NJPEG_GETEXIFU16_PARAM,buffer_arg,sizeof(buffer_arg));
435*53ee8cc1Swenshuai.xi break;
436*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFISOSpeedRatings:
437*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFImageWidth:
438*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFImageHeight:
439*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETEXIFU32_PARAM, spt_NJPEG_GETEXIFU32_PARAM,buffer_arg,sizeof(buffer_arg));
440*53ee8cc1Swenshuai.xi break;
441*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFShutterSpeedValue:
442*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFApertureValue:
443*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFExposureBiasValue:
444*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFFocalLength:
445*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFExposureTime:
446*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetEXIFFNumber:
447*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETEXIFRATIONAL_PARAM, spt_NJPEG_GETEXIFRATIONAL_PARAM,buffer_arg,sizeof(buffer_arg));
448*53ee8cc1Swenshuai.xi break;
449*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetFreeMemory:
450*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETFREEMEMORY_PARAM, spt_NJPEG_GETFREEMEMORY_PARAM,buffer_arg,sizeof(buffer_arg));
451*53ee8cc1Swenshuai.xi break;
452*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetDataOffset:
453*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetSOFOffset:
454*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_U32, spt_NJPEG_U32,buffer_arg,sizeof(buffer_arg));
455*53ee8cc1Swenshuai.xi break;
456*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SupportCMYK:
457*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SupportRGB:
458*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_SUPPORTCMYK_PARAM, spt_NJPEG_SUPPORTCMYK_PARAM,buffer_arg,sizeof(buffer_arg));
459*53ee8cc1Swenshuai.xi break;
460*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetMPOIndex:
461*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETMPOINDEX_PARAM, spt_NJPEG_GETMPOINDEX_PARAM,buffer_arg,sizeof(buffer_arg));
462*53ee8cc1Swenshuai.xi break;
463*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetMPOAttr:
464*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GETMPOATTR_PARAM, spt_NJPEG_GETMPOATTR_PARAM,buffer_arg,sizeof(buffer_arg));
465*53ee8cc1Swenshuai.xi break;
466*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetMPOBuffer:
467*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_SETMPOBUFFER_PARAM, spt_NJPEG_SETMPOBUFFER_PARAM,buffer_arg,sizeof(buffer_arg));
468*53ee8cc1Swenshuai.xi break;
469*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetVerificationMode:
470*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetVerificationMode:
471*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_VERIFICATION_PARAM, spt_NJPEG_VERIFICATION_PARAM,buffer_arg,sizeof(buffer_arg));
472*53ee8cc1Swenshuai.xi break;
473*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetControl:
474*53ee8cc1Swenshuai.xi {
475*53ee8cc1Swenshuai.xi JPEG_GET_CTRL_PARAM jpegGetCtrlParam;
476*53ee8cc1Swenshuai.xi CPY_FROM_USER((void*)(&jpegGetCtrlParam), (JPEG_GET_CTRL_PARAM*)pArgs, sizeof(JPEG_GET_CTRL_PARAM));
477*53ee8cc1Swenshuai.xi switch(jpegGetCtrlParam.eGetID)
478*53ee8cc1Swenshuai.xi {
479*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_MANUFACTURER://96
480*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_MODEL:
481*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GET_EXIF_MANUFACTURER, spt_NJPEG_GET_EXIF_MANUFACTURER,buffer_arg,sizeof(buffer_arg));
482*53ee8cc1Swenshuai.xi break;
483*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_FLASH://32
484*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_ISO_SPEED_RATINGS:
485*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_IMAGE_WIDTH:
486*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_IMAGE_HEIGHT:
487*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_EXPOSURE_PROGRAM:
488*53ee8cc1Swenshuai.xi case E_JPEG_GET_Y_SAMPLING_FACTOR_HORIZONTAL:
489*53ee8cc1Swenshuai.xi case E_JPEG_GET_Y_SAMPLING_FACTOR_VERTICAL:
490*53ee8cc1Swenshuai.xi case E_JPEG_GET_COMPONENTS_NUM:
491*53ee8cc1Swenshuai.xi case E_JPEG_GET_IS_PROGRESSIVE:
492*53ee8cc1Swenshuai.xi case E_JPEG_GET_COLOR_FORMAT:
493*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GET_CTRL_PARAM, spt_NJPEG_GET_CTRL_PARAM,buffer_arg,sizeof(buffer_arg));
494*53ee8cc1Swenshuai.xi break;
495*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_SHUTTER_SPEED_VALUE://64
496*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_APERTURE_VALUE:
497*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_EXPOSURE_BIAS_VALUE:
498*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_FOCAL_LENGTH:
499*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_EXPOSURE_TIME:
500*53ee8cc1Swenshuai.xi case E_JPEG_GET_EXIF_F_NUMBER:
501*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_GET_EXIF_SHUTTER_SPEED_VALUE, spt_NJPEG_GET_EXIF_SHUTTER_SPEED_VALUE,buffer_arg,sizeof(buffer_arg));
502*53ee8cc1Swenshuai.xi break;
503*53ee8cc1Swenshuai.xi }
504*53ee8cc1Swenshuai.xi }
505*53ee8cc1Swenshuai.xi break;
506*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_GetCbEvent:
507*53ee8cc1Swenshuai.xi case MApi_CMD_JPEG_SetCbEvent:
508*53ee8cc1Swenshuai.xi u32Ret=UADPBypassIoctl(pInstanceTmp,u32Cmd,pArgs,spt_NJPEG_CB_CTRL_PARAM, spt_NJPEG_CB_CTRL_PARAM,buffer_arg,sizeof(buffer_arg));
509*53ee8cc1Swenshuai.xi break;
510*53ee8cc1Swenshuai.xi
511*53ee8cc1Swenshuai.xi default:
512*53ee8cc1Swenshuai.xi break;
513*53ee8cc1Swenshuai.xi }
514*53ee8cc1Swenshuai.xi
515*53ee8cc1Swenshuai.xi return u32Ret;
516*53ee8cc1Swenshuai.xi }
517*53ee8cc1Swenshuai.xi
518*53ee8cc1Swenshuai.xi
519*53ee8cc1Swenshuai.xi
520*53ee8cc1Swenshuai.xi
521