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
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
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
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
00412
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
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);
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