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