SyntekUSBVideoCamera
|
00001 00034 #include <linux/module.h> 00035 #include <linux/init.h> 00036 #include <linux/kernel.h> 00037 #include <linux/version.h> 00038 #include <linux/errno.h> 00039 #include <linux/slab.h> 00040 #include <linux/kref.h> 00041 00042 #include <linux/usb.h> 00043 #include <media/v4l2-common.h> 00044 #include <media/v4l2-ioctl.h> 00045 00046 #include "stk11xx.h" 00047 #include "stk11xx-dev.h" 00048 00049 00050 //============================================================================= 00051 // 00052 // STK-6A51 API 00053 // 00054 //============================================================================= 00055 00056 00070 int dev_stk6a51_initialize_device(struct usb_stk11xx *dev) 00071 { 00072 int i; 00073 int value; 00074 int retok; 00075 00076 STK_INFO("Initialize USB2.0 Syntek Camera\n"); 00077 00078 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00079 usb_stk11xx_write_registry(dev, 0x0002, 0x0078); 00080 usb_stk11xx_write_registry(dev, 0x0003, 0x0080); 00081 00082 usb_stk11xx_write_registry(dev, 0x0002, 0x007f); 00083 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00084 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00085 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00086 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00087 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00088 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00089 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00090 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00091 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00092 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00093 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00094 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00095 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00096 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00097 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00098 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00099 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00100 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00101 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00102 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00103 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00104 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00105 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00106 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00107 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00108 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00109 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00110 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00111 usb_stk11xx_write_registry(dev, 0x0002, 0x007d); 00112 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00113 00114 for (i=0; i<16; i++) { 00115 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00116 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00117 usb_stk11xx_read_registry(dev, 0x0000, &value); 00118 00119 STK_DEBUG("Loop 1 : Read 0x0000 = %02X\n", value); 00120 } 00121 00122 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00123 usb_stk11xx_write_registry(dev, 0x0000, 0x0020); 00124 00125 usb_stk11xx_write_registry(dev, 0x0002, 0x007f); 00126 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00127 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00128 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00129 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00130 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00131 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00132 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00133 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00134 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00135 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00136 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00137 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00138 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00139 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00140 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00141 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00142 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00143 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00144 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00145 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00146 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00147 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00148 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00149 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00150 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00151 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00152 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00153 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00154 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00155 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00156 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00157 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00158 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00159 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00160 usb_stk11xx_write_registry(dev, 0x0002, 0x007d); 00161 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00162 00163 for (i=0; i<16; i++) { 00164 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00165 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00166 usb_stk11xx_read_registry(dev, 0x0000, &value); 00167 00168 STK_DEBUG("Loop 2 : Read 0x0000 = %02X\n", value); 00169 } 00170 00171 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00172 usb_stk11xx_write_registry(dev, 0x0000, 0x0020); 00173 00174 usb_stk11xx_write_registry(dev, 0x0002, 0x007f); 00175 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00176 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00177 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00178 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00179 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00180 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00181 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00182 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00183 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00184 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00185 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00186 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00187 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00188 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00189 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00190 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00191 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00192 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00193 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00194 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00195 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00196 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00197 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00198 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00199 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00200 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00201 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00202 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00203 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00204 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00205 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00206 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00207 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00208 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00209 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00210 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00211 usb_stk11xx_write_registry(dev, 0x0000, 0x0027); 00212 usb_stk11xx_write_registry(dev, 0x0000, 0x0026); 00213 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00214 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00215 usb_stk11xx_write_registry(dev, 0x0002, 0x007d); 00216 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00217 00218 for (i=0; i<16; i++) { 00219 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00220 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00221 usb_stk11xx_read_registry(dev, 0x0000, &value); 00222 00223 STK_DEBUG("Loop 3 : Read 0x0000 = %02X\n", value); 00224 } 00225 00226 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00227 usb_stk11xx_write_registry(dev, 0x0000, 0x0020); 00228 usb_stk11xx_write_registry(dev, 0x0002, 0x007f); 00229 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00230 usb_stk11xx_write_registry(dev, 0x0000, 0x0020); 00231 00232 usb_stk11xx_write_registry(dev, 0x0117, 0x0000); 00233 usb_stk11xx_read_registry(dev, 0x0103, &value); 00234 usb_stk11xx_write_registry(dev, 0x0103, 0x0001); 00235 usb_stk11xx_read_registry(dev, 0x0103, &value); 00236 usb_stk11xx_write_registry(dev, 0x0103, 0x0000); 00237 00238 usb_stk11xx_write_registry(dev, 0x0000, 0x00e0); 00239 usb_stk11xx_write_registry(dev, 0x0002, 0x00f8); 00240 usb_stk11xx_write_registry(dev, 0x0002, 0x0078); 00241 usb_stk11xx_write_registry(dev, 0x0000, 0x0020); 00242 00243 dev_stk6a51_configure_device(dev, 0); 00244 retok = dev_stk11xx_check_device(dev, 65); 00245 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00246 00247 dev_stk6a51_configure_device(dev, 1); 00248 retok = dev_stk11xx_check_device(dev, 65); 00249 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00250 00251 dev_stk6a51_configure_device(dev, 2); 00252 retok = dev_stk11xx_check_device(dev, 65); 00253 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00254 00255 dev_stk6a51_configure_device(dev, 3); 00256 retok = dev_stk11xx_check_device(dev, 65); 00257 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00258 00259 dev_stk6a51_configure_device(dev, 4); 00260 retok = dev_stk11xx_check_device(dev, 65); 00261 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00262 00263 dev_stk6a51_configure_device(dev, 5); 00264 retok = dev_stk11xx_check_device(dev, 65); 00265 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00266 00267 dev_stk6a51_configure_device(dev, 6); 00268 retok = dev_stk11xx_check_device(dev, 65); 00269 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00270 00271 dev_stk6a51_configure_device(dev, 7); 00272 retok = dev_stk11xx_check_device(dev, 65); 00273 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00274 00275 dev_stk6a51_configure_device(dev, 8); 00276 retok = dev_stk11xx_check_device(dev, 65); 00277 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00278 00279 dev_stk6a51_configure_device(dev, 9); 00280 retok = dev_stk11xx_check_device(dev, 65); 00281 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00282 00283 dev_stk6a51_configure_device(dev, 10); 00284 retok = dev_stk11xx_check_device(dev, 65); 00285 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00286 00287 dev_stk6a51_configure_device(dev, 11); 00288 retok = dev_stk11xx_check_device(dev, 65); 00289 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00290 00291 dev_stk6a51_configure_device(dev, 12); 00292 retok = dev_stk11xx_check_device(dev, 65); 00293 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00294 00295 dev_stk6a51_configure_device(dev, 13); 00296 00297 dev_stk6a51_configure_device(dev, 14); 00298 00299 dev_stk6a51_configure_device(dev, 15); 00300 retok = dev_stk11xx_check_device(dev, 65); 00301 usb_stk11xx_write_registry(dev, 0x0200, 0x0008); 00302 00303 dev_stk6a51_configure_device(dev, 16); 00304 00305 dev_stk6a51_configure_device(dev, 17); 00306 00307 00308 00309 00310 00311 dev_stk6a51_camera_asleep(dev); 00312 00313 usb_stk11xx_set_feature(dev, 0); 00314 00315 // Device is initialized and is ready !!! 00316 STK_INFO("Syntek USB2.0 Camera is ready\n"); 00317 00318 return 0; 00319 } 00320 00321 00335 int dev_stk6a51_configure_device(struct usb_stk11xx *dev, int step) 00336 { 00337 int retok; 00338 int value; 00339 00340 // 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 00341 static const int values_001B[] = { 00342 0x0e, 0x03, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0e, 0x0e, 0x0e, 0x0e 00343 }; 00344 static const int values_001C[] = { 00345 0x06, 0x02, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x46, 0x46, 0x46, 0x46 00346 }; 00347 static const int values_0202[] = { 00348 0x1e, 0x0a, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x0a, 0x1e, 0x14, 0x1e, 0x1f, 0x0a, 0x0a, 0x0a, 0x0a 00349 }; 00350 static const int values_0110[] = { 00351 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x3e, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 00352 }; 00353 static const int values_0112[] = { 00354 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01 00355 }; 00356 static const int values_0114[] = { 00357 0x87, 0x80, 0x80, 0x80, 0x80, 0x00, 0xbe, 0xbe, 0x80, 0x80, 0x84, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80 00358 }; 00359 static const int values_0115[] = { 00360 0x02, 0x02, 0x02, 0x02, 0x02, 0x05, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 00361 }; 00362 static const int values_0116[] = { 00363 0xe7, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe9, 0xe9, 0xe0, 0xe0, 0xe4, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1 00364 }; 00365 static const int values_0117[] = { 00366 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 00367 }; 00368 static const int values_0100[] = { 00369 0x20, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x23, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 00370 }; 00371 00372 00373 STK_DEBUG("dev_stk6a51_configure_device : %d\n", step); 00374 00375 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00376 usb_stk11xx_write_registry(dev, 0x0002, 0x0078); 00377 usb_stk11xx_write_registry(dev, 0x0003, 0x0080); 00378 usb_stk11xx_write_registry(dev, 0x0005, 0x0000); 00379 00380 usb_stk11xx_write_registry(dev, 0x0007, 0x0003); 00381 usb_stk11xx_write_registry(dev, 0x000d, 0x0000); 00382 usb_stk11xx_write_registry(dev, 0x000f, 0x0002); 00383 usb_stk11xx_write_registry(dev, 0x0300, 0x0012); 00384 usb_stk11xx_write_registry(dev, 0x0350, 0x0041); 00385 00386 usb_stk11xx_write_registry(dev, 0x0351, 0x0000); 00387 usb_stk11xx_write_registry(dev, 0x0352, 0x0000); 00388 usb_stk11xx_write_registry(dev, 0x0353, 0x0000); 00389 usb_stk11xx_write_registry(dev, 0x0018, 0x0010); 00390 usb_stk11xx_write_registry(dev, 0x0019, 0x0000); 00391 00392 usb_stk11xx_write_registry(dev, 0x001b, values_001B[step]); 00393 usb_stk11xx_write_registry(dev, 0x001c, values_001C[step]); 00394 usb_stk11xx_write_registry(dev, 0x0300, 0x0080); 00395 usb_stk11xx_write_registry(dev, 0x001a, 0x0004); 00396 usb_stk11xx_write_registry(dev, 0x0202, values_0202[step]); 00397 00398 usb_stk11xx_write_registry(dev, 0x0110, values_0110[step]); 00399 usb_stk11xx_write_registry(dev, 0x0111, 0x0000); 00400 usb_stk11xx_write_registry(dev, 0x0112, values_0112[step]); 00401 usb_stk11xx_write_registry(dev, 0x0113, 0x0000); 00402 usb_stk11xx_write_registry(dev, 0x0114, values_0114[step]); 00403 00404 usb_stk11xx_write_registry(dev, 0x0115, values_0115[step]); 00405 usb_stk11xx_write_registry(dev, 0x0116, values_0116[step]); 00406 usb_stk11xx_write_registry(dev, 0x0117, values_0117[step]); 00407 00408 usb_stk11xx_read_registry(dev, 0x0100, &value); 00409 usb_stk11xx_write_registry(dev, 0x0100, values_0100[step]); 00410 00411 // usb_stk11xx_write_registry(dev, 0x0200, 0x0080); 00412 // usb_stk11xx_write_registry(dev, 0x0200, 0x0000); 00413 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00414 00415 00416 switch (step) { 00417 case 0: 00418 usb_stk11xx_write_registry(dev, 0x0203, 0x0040); 00419 00420 usb_stk11xx_write_registry(dev, 0x0204, 0x0041); 00421 usb_stk11xx_write_registry(dev, 0x0205, 0x0001); 00422 usb_stk11xx_write_registry(dev, 0x0204, 0x001c); 00423 usb_stk11xx_write_registry(dev, 0x0205, 0x0002); 00424 00425 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00426 00427 break; 00428 00429 case 1: 00430 usb_stk11xx_write_registry(dev, 0x0203, 0x0022); 00431 00432 usb_stk11xx_write_registry(dev, 0x0204, 0x0027); 00433 usb_stk11xx_write_registry(dev, 0x0205, 0x00a5); 00434 00435 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00436 00437 break; 00438 00439 case 2: 00440 usb_stk11xx_write_registry(dev, 0x0203, 0x0060); 00441 00442 usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 00443 usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 00444 usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 00445 usb_stk11xx_write_registry(dev, 0x0205, 0x00bf); 00446 00447 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00448 00449 break; 00450 00451 case 3: 00452 usb_stk11xx_write_registry(dev, 0x0203, 0x0042); 00453 00454 usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 00455 usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 00456 usb_stk11xx_write_registry(dev, 0x0204, 0x0024); 00457 usb_stk11xx_write_registry(dev, 0x0205, 0x00a5); 00458 00459 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00460 00461 break; 00462 00463 case 4: 00464 usb_stk11xx_write_registry(dev, 0x0203, 0x0042); 00465 00466 usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 00467 usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 00468 usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 00469 usb_stk11xx_write_registry(dev, 0x0205, 0x00e0); 00470 usb_stk11xx_write_registry(dev, 0x0204, 0x0024); 00471 usb_stk11xx_write_registry(dev, 0x0205, 0x00a5); 00472 00473 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00474 00475 break; 00476 00477 case 5: 00478 usb_stk11xx_write_registry(dev, 0x0203, 0x0042); 00479 00480 usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 00481 usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 00482 usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 00483 usb_stk11xx_write_registry(dev, 0x0205, 0x00bf); 00484 00485 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00486 00487 break; 00488 00489 case 6: 00490 usb_stk11xx_write_registry(dev, 0x0203, 0x0060); 00491 00492 usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 00493 usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 00494 usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 00495 usb_stk11xx_write_registry(dev, 0x0205, 0x00ff); 00496 00497 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00498 00499 break; 00500 00501 case 7: 00502 usb_stk11xx_write_registry(dev, 0x0203, 0x0060); 00503 00504 usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 00505 usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 00506 usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 00507 usb_stk11xx_write_registry(dev, 0x0205, 0x00ff); 00508 00509 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00510 00511 break; 00512 00513 case 8: 00514 usb_stk11xx_write_registry(dev, 0x0203, 0x0060); 00515 00516 usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 00517 usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 00518 usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 00519 usb_stk11xx_write_registry(dev, 0x0205, 0x00b7); 00520 00521 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00522 00523 break; 00524 00525 case 9: 00526 usb_stk11xx_write_registry(dev, 0x0203, 0x0060); 00527 00528 usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 00529 usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 00530 usb_stk11xx_write_registry(dev, 0x0204, 0x0013); 00531 usb_stk11xx_write_registry(dev, 0x0205, 0x00b7); 00532 00533 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00534 00535 break; 00536 00537 case 10: 00538 usb_stk11xx_write_registry(dev, 0x0203, 0x0080); 00539 00540 usb_stk11xx_write_registry(dev, 0x0204, 0x0012); 00541 usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 00542 usb_stk11xx_write_registry(dev, 0x0204, 0x000a); 00543 usb_stk11xx_write_registry(dev, 0x0205, 0x00ff); 00544 00545 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00546 00547 break; 00548 00549 case 11: 00550 usb_stk11xx_write_registry(dev, 0x0203, 0x00dc); 00551 00552 usb_stk11xx_write_registry(dev, 0x0204, 0x0015); 00553 usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 00554 00555 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00556 00557 break; 00558 00559 case 12: 00560 usb_stk11xx_write_registry(dev, 0x0203, 0x00ec); 00561 00562 usb_stk11xx_write_registry(dev, 0x0204, 0x0015); 00563 usb_stk11xx_write_registry(dev, 0x0205, 0x0080); 00564 00565 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00566 00567 break; 00568 00569 case 13: 00570 usb_stk11xx_write_registry(dev, 0x0203, 0x00ba); 00571 00572 usb_stk11xx_read_registry(dev, 0x02ff, &value); 00573 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00574 00575 usb_stk11xx_write_registry(dev, 0x0208, 0x0020); 00576 usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 00577 retok = dev_stk11xx_check_device(dev, 500); 00578 usb_stk11xx_read_registry(dev, 0x0209, &value); 00579 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00580 00581 break; 00582 00583 case 14: 00584 usb_stk11xx_write_registry(dev, 0x0203, 0x00ba); 00585 00586 usb_stk11xx_read_registry(dev, 0x02ff, &value); 00587 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00588 00589 usb_stk11xx_write_registry(dev, 0x0208, 0x0000); 00590 usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 00591 retok = dev_stk11xx_check_device(dev, 500); 00592 usb_stk11xx_read_registry(dev, 0x0209, &value); 00593 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00594 usb_stk11xx_read_registry(dev, 0x02ff, &value); 00595 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00596 00597 usb_stk11xx_write_registry(dev, 0x0208, 0x00f1); 00598 usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 00599 retok = dev_stk11xx_check_device(dev, 500); 00600 usb_stk11xx_read_registry(dev, 0x0209, &value); 00601 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00602 00603 break; 00604 00605 case 15: 00606 usb_stk11xx_write_registry(dev, 0x0203, 0x00ba); 00607 00608 usb_stk11xx_write_registry(dev, 0x0204, 0x0001); 00609 usb_stk11xx_write_registry(dev, 0x0205, 0x0000); 00610 usb_stk11xx_write_registry(dev, 0x0200, 0x0005); 00611 00612 break; 00613 00614 case 16: 00615 usb_stk11xx_write_registry(dev, 0x0203, 0x007a); 00616 00617 usb_stk11xx_read_registry(dev, 0x02ff, &value); 00618 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00619 usb_stk11xx_write_registry(dev, 0x0205, 0x0030); 00620 usb_stk11xx_write_registry(dev, 0x0205, 0x0000); 00621 usb_stk11xx_read_registry(dev, 0x0201, &value); 00622 usb_stk11xx_read_registry(dev, 0x0201, &value); 00623 usb_stk11xx_read_registry(dev, 0x0201, &value); 00624 usb_stk11xx_read_registry(dev, 0x0209, &value); 00625 usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 00626 usb_stk11xx_read_registry(dev, 0x0201, &value); 00627 usb_stk11xx_read_registry(dev, 0x0209, &value); 00628 usb_stk11xx_write_registry(dev, 0x02ff, 0x0001); 00629 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00630 00631 usb_stk11xx_write_registry(dev, 0x0002, 0x007f); 00632 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00633 usb_stk11xx_write_registry(dev, 0x0002, 0x007d); 00634 usb_stk11xx_write_registry(dev, 0x0000, 0x0024); 00635 usb_stk11xx_write_registry(dev, 0x0000, 0x0025); 00636 usb_stk11xx_write_registry(dev, 0x0000, 0x0020); 00637 00638 break; 00639 00640 case 17: 00641 usb_stk11xx_write_registry(dev, 0x0203, 0x007a); 00642 00643 dev_stk6a51_sensor_settings(dev); 00644 00645 usb_stk11xx_read_registry(dev, 0x02ff, &value); 00646 usb_stk11xx_write_registry(dev, 0x02ff, 0x0001); 00647 00648 usb_stk11xx_write_registry(dev, 0x0205, 0x0033); 00649 usb_stk11xx_write_registry(dev, 0x0205, 0x0090); 00650 usb_stk11xx_write_registry(dev, 0x0200, 0x0061); 00651 retok = dev_stk11xx_check_device(dev, 500); 00652 usb_stk11xx_read_registry(dev, 0x0209, &value); 00653 usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 00654 retok = dev_stk11xx_check_device(dev, 500); 00655 usb_stk11xx_read_registry(dev, 0x0209, &value); 00656 usb_stk11xx_write_registry(dev, 0x02ff, 0x0001); 00657 usb_stk11xx_read_registry(dev, 0x0201, &value); 00658 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00659 00660 usb_stk11xx_write_registry(dev, 0x0200, 0x0080); 00661 usb_stk11xx_write_registry(dev, 0x0200, 0x0000); 00662 usb_stk11xx_write_registry(dev, 0x02ff, 0x0001); 00663 00664 break; 00665 00666 case 18: 00667 usb_stk11xx_write_registry(dev, 0x0203, 0x007a); 00668 00669 dev_stk6a51_sensor_settings(dev); 00670 00671 usb_stk11xx_read_registry(dev, 0x02ff, &value); 00672 usb_stk11xx_write_registry(dev, 0x02ff, 0x0001); 00673 00674 usb_stk11xx_write_registry(dev, 0x0205, 0x0033); 00675 usb_stk11xx_write_registry(dev, 0x0205, 0x0090); 00676 usb_stk11xx_write_registry(dev, 0x0200, 0x0061); 00677 retok = dev_stk11xx_check_device(dev, 500); 00678 usb_stk11xx_read_registry(dev, 0x0209, &value); 00679 usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 00680 retok = dev_stk11xx_check_device(dev, 500); 00681 usb_stk11xx_read_registry(dev, 0x0209, &value); 00682 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00683 break; 00684 00685 case 19: 00686 usb_stk11xx_write_registry(dev, 0x0203, 0x007a); 00687 00688 dev_stk6a51_sensor_settings(dev); 00689 00690 usb_stk11xx_read_registry(dev, 0x02ff, &value); 00691 usb_stk11xx_write_registry(dev, 0x02ff, 0x0001); 00692 00693 usb_stk11xx_write_registry(dev, 0x0205, 0x0033); 00694 usb_stk11xx_write_registry(dev, 0x0205, 0x0090); 00695 usb_stk11xx_write_registry(dev, 0x0200, 0x0061); 00696 retok = dev_stk11xx_check_device(dev, 500); 00697 usb_stk11xx_read_registry(dev, 0x0209, &value); 00698 usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 00699 retok = dev_stk11xx_check_device(dev, 500); 00700 usb_stk11xx_read_registry(dev, 0x0209, &value); 00701 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 00702 break; 00703 } 00704 00705 return 0; 00706 } 00707 00708 00718 int dev_stk6a51_camera_asleep(struct usb_stk11xx *dev) 00719 { 00720 int value; 00721 00722 usb_stk11xx_write_registry(dev, 0x0203, 0x00a0); 00723 00724 usb_stk11xx_read_registry(dev, 0x0104, &value); 00725 usb_stk11xx_read_registry(dev, 0x0105, &value); 00726 usb_stk11xx_read_registry(dev, 0x0106, &value); 00727 00728 usb_stk11xx_write_registry(dev, 0x0100, 0x0021); 00729 usb_stk11xx_write_registry(dev, 0x0116, 0x0000); 00730 usb_stk11xx_write_registry(dev, 0x0117, 0x0000); 00731 usb_stk11xx_write_registry(dev, 0x0018, 0x0000); 00732 00733 usb_stk11xx_read_registry(dev, 0x0000, &value); 00734 usb_stk11xx_write_registry(dev, 0x0000, 0x0049); 00735 00736 return 0; 00737 } 00738 00739 00750 int dev_stk6a51_init_camera(struct usb_stk11xx *dev) 00751 { 00752 dev_stk6a51_camera_asleep(dev); 00753 00754 usb_stk11xx_set_feature(dev, 0); 00755 00756 dev_stk6a51_camera_asleep(dev); 00757 00758 usb_stk11xx_write_registry(dev, 0x0000, 0x00e0); 00759 usb_stk11xx_write_registry(dev, 0x0002, 0x00f8); 00760 usb_stk11xx_write_registry(dev, 0x0002, 0x0078); 00761 usb_stk11xx_write_registry(dev, 0x0000, 0x0020); 00762 00763 dev_stk6a51_configure_device(dev, 18); 00764 00765 dev_stk11xx_camera_off(dev); 00766 00767 return 0; 00768 } 00769 00770 00781 int dev_stk6a51_sensor_settings(struct usb_stk11xx *dev) 00782 { 00783 int i; 00784 int retok; 00785 int value; 00786 00787 int asize; 00788 00789 static const int values_205[][4] = { 00790 { 0x33, 0x86, 0x05, 0x01 }, 00791 { 0x33, 0x86, 0x05, 0x00 }, 00792 { 0x33, 0x8c, 0xa1, 0x04 }, 00793 { 0x33, 0x90, -1 }, 00794 { 0x30, 0x1a, 0x0a, 0xcc }, 00795 { 0x32, 0x02, 0x00, 0x08 }, 00796 { 0x33, 0xf4, 0x03, 0x1d }, 00797 { 0x33, 0x8c, 0xa1, 0x04 }, 00798 { 0x33, 0x90, -1 }, 00799 { 0x33, 0x8c, 0xa1, 0x04 }, 00800 { 0x33, 0x90, -1 }, 00801 { 0x34, 0x1e, 0x8f, 0x09 }, 00802 { 0x34, 0x1c, 0x02, 0x50 }, 00803 { 0x34, 0x1e, 0x8f, 0x09 }, 00804 { 0x34, 0x1e, 0x8f, 0x08 }, 00805 { 0x33, 0x8c, 0x04, 0x00 }, 00806 { 0x33, 0x90, 0x30, 0x8f }, 00807 { 0x33, 0x92, 0xc3, 0xff }, 00808 { 0x33, 0x94, 0xed, 0x8f }, 00809 { 0x33, 0x96, 0x35, 0x8f }, 00810 { 0x33, 0x98, 0x18, 0x8f }, 00811 { 0x33, 0x9a, 0x30, 0x8f }, 00812 { 0x33, 0x9c, 0xc3, 0x00 }, 00813 { 0x33, 0x9e, 0x15, 0x8f }, 00814 { 0x33, 0x8c, 0x04, 0x10 }, 00815 { 0x33, 0x90, 0xcc, 0x00 }, 00816 { 0x33, 0x92, 0x07, 0xbd }, 00817 { 0x33, 0x94, 0x04, 0xb5 }, 00818 { 0x33, 0x96, 0xbd, 0x9e }, 00819 { 0x33, 0x98, 0x9f, 0xf6 }, 00820 { 0x33, 0x9a, 0x03, 0x22 }, 00821 { 0x33, 0x9c, 0x30, 0xe7 }, 00822 { 0x33, 0x9e, 0x0a, 0xf6 }, 00823 { 0x33, 0x8c, 0x04, 0x20 }, 00824 { 0x33, 0x90, 0x02, 0x39 }, 00825 { 0x33, 0x92, 0xc1, 0x01 }, 00826 { 0x33, 0x94, 0x26, 0x05 }, 00827 { 0x33, 0x96, 0xf6, 0x03 }, 00828 { 0x33, 0x98, 0x23, 0xe7 }, 00829 { 0x33, 0x9a, 0x0a, 0x7d }, 00830 { 0x33, 0x9c, 0x03, 0x21 }, 00831 { 0x33, 0x9e, 0x27, 0x20 }, 00832 { 0x33, 0x8c, 0x04, 0x30 }, 00833 { 0x33, 0x90, 0xf6, 0x02 }, 00834 { 0x33, 0x92, 0x39, 0xe7 }, 00835 { 0x33, 0x94, 0x02, 0x8f }, 00836 { 0x33, 0x96, 0xc3, 0x00 }, 00837 { 0x33, 0x98, 0x0b, 0x30 }, 00838 { 0x33, 0x9a, 0xed, 0x00 }, 00839 { 0x33, 0x9c, 0xfe, 0x02 }, 00840 { 0x33, 0x9e, 0x37, 0xee }, 00841 { 0x33, 0x8c, 0x04, 0x40 }, 00842 { 0x33, 0x90, 0x04, 0x5f }, 00843 { 0x33, 0x92, 0xad, 0x00 }, 00844 { 0x33, 0x94, 0x30, 0xe6 }, 00845 { 0x33, 0x96, 0x0a, 0x4f }, 00846 { 0x33, 0x98, 0xed, 0x08 }, 00847 { 0x33, 0x9a, 0xec, 0x11 }, 00848 { 0x33, 0x9c, 0xa3, 0x08 }, 00849 { 0x33, 0x9e, 0xdd, 0x56 }, 00850 { 0x33, 0x8c, 0x04, 0x50 }, 00851 { 0x33, 0x90, 0x30, 0xc6 }, 00852 { 0x33, 0x92, 0x13, 0x3a }, 00853 { 0x33, 0x94, 0x35, 0x39 }, 00854 { 0x33, 0x96, 0x3c, 0x3c }, 00855 { 0x33, 0x98, 0x3c, 0xc6 }, 00856 { 0x33, 0x9a, 0x01, 0xf7 }, 00857 { 0x33, 0x9c, 0x03, 0x21 }, 00858 { 0x33, 0x9e, 0xc6, 0x0a }, 00859 { 0x33, 0x8c, 0x04, 0x60 }, 00860 { 0x33, 0x90, 0xf7, 0x03 }, 00861 { 0x33, 0x92, 0x22, 0xf7 }, 00862 { 0x33, 0x94, 0x03, 0x23 }, 00863 { 0x33, 0x96, 0xcc, 0x03 }, 00864 { 0x33, 0x98, 0x03, 0x30 }, 00865 { 0x33, 0x9a, 0xed, 0x02 }, 00866 { 0x33, 0x9c, 0xfe, 0x10 }, 00867 { 0x33, 0x9e, 0x50, 0xec }, 00868 { 0x33, 0x8c, 0x04, 0x70 }, 00869 { 0x33, 0x90, 0x04, 0xfd }, 00870 { 0x33, 0x92, 0x02, 0xff }, 00871 { 0x33, 0x94, 0xfe, 0x02 }, 00872 { 0x33, 0x96, 0xff, 0xec }, 00873 { 0x33, 0x98, 0x00, 0xfd }, 00874 { 0x33, 0x9a, 0x03, 0x01 }, 00875 { 0x33, 0x9c, 0x5f, 0x4f }, 00876 { 0x33, 0x9e, 0x30, 0xed }, 00877 { 0x33, 0x8c, 0x04, 0x80 }, 00878 { 0x33, 0x90, 0x04, 0xec }, 00879 { 0x33, 0x92, 0x04, 0x05 }, 00880 { 0x33, 0x94, 0xf3, 0x03 }, 00881 { 0x33, 0x96, 0x01, 0x8f }, 00882 { 0x33, 0x98, 0xec, 0x00 }, 00883 { 0x33, 0x9a, 0x30, 0xed }, 00884 { 0x33, 0x9c, 0x00, 0xec }, 00885 { 0x33, 0x9e, 0x04, 0x05 }, 00886 { 0x33, 0x8c, 0x04, 0x90 }, 00887 { 0x33, 0x90, 0xe3, 0x02 }, 00888 { 0x33, 0x92, 0x18, 0x8f }, 00889 { 0x33, 0x94, 0xec, 0x00 }, 00890 { 0x33, 0x96, 0x18, 0xed }, 00891 { 0x33, 0x98, 0x00, 0xec }, 00892 { 0x33, 0x9a, 0x04, 0xc3 }, 00893 { 0x33, 0x9c, 0x00, 0x01 }, 00894 { 0x33, 0x9e, 0xed, 0x04 }, 00895 { 0x33, 0x8c, 0x04, 0xa0 }, 00896 { 0x33, 0x90, 0x83, 0x00 }, 00897 { 0x33, 0x92, 0x0f, 0x25 }, 00898 { 0x33, 0x94, 0xdc, 0xee }, 00899 { 0x33, 0x96, 0x02, 0xcc }, 00900 { 0x33, 0x98, 0x04, 0x00 }, 00901 { 0x33, 0x9a, 0xed, 0x04 }, 00902 { 0x33, 0x9c, 0xcc, 0x03 }, 00903 { 0x33, 0x9e, 0x03, 0xdd }, 00904 { 0x33, 0x8c, 0x04, 0xb0 }, 00905 { 0x33, 0x90, 0x52, 0x38 }, 00906 { 0x33, 0x92, 0x38, 0x38 }, 00907 { 0x33, 0x94, 0x39, 0x37 }, 00908 { 0x33, 0x96, 0x36, 0x8f }, 00909 { 0x33, 0x98, 0x30, 0xe3 }, 00910 { 0x33, 0x9a, 0x00, 0x8f }, 00911 { 0x33, 0x9c, 0x18, 0x8f }, 00912 { 0x33, 0x9e, 0x18, 0x30 }, 00913 { 0x33, 0x8c, 0x04, 0xc0 }, 00914 { 0x33, 0x90, 0x18, 0xe3 }, 00915 { 0x33, 0x92, 0x00, 0x18 }, 00916 { 0x33, 0x94, 0x8f, 0x32 }, 00917 { 0x33, 0x96, 0x33, 0x36 }, 00918 { 0x33, 0x98, 0xa6, 0x00 }, 00919 { 0x33, 0x9a, 0x18, 0xa7 }, 00920 { 0x33, 0x9c, 0x00, 0x09 }, 00921 { 0x33, 0x9e, 0x18, 0x09 }, 00922 { 0x33, 0x8c, 0x04, 0xd0 }, 00923 { 0x33, 0x90, 0xc0, 0x01 }, 00924 { 0x33, 0x92, 0x24, 0xf4 }, 00925 { 0x33, 0x94, 0x32, 0x80 }, 00926 { 0x33, 0x96, 0x01, 0x24 }, 00927 { 0x33, 0x98, 0xee, 0x39 }, 00928 { 0x33, 0x8c, 0x20, 0x03 }, 00929 { 0x33, 0x90, 0x04, 0x56 }, 00930 { 0x33, 0x8c, 0xa0, 0x02 }, 00931 { 0x33, 0x90, 0x00, 0x01 }, 00932 { 0x33, 0x8c, 0xa1, 0x04 }, 00933 { 0x33, 0x90, -1 }, 00934 { 0x34, 0xce, 0x81, 0x60 }, 00935 { 0x34, 0xd0, 0x66, 0x33 }, 00936 { 0x34, 0xd2, 0x31, 0x9a }, 00937 { 0x34, 0xd4, 0x94, 0x63 }, 00938 { 0x34, 0xd6, 0x4b, 0x25 }, 00939 { 0x34, 0xd8, 0x26, 0x70 }, 00940 { 0x34, 0xda, 0x72, 0x4c }, 00941 { 0x34, 0xdc, 0xff, 0x04 }, 00942 { 0x34, 0xde, 0x00, 0xf4 }, 00943 { 0x34, 0xe6, 0x00, 0xcc }, 00944 { 0x34, 0xee, 0x0e, 0x42 }, 00945 { 0x34, 0xf6, 0x0d, 0xb5 }, 00946 { 0x35, 0x00, 0x0a, 0xfa }, 00947 { 0x35, 0x08, 0x0f, 0x10 }, 00948 { 0x35, 0x10, 0x11, 0x22 }, 00949 { 0x35, 0x18, 0x0c, 0x28 }, 00950 { 0x35, 0x20, 0x1c, 0x2c }, 00951 { 0x35, 0x28, 0x17, 0x40 }, 00952 { 0x35, 0x30, 0x08, 0xf2 }, 00953 { 0x35, 0x38, 0xfb, 0xd5 }, 00954 { 0x35, 0x4c, 0x05, 0xc7 }, 00955 { 0x35, 0x44, 0x04, 0xf9 }, 00956 { 0x35, 0x5c, 0x05, 0xd0 }, 00957 { 0x35, 0x54, 0x05, 0xf4 }, 00958 { 0x34, 0xe0, 0x01, 0x05 }, 00959 { 0x34, 0xe8, 0x00, 0xa0 }, 00960 { 0x34, 0xf0, 0x0e, 0xa1 }, 00961 { 0x34, 0xf8, 0x0e, 0x01 }, 00962 { 0x35, 0x02, 0x0f, 0xeb }, 00963 { 0x35, 0x0a, 0x09, 0x0a }, 00964 { 0x35, 0x12, 0x10, 0x1e }, 00965 { 0x35, 0x1a, 0x08, 0x23 }, 00966 { 0x35, 0x22, 0x1c, 0x22 }, 00967 { 0x35, 0x2a, 0x07, 0x22 }, 00968 { 0x35, 0x32, 0x0b, 0x06 }, 00969 { 0x35, 0x3a, 0xf9, 0x16 }, 00970 { 0x35, 0x4e, 0x05, 0x9f }, 00971 { 0x35, 0x46, 0x05, 0x30 }, 00972 { 0x35, 0x5e, 0x06, 0x75 }, 00973 { 0x35, 0x56, 0x06, 0x5c }, 00974 { 0x34, 0xe4, 0x00, 0xc5 }, 00975 { 0x34, 0xec, 0x00, 0x48 }, 00976 { 0x34, 0xf4, 0x0f, 0x66 }, 00977 { 0x34, 0xfc, 0x0e, 0x61 }, 00978 { 0x35, 0x06, 0x1b, 0xdb }, 00979 { 0x35, 0x0e, 0x04, 0x0a }, 00980 { 0x35, 0x16, 0x11, 0x13 }, 00981 { 0x35, 0x1e, 0x08, 0x1f }, 00982 { 0x35, 0x26, 0x11, 0x19 }, 00983 { 0x35, 0x2e, 0xf8, 0x1a }, 00984 { 0x35, 0x36, 0x04, 0x0c }, 00985 { 0x35, 0x3e, 0xfa, 0x00 }, 00986 { 0x35, 0x52, 0x06, 0xf1 }, 00987 { 0x35, 0x4a, 0x04, 0x0e }, 00988 { 0x35, 0x62, 0x06, 0xa1 }, 00989 { 0x35, 0x5a, 0x06, 0x91 }, 00990 { 0x34, 0xe2, 0x00, 0xd2 }, 00991 { 0x34, 0xea, 0x00, 0x72 }, 00992 { 0x34, 0xf2, 0x0e, 0x1d }, 00993 { 0x34, 0xfa, 0x0e, 0x06 }, 00994 { 0x35, 0x04, 0x13, 0x0e }, 00995 { 0x35, 0x0c, 0x0f, 0x0d }, 00996 { 0x35, 0x14, 0x13, 0x1c }, 00997 { 0x35, 0x1c, 0x13, 0x29 }, 00998 { 0x35, 0x24, 0x0d, 0x24 }, 00999 { 0x35, 0x2c, 0xfd, 0x29 }, 01000 { 0x35, 0x34, 0x07, 0xf4 }, 01001 { 0x35, 0x3c, 0xee, 0xe7 }, 01002 { 0x35, 0x50, 0x06, 0x50 }, 01003 { 0x35, 0x48, 0x05, 0xc1 }, 01004 { 0x35, 0x60, 0x06, 0x11 }, 01005 { 0x35, 0x58, 0x06, 0x58 }, 01006 { 0x35, 0x40, 0x00, 0x00 }, 01007 { 0x35, 0x42, 0x00, 0x00 }, 01008 { 0x32, 0x10, 0x01, 0xfc }, 01009 { 0x33, 0x8c, 0xa3, 0x52 }, 01010 { 0x33, 0x90, 0x00, 0x3c }, 01011 { 0x33, 0x8c, 0xa1, 0x18 }, 01012 { 0x33, 0x90, 0x00, 0x3c }, 01013 { 0x33, 0x8c, 0xa1, 0x19 }, 01014 { 0x33, 0x90, 0x00, 0x0a }, 01015 { 0x33, 0x8c, 0xa7, 0x6d }, 01016 { 0x33, 0x90, 0x00, 0x03 }, 01017 { 0x33, 0x8c, 0xa7, 0x6e }, 01018 { 0x33, 0x90, 0x00, 0x03 }, 01019 { 0x33, 0x8c, 0xa7, 0x6f }, 01020 { 0x33, 0x90, 0x00, 0x00 }, 01021 { 0x33, 0x8c, 0xa7, 0x70 }, 01022 { 0x33, 0x90, 0x00, 0x05 }, 01023 { 0x33, 0x8c, 0xa7, 0x71 }, 01024 { 0x33, 0x90, 0x00, 0x10 }, 01025 { 0x33, 0x8c, 0xa7, 0x72 }, 01026 { 0x33, 0x90, 0x00, 0x30 }, 01027 { 0x33, 0x8c, 0xa7, 0x73 }, 01028 { 0x33, 0x90, 0x00, 0x5b }, 01029 { 0x33, 0x8c, 0xa7, 0x74 }, 01030 { 0x33, 0x90, 0x00, 0x77 }, 01031 { 0x33, 0x8c, 0xa7, 0x75 }, 01032 { 0x33, 0x90, 0x00, 0x8e }, 01033 { 0x33, 0x8c, 0xa7, 0x76 }, 01034 { 0x33, 0x90, 0x00, 0xa0 }, 01035 { 0x33, 0x8c, 0xa7, 0x77 }, 01036 { 0x33, 0x90, 0x00, 0xaf }, 01037 { 0x33, 0x8c, 0xa7, 0x78 }, 01038 { 0x33, 0x90, 0x00, 0xbc }, 01039 { 0x33, 0x8c, 0xa7, 0x79 }, 01040 { 0x33, 0x90, 0x00, 0xc7 }, 01041 { 0x33, 0x8c, 0xa7, 0x7a }, 01042 { 0x33, 0x90, 0x00, 0xd0 }, 01043 { 0x33, 0x8c, 0xa7, 0x7b }, 01044 { 0x33, 0x90, 0x00, 0xd9 }, 01045 { 0x33, 0x8c, 0xa7, 0x7c }, 01046 { 0x33, 0x90, 0x00, 0xe0 }, 01047 { 0x33, 0x8c, 0xa7, 0x7d }, 01048 { 0x33, 0x90, 0x00, 0xe8 }, 01049 { 0x33, 0x8c, 0xa7, 0x7e }, 01050 { 0x33, 0x90, 0x00, 0xee }, 01051 { 0x33, 0x8c, 0xa7, 0x7f }, 01052 { 0x33, 0x90, 0x00, 0xf4 }, 01053 { 0x33, 0x8c, 0xa7, 0x80 }, 01054 { 0x33, 0x90, 0x00, 0xfa }, 01055 { 0x33, 0x8c, 0xa7, 0x81 }, 01056 { 0x33, 0x90, 0x00, 0xff }, 01057 { 0x33, 0x8c, 0xa7, 0x82 }, 01058 { 0x33, 0x90, 0x00, 0x00 }, 01059 { 0x33, 0x8c, 0xa7, 0x83 }, 01060 { 0x33, 0x90, 0x00, 0x05 }, 01061 { 0x33, 0x8c, 0xa7, 0x84 }, 01062 { 0x33, 0x90, 0x00, 0x10 }, 01063 { 0x33, 0x8c, 0xa7, 0x85 }, 01064 { 0x33, 0x90, 0x00, 0x30 }, 01065 { 0x33, 0x8c, 0xa7, 0x86 }, 01066 { 0x33, 0x90, 0x00, 0x5b }, 01067 { 0x33, 0x8c, 0xa7, 0x87 }, 01068 { 0x33, 0x90, 0x00, 0x77 }, 01069 { 0x33, 0x8c, 0xa7, 0x88 }, 01070 { 0x33, 0x90, 0x00, 0x8e }, 01071 { 0x33, 0x8c, 0xa7, 0x89 }, 01072 { 0x33, 0x90, 0x00, 0xa0 }, 01073 { 0x33, 0x8c, 0xa7, 0x8a }, 01074 { 0x33, 0x90, 0x00, 0xaf }, 01075 { 0x33, 0x8c, 0xa7, 0x8b }, 01076 { 0x33, 0x90, 0x00, 0xbc }, 01077 { 0x33, 0x8c, 0xa7, 0x8c }, 01078 { 0x33, 0x90, 0x00, 0xc7 }, 01079 { 0x33, 0x8c, 0xa7, 0x8d }, 01080 { 0x33, 0x90, 0x00, 0xd0 }, 01081 { 0x33, 0x8c, 0xa7, 0x8e }, 01082 { 0x33, 0x90, 0x00, 0xd9 }, 01083 { 0x33, 0x8c, 0xa7, 0x8f }, 01084 { 0x33, 0x90, 0x00, 0xe0 }, 01085 { 0x33, 0x8c, 0xa7, 0x90 }, 01086 { 0x33, 0x90, 0x00, 0xe8 }, 01087 { 0x33, 0x8c, 0xa7, 0x91 }, 01088 { 0x33, 0x90, 0x00, 0xee }, 01089 { 0x33, 0x8c, 0xa7, 0x92 }, 01090 { 0x33, 0x90, 0x00, 0xf4 }, 01091 { 0x33, 0x8c, 0xa7, 0x93 }, 01092 { 0x33, 0x90, 0x00, 0xfa }, 01093 { 0x33, 0x8c, 0xa7, 0x94 }, 01094 { 0x33, 0x90, 0x00, 0xff }, 01095 { 0x33, 0x8c, 0xa1, 0x03 }, 01096 { 0x33, 0x90, 0x00, 0x05 }, 01097 { 0x33, 0x8c, 0xa1, 0x04 }, 01098 { 0x33, 0x90, -1 }, 01099 { 0x33, 0x8c, 0xa2, 0x06 }, 01100 { 0x33, 0x90, 0x00, 0x50 }, 01101 { 0x33, 0x8c, 0x27, 0x03 }, 01102 { 0x33, 0x90, 0x02, 0x82 }, 01103 { 0x33, 0x8c, 0x27, 0x05 }, 01104 { 0x33, 0x90, 0x01, 0xe2 }, 01105 { 0x33, 0x8c, 0x27, 0x07 }, 01106 { 0x33, 0x90, 0x05, 0x02 }, 01107 { 0x33, 0x8c, 0x27, 0x09 }, 01108 { 0x33, 0x90, 0x04, 0x02 }, 01109 { 0x33, 0x8c, 0x27, 0x0d }, 01110 { 0x33, 0x90, 0x00, 0x00 }, 01111 { 0x33, 0x8c, 0x27, 0x0f }, 01112 { 0x33, 0x90, 0x00, 0x00 }, 01113 { 0x33, 0x8c, 0x27, 0x11 }, 01114 { 0x33, 0x90, 0x04, 0xbd }, 01115 { 0x33, 0x8c, 0x27, 0x13 }, 01116 { 0x33, 0x90, 0x06, 0x4d }, 01117 { 0x33, 0x8c, 0x27, 0x15 }, 01118 { 0x33, 0x90, 0x04, 0x00 }, 01119 { 0x33, 0x8c, 0x27, 0x17 }, 01120 { 0x33, 0x90, 0x21, 0x11 }, 01121 { 0x33, 0x8c, 0x27, 0x19 }, 01122 { 0x33, 0x90, 0x04, 0x6c }, 01123 { 0x33, 0x8c, 0x27, 0x1b }, 01124 { 0x33, 0x90, 0x02, 0x4f }, 01125 { 0x33, 0x8c, 0x27, 0x1d }, 01126 { 0x33, 0x90, 0x01, 0x02 }, 01127 { 0x33, 0x8c, 0x27, 0x1f }, 01128 { 0x33, 0x90, 0x02, 0x79 }, 01129 { 0x33, 0x8c, 0x27, 0x21 }, 01130 { 0x33, 0x90, 0x01, 0x55 }, 01131 { 0x33, 0x8c, 0x27, 0x23 }, 01132 { 0x33, 0x90, 0x03, 0x5b }, 01133 { 0x33, 0x8c, 0x27, 0x25 }, 01134 { 0x33, 0x90, 0x06, 0x0f }, 01135 { 0x33, 0x8c, 0x27, 0x27 }, 01136 { 0x33, 0x90, 0x20, 0x20 }, 01137 { 0x33, 0x8c, 0x27, 0x29 }, 01138 { 0x33, 0x90, 0x20, 0x20 }, 01139 { 0x33, 0x8c, 0x27, 0x2b }, 01140 { 0x33, 0x90, 0x10, 0x20 }, 01141 { 0x33, 0x8c, 0x27, 0x2d }, 01142 { 0x33, 0x90, 0x20, 0x07 }, 01143 { 0x33, 0x8c, 0x27, 0x2f }, 01144 { 0x33, 0x90, 0x00, 0x04 }, 01145 { 0x33, 0x8c, 0x27, 0x31 }, 01146 { 0x33, 0x90, 0x00, 0x04 }, 01147 { 0x33, 0x8c, 0x27, 0x33 }, 01148 { 0x33, 0x90, 0x04, 0xbb }, 01149 { 0x33, 0x8c, 0x27, 0x35 }, 01150 { 0x33, 0x90, 0x06, 0x4b }, 01151 { 0x33, 0x8c, 0x27, 0x37 }, 01152 { 0x33, 0x90, 0x04, 0xce }, 01153 { 0x33, 0x8c, 0x27, 0x39 }, 01154 { 0x33, 0x90, 0x21, 0x11 }, 01155 { 0x33, 0x8c, 0x27, 0x3b }, 01156 { 0x33, 0x90, 0x00, 0x24 }, 01157 { 0x33, 0x8c, 0x27, 0x3d }, 01158 { 0x33, 0x90, 0x01, 0x20 }, 01159 { 0x33, 0x8c, 0x27, 0x41 }, 01160 { 0x33, 0x90, 0x01, 0x69 }, 01161 { 0x33, 0x8c, 0x27, 0x45 }, 01162 { 0x33, 0x90, 0x04, 0xff }, 01163 { 0x33, 0x8c, 0x27, 0x47 }, 01164 { 0x33, 0x90, 0x08, 0x24 }, 01165 { 0x33, 0x8c, 0x27, 0x51 }, 01166 { 0x33, 0x90, 0x00, 0x00 }, 01167 { 0x33, 0x8c, 0x27, 0x53 }, 01168 { 0x33, 0x90, 0x03, 0x20 }, 01169 { 0x33, 0x8c, 0x27, 0x55 }, 01170 { 0x33, 0x90, 0x00, 0x00 }, 01171 { 0x33, 0x8c, 0x27, 0x57 }, 01172 { 0x33, 0x90, 0x02, 0x58 }, 01173 { 0x33, 0x8c, 0x27, 0x5f }, 01174 { 0x33, 0x90, 0x00, 0x00 }, 01175 { 0x33, 0x8c, 0x27, 0x61 }, 01176 { 0x33, 0x90, 0x06, 0x40 }, 01177 { 0x33, 0x8c, 0x27, 0x63 }, 01178 { 0x33, 0x90, 0x00, 0x00 }, 01179 { 0x33, 0x8c, 0x27, 0x65 }, 01180 { 0x33, 0x90, 0x04, 0xb0 }, 01181 { 0x33, 0x8c, 0x22, 0x2e }, 01182 { 0x33, 0x90, 0x00, 0xd7 }, 01183 { 0x33, 0x8c, 0xa4, 0x08 }, 01184 { 0x33, 0x90, 0x00, 0x2a }, 01185 { 0x33, 0x8c, 0xa4, 0x09 }, 01186 { 0x33, 0x90, 0x00, 0x2c }, 01187 { 0x33, 0x8c, 0xa4, 0x0a }, 01188 { 0x33, 0x90, 0x00, 0x32 }, 01189 { 0x33, 0x8c, 0xa4, 0x0b }, 01190 { 0x33, 0x90, 0x00, 0x34 }, 01191 { 0x33, 0x8c, 0x24, 0x11 }, 01192 { 0x33, 0x90, 0x00, 0xd7 }, 01193 { 0x33, 0x8c, 0x24, 0x13 }, 01194 { 0x33, 0x90, 0x01, 0x02 }, 01195 { 0x33, 0x8c, 0x24, 0x15 }, 01196 { 0x33, 0x90, 0x00, 0xa0 }, 01197 { 0x33, 0x8c, 0x24, 0x17 }, 01198 { 0x33, 0x90, 0x00, 0xc0 }, 01199 { 0x33, 0x8c, 0x27, 0x99 }, 01200 { 0x33, 0x90, 0x64, 0x08 }, 01201 { 0x33, 0x8c, 0x27, 0x9b }, 01202 { 0x33, 0x90, 0x64, 0x08 }, 01203 { 0x33, 0x8c, 0xa2, 0x0c }, 01204 { 0x33, 0x90, 0x00, 0x18 }, 01205 { 0x33, 0x8c, 0xa2, 0x14 }, 01206 { 0x33, 0x90, 0x00, 0x24 }, 01207 { 0x33, 0x8c, 0xa2, 0x15 }, 01208 { 0x33, 0x90, 0x00, 0x04 }, 01209 { 0x33, 0x8c, 0xa2, 0x0d }, 01210 { 0x33, 0x90, 0x00, 0x30 }, 01211 { 0x33, 0x8c, 0xa2, 0x0e }, 01212 { 0x33, 0x90, 0x00, 0x80 }, 01213 { 0x33, 0x8c, 0xa1, 0x03 }, 01214 { 0x33, 0x90, 0x00, 0x05 }, 01215 { 0x33, 0x8c, 0xa1, 0x04 }, 01216 { 0x33, 0x90, -1 }, 01217 { 0x33, 0x8c, 0xa1, 0x03 }, 01218 { 0x33, 0x90, 0x00, 0x06 }, 01219 { 0x33, 0x8c, 0xa1, 0x04 }, 01220 { 0x33, 0x90, -1 }, 01221 { 0x33, 0x8c, 0xa1, 0x30 }, 01222 { 0x33, 0x90, 0x00, 0x04 }, 01223 { 0x33, 0x8c, 0xa1, 0x15 }, 01224 { 0x33, 0x90, 0x00, 0xef }, 01225 { 0x33, 0x8c, 0xa1, 0x16 }, 01226 { 0x33, 0x90, 0x00, 0x30 }, 01227 { 0x33, 0x8c, 0xa1, 0x17 }, 01228 { 0x33, 0x90, 0x00, 0x55 }, 01229 { 0x33, 0x8c, 0xa1, 0x18 }, 01230 { 0x33, 0x90, 0x00, 0x5a }, 01231 { 0x33, 0x8c, 0xa1, 0x19 }, 01232 { 0x33, 0x90, 0x00, 0x28 }, 01233 { 0x33, 0x8c, 0xa1, 0x1a }, 01234 { 0x33, 0x90, 0x00, 0x08 }, 01235 { 0x33, 0x8c, 0xa1, 0x1b }, 01236 { 0x33, 0x90, 0x00, 0x1e }, 01237 { 0x33, 0x8c, 0xa1, 0x1c }, 01238 { 0x33, 0x90, 0x00, 0x02 }, 01239 { 0x33, 0x8c, 0xa1, 0x1d }, 01240 { 0x33, 0x90, 0x00, 0x00 }, 01241 { 0x33, 0x8c, 0xa1, 0x1e }, 01242 { 0x33, 0x90, 0x00, 0x00 }, 01243 { 0x33, 0x8c, 0xa1, 0x1f }, 01244 { 0x33, 0x90, 0x00, 0x04 }, 01245 { 0x33, 0x8c, 0xab, 0x05 }, 01246 { 0x33, 0x90, 0x00, 0x00 }, 01247 { 0x33, 0x8c, 0xa7, 0x6d }, 01248 { 0x33, 0x90, 0x00, 0x03 }, 01249 { 0x33, 0x8c, 0xa7, 0x6e }, 01250 { 0x33, 0x90, 0x00, 0x03 }, 01251 { 0x33, 0x8c, 0xa7, 0x6f }, 01252 { 0x33, 0x90, 0x00, 0x00 }, 01253 { 0x33, 0x8c, 0xa7, 0x70 }, 01254 { 0x33, 0x90, 0x00, 0x15 }, 01255 { 0x33, 0x8c, 0xa7, 0x71 }, 01256 { 0x33, 0x90, 0x00, 0x25 }, 01257 { 0x33, 0x8c, 0xa7, 0x72 }, 01258 { 0x33, 0x90, 0x00, 0x3f }, 01259 { 0x33, 0x8c, 0xa7, 0x73 }, 01260 { 0x33, 0x90, 0x00, 0x64 }, 01261 { 0x33, 0x8c, 0xa7, 0x74 }, 01262 { 0x33, 0x90, 0x00, 0x80 }, 01263 { 0x33, 0x8c, 0xa7, 0x75 }, 01264 { 0x33, 0x90, 0x00, 0x97 }, 01265 { 0x33, 0x8c, 0xa7, 0x76 }, 01266 { 0x33, 0x90, 0x00, 0xa9 }, 01267 { 0x33, 0x8c, 0xa7, 0x77 }, 01268 { 0x33, 0x90, 0x00, 0xba }, 01269 { 0x33, 0x8c, 0xa7, 0x78 }, 01270 { 0x33, 0x90, 0x00, 0xc7 }, 01271 { 0x33, 0x8c, 0xa7, 0x79 }, 01272 { 0x33, 0x90, 0x00, 0xd2 }, 01273 { 0x33, 0x8c, 0xa7, 0x7a }, 01274 { 0x33, 0x90, 0x00, 0xdc }, 01275 { 0x33, 0x8c, 0xa7, 0x7b }, 01276 { 0x33, 0x90, 0x00, 0xe4 }, 01277 { 0x33, 0x8c, 0xa7, 0x7c }, 01278 { 0x33, 0x90, 0x00, 0xea }, 01279 { 0x33, 0x8c, 0xa7, 0x7d }, 01280 { 0x33, 0x90, 0x00, 0xf0 }, 01281 { 0x33, 0x8c, 0xa7, 0x7e }, 01282 { 0x33, 0x90, 0x00, 0xf4 }, 01283 { 0x33, 0x8c, 0xa7, 0x7f }, 01284 { 0x33, 0x90, 0x00, 0xf8 }, 01285 { 0x33, 0x8c, 0xa7, 0x80 }, 01286 { 0x33, 0x90, 0x00, 0xfc }, 01287 { 0x33, 0x8c, 0xa7, 0x81 }, 01288 { 0x33, 0x90, 0x00, 0xff }, 01289 { 0x33, 0x8c, 0xa7, 0x82 }, 01290 { 0x33, 0x90, 0x00, 0x00 }, 01291 { 0x33, 0x8c, 0xa7, 0x83 }, 01292 { 0x33, 0x90, 0x00, 0x15 }, 01293 { 0x33, 0x8c, 0xa7, 0x84 }, 01294 { 0x33, 0x90, 0x00, 0x25 }, 01295 { 0x33, 0x8c, 0xa7, 0x85 }, 01296 { 0x33, 0x90, 0x00, 0x3f }, 01297 { 0x33, 0x8c, 0xa7, 0x86 }, 01298 { 0x33, 0x90, 0x00, 0x64 }, 01299 { 0x33, 0x8c, 0xa7, 0x87 }, 01300 { 0x33, 0x90, 0x00, 0x80 }, 01301 { 0x33, 0x8c, 0xa7, 0x88 }, 01302 { 0x33, 0x90, 0x00, 0x97 }, 01303 { 0x33, 0x8c, 0xa7, 0x89 }, 01304 { 0x33, 0x90, 0x00, 0xa9 }, 01305 { 0x33, 0x8c, 0xa7, 0x8a }, 01306 { 0x33, 0x90, 0x00, 0xba }, 01307 { 0x33, 0x8c, 0xa7, 0x8b }, 01308 { 0x33, 0x90, 0x00, 0xc7 }, 01309 { 0x33, 0x8c, 0xa7, 0x8c }, 01310 { 0x33, 0x90, 0x00, 0xd2 }, 01311 { 0x33, 0x8c, 0xa7, 0x8d }, 01312 { 0x33, 0x90, 0x00, 0xdc }, 01313 { 0x33, 0x8c, 0xa7, 0x8e }, 01314 { 0x33, 0x90, 0x00, 0xe4 }, 01315 { 0x33, 0x8c, 0xa7, 0x8f }, 01316 { 0x33, 0x90, 0x00, 0xea }, 01317 { 0x33, 0x8c, 0xa7, 0x90 }, 01318 { 0x33, 0x90, 0x00, 0xf0 }, 01319 { 0x33, 0x8c, 0xa7, 0x91 }, 01320 { 0x33, 0x90, 0x00, 0xf4 }, 01321 { 0x33, 0x8c, 0xa7, 0x92 }, 01322 { 0x33, 0x90, 0x00, 0xf8 }, 01323 { 0x33, 0x8c, 0xa7, 0x93 }, 01324 { 0x33, 0x90, 0x00, 0xfc }, 01325 { 0x33, 0x8c, 0xa7, 0x94 }, 01326 { 0x33, 0x90, 0x00, 0xff }, 01327 { 0x33, 0x8c, 0xa1, 0x03 }, 01328 { 0x33, 0x90, 0x00, 0x06 }, 01329 { 0x33, 0x8c, 0xa1, 0x04 }, 01330 { 0x33, 0x90, -1 }, 01331 { 0x35, 0xa4, 0x05, 0x96 }, 01332 { 0x33, 0x8c, 0xa1, 0x18 }, 01333 { 0x33, 0x90, 0x00, 0x1e }, 01334 { 0x33, 0x8c, 0xa1, 0x19 }, 01335 { 0x33, 0x90, 0x00, 0x04 }, 01336 { 0x33, 0x8c, 0xa1, 0x1a }, 01337 { 0x33, 0x90, 0x00, 0x0a }, 01338 { 0x33, 0x8c, 0xa1, 0x1b }, 01339 { 0x33, 0x90, 0x00, 0x20 }, 01340 { 0x33, 0x8c, 0xa1, 0x3e }, 01341 { 0x33, 0x90, 0x00, 0x04 }, 01342 { 0x33, 0x8c, 0xa1, 0x3f }, 01343 { 0x33, 0x90, 0x00, 0x0e }, 01344 { 0x33, 0x8c, 0xa1, 0x40 }, 01345 { 0x33, 0x90, 0x00, 0x04 }, 01346 { 0x33, 0x8c, 0xa1, 0x41 }, 01347 { 0x33, 0x90, 0x00, 0x04 }, 01348 { 0x33, 0x8c, 0xa1, 0x42 }, 01349 { 0x33, 0x90, 0x00, 0x32 }, 01350 { 0x33, 0x8c, 0xa1, 0x43 }, 01351 { 0x33, 0x90, 0x00, 0x0f }, 01352 { 0x33, 0x8c, 0xa1, 0x44 }, 01353 { 0x33, 0x90, 0x00, 0x32 }, 01354 { 0x33, 0x8c, 0xa1, 0x45 }, 01355 { 0x33, 0x90, 0x00, 0x32 }, 01356 { 0x33, 0x8c, 0xa1, 0x46 }, 01357 { 0x33, 0x90, 0x00, 0x05 }, 01358 { 0x33, 0x8c, 0xa1, 0x04 }, 01359 { 0x33, 0x90, -1 }, 01360 { 0x33, 0x8c, 0xa1, 0x47 }, 01361 { 0x33, 0x90, 0x00, 0x3a }, 01362 { 0x33, 0x8c, 0x27, 0x95 }, 01363 { 0x33, 0x90, 0x01, 0x00 }, 01364 { 0x33, 0x8c, 0xa1, 0x03 }, 01365 { 0x33, 0x90, 0x00, 0x05 }, 01366 { 0x33, 0x8c, 0xa1, 0x04 }, 01367 { 0x33, 0x90, -1 }, 01368 { 0x33, 0x8c, 0x27, 0x97 }, 01369 { 0x33, 0x90, 0x01, 0x00 }, 01370 { 0x33, 0x8c, 0xa1, 0x03 }, 01371 { 0x33, 0x90, 0x00, 0x05 }, 01372 { 0x33, 0x8c, 0xa1, 0x04 }, 01373 { 0x33, 0x90, -1 }, 01374 { 0x33, 0x8c, 0xa4, 0x04 }, 01375 { 0x33, 0x90, 0x00, 0x80 }, 01376 { 0x33, 0x8c, 0xa1, 0x03 }, 01377 { 0x33, 0x90, 0x00, 0x05 }, 01378 { 0x33, 0x8c, 0xa1, 0x04 }, 01379 { 0x33, 0x90 } 01380 }; 01381 01382 01383 asize = ARRAY_SIZE(values_205); 01384 01385 for(i=0; i<asize; i++) { 01386 usb_stk11xx_read_registry(dev, 0x02ff, &value); 01387 usb_stk11xx_write_registry(dev, 0x02ff, 0x0001); 01388 01389 usb_stk11xx_write_registry(dev, 0x0205, values_205[i][0]); 01390 usb_stk11xx_write_registry(dev, 0x0205, values_205[i][1]); 01391 01392 if (values_205[i][2] == -1) { 01393 usb_stk11xx_write_registry(dev, 0x0200, 0x0061); 01394 01395 retok = dev_stk11xx_check_device(dev, 500); 01396 01397 usb_stk11xx_read_registry(dev, 0x0209, &value); 01398 usb_stk11xx_write_registry(dev, 0x0200, 0x0020); 01399 01400 retok = dev_stk11xx_check_device(dev, 500); 01401 01402 usb_stk11xx_read_registry(dev, 0x0209, &value); 01403 } 01404 else { 01405 usb_stk11xx_write_registry(dev, 0x0205, values_205[i][2]); 01406 usb_stk11xx_write_registry(dev, 0x0205, values_205[i][3]); 01407 usb_stk11xx_write_registry(dev, 0x0200, 0x0001); 01408 01409 retok = dev_stk11xx_check_device(dev, 500); 01410 } 01411 01412 usb_stk11xx_write_registry(dev, 0x02ff, 0x0001); 01413 } 01414 01415 return 0; 01416 } 01417 01418 01432 int dev_stk6a51_camera_settings(struct usb_stk11xx *dev) 01433 { 01434 return 0; 01435 } 01436 01437 01451 int dev_stk6a51_set_camera_quality(struct usb_stk11xx *dev) 01452 { 01453 int ret; 01454 int value; 01455 01456 // Contrast register 01457 usb_stk11xx_read_registry(dev, 0x02ff, &value); 01458 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 01459 01460 usb_stk11xx_write_registry(dev, 0x0204, 0x00b3); 01461 usb_stk11xx_write_registry(dev, 0x0205, (dev->vsettings.contrast >> 8)); 01462 01463 usb_stk11xx_write_registry(dev, 0x0200, 0x0001); 01464 ret = dev_stk11xx_check_device(dev, 500); 01465 usb_stk11xx_write_registry(dev, 0x02ff, 0x0000); 01466 01467 STK_DEBUG("Set colour : %d\n", dev->vsettings.colour); 01468 STK_DEBUG("Set contrast : %d\n", dev->vsettings.contrast); 01469 STK_DEBUG("Set whiteness : %d\n", dev->vsettings.whiteness); 01470 STK_DEBUG("Set brightness : %d\n", dev->vsettings.brightness); 01471 01472 return 0; 01473 } 01474 01475 01485 int dev_stk6a51_set_camera_fps(struct usb_stk11xx *dev) 01486 { 01487 return 0; 01488 } 01489 01490 01501 int dev_stk6a51_start_stream(struct usb_stk11xx *dev) 01502 { 01503 int value; 01504 int value_116, value_117; 01505 01506 usb_stk11xx_read_registry(dev, 0x0116, &value_116); 01507 usb_stk11xx_read_registry(dev, 0x0117, &value_117); 01508 01509 usb_stk11xx_write_registry(dev, 0x0116, 0x0000); 01510 usb_stk11xx_write_registry(dev, 0x0117, 0x0000); 01511 01512 usb_stk11xx_read_registry(dev, 0x0100, &value); // read 0x21 01513 usb_stk11xx_write_registry(dev, 0x0100, 0x00a0); 01514 01515 usb_stk11xx_write_registry(dev, 0x0116, value_116); 01516 usb_stk11xx_write_registry(dev, 0x0117, value_117); 01517 01518 return 0; 01519 } 01520 01521 01531 int dev_stk6a51_reconf_camera(struct usb_stk11xx *dev) 01532 { 01533 dev_stk6a51_configure_device(dev, 19); 01534 01535 dev_stk11xx_camera_settings(dev); 01536 01537 return 0; 01538 } 01539 01540 01551 int dev_stk6a51_stop_stream(struct usb_stk11xx *dev) 01552 { 01553 return 0; 01554 } 01555