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