SyntekUSBVideoCamera

stk11xx-dev-6a51.c

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