0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
0011
0012 #define MODULE_NAME "nw80x"
0013
0014 #include "gspca.h"
0015
0016 MODULE_AUTHOR("Jean-Francois Moine <http://moinejf.free.fr>");
0017 MODULE_DESCRIPTION("NW80x USB Camera Driver");
0018 MODULE_LICENSE("GPL");
0019
0020 static int webcam;
0021
0022
0023 struct sd {
0024 struct gspca_dev gspca_dev;
0025
0026 u32 ae_res;
0027 s8 ag_cnt;
0028 #define AG_CNT_START 13
0029 u8 exp_too_low_cnt;
0030 u8 exp_too_high_cnt;
0031
0032 u8 bridge;
0033 u8 webcam;
0034 };
0035
0036 enum bridges {
0037 BRIDGE_NW800,
0038 BRIDGE_NW801,
0039 BRIDGE_NW802,
0040 };
0041 enum webcams {
0042 Generic800,
0043 SpaceCam,
0044 SpaceCam2,
0045 Cvideopro,
0046 Dlink350c,
0047 DS3303u,
0048 Kr651us,
0049 Kritter,
0050 Mustek300,
0051 Proscope,
0052 Twinkle,
0053 DvcV6,
0054 P35u,
0055 Generic802,
0056 NWEBCAMS
0057 };
0058
0059 static const u8 webcam_chip[NWEBCAMS] = {
0060 [Generic800] = BRIDGE_NW800,
0061
0062
0063 [SpaceCam] = BRIDGE_NW800,
0064
0065
0066 [SpaceCam2] = BRIDGE_NW800,
0067
0068
0069 [Cvideopro] = BRIDGE_NW802,
0070
0071
0072 [Dlink350c] = BRIDGE_NW802,
0073
0074
0075 [DS3303u] = BRIDGE_NW801,
0076
0077
0078 [Kr651us] = BRIDGE_NW802,
0079
0080
0081 [Kritter] = BRIDGE_NW802,
0082
0083
0084 [Mustek300] = BRIDGE_NW802,
0085
0086
0087 [Proscope] = BRIDGE_NW802,
0088
0089
0090 [Twinkle] = BRIDGE_NW800,
0091
0092
0093
0094 [DvcV6] = BRIDGE_NW802,
0095
0096
0097 [P35u] = BRIDGE_NW801,
0098
0099
0100 [Generic802] = BRIDGE_NW802,
0101 };
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133 static const struct v4l2_pix_format cif_mode[] = {
0134 {320, 240, V4L2_PIX_FMT_JPGL, V4L2_FIELD_NONE,
0135 .bytesperline = 320,
0136 .sizeimage = 320 * 240 * 4 / 8,
0137 .colorspace = V4L2_COLORSPACE_JPEG},
0138 {352, 288, V4L2_PIX_FMT_JPGL, V4L2_FIELD_NONE,
0139 .bytesperline = 352,
0140 .sizeimage = 352 * 288 * 4 / 8,
0141 .colorspace = V4L2_COLORSPACE_JPEG}
0142 };
0143 static const struct v4l2_pix_format vga_mode[] = {
0144 {320, 240, V4L2_PIX_FMT_JPGL, V4L2_FIELD_NONE,
0145 .bytesperline = 320,
0146 .sizeimage = 320 * 240 * 4 / 8,
0147 .colorspace = V4L2_COLORSPACE_JPEG},
0148 {640, 480, V4L2_PIX_FMT_JPGL, V4L2_FIELD_NONE,
0149 .bytesperline = 640,
0150 .sizeimage = 640 * 480 * 3 / 8,
0151 .colorspace = V4L2_COLORSPACE_JPEG},
0152 };
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162 #define I2C0 0xff
0163
0164 static const u8 nw800_init[] = {
0165 0x04, 0x05, 0x01, 0x61,
0166 0x04, 0x04, 0x01, 0x01,
0167 0x04, 0x06, 0x01, 0x04,
0168 0x04, 0x04, 0x03, 0x00, 0x00, 0x00,
0169 0x05, 0x05, 0x01, 0x00,
0170 0, 0, 0
0171 };
0172 static const u8 nw800_start[] = {
0173 0x04, 0x06, 0x01, 0xc0,
0174 0x00, 0x00, 0x40, 0x10, 0x43, 0x00, 0xb4, 0x01, 0x10, 0x00, 0x4f,
0175 0xef, 0x0e, 0x00, 0x74, 0x01, 0x01, 0x00, 0x19,
0176 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
0177 0x00, 0x01, 0x00, 0x19, 0x00, 0x3e, 0x00, 0x24,
0178 0x03, 0x3e, 0x00, 0x86, 0x00, 0x3e, 0x00, 0x86,
0179 0x00, 0x3e, 0x00, 0x86, 0x00, 0x01, 0x00, 0x01,
0180 0x00, 0x56, 0x00, 0x9e, 0x00, 0x56, 0x00, 0x9e,
0181 0x00, 0x56, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x01,
0182 0x00, 0x40, 0x40, 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0183 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0184 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0185 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0186 0x00, 0xca, 0x03, 0x46, 0x04, 0xca, 0x03, 0x46,
0187 0x04, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
0188 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0,
0189 0x00, 0x3e, 0x00, 0xaa, 0x00, 0x88, 0x00, 0x2e,
0190 0x00, 0x80, 0x1f, 0xa0, 0x48, 0xc3, 0x02, 0x88, 0x0c, 0x68, 0x00,
0191 0x00, 0x00, 0x00, 0x00, 0xa8, 0x06, 0x00, 0x08,
0192 0x00, 0x32, 0x01, 0x01, 0x00, 0x16, 0x00, 0x04,
0193 0x00, 0x4b, 0x00, 0x76, 0x00, 0x86, 0x00,
0194 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
0195 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
0196 0x40, 0x20,
0197 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
0198 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0x61, 0xc0,
0199 0x05, 0x00, 0x06, 0xe8, 0x00, 0x00, 0x00, 0x20, 0x20,
0200 0x06, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0201 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0202 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0203 0x00, 0x00, 0x00,
0204 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0205 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0206 0x00, 0x00, 0x00, 0x00, 0x00,
0207 0x10, 0x00, 0x40, 0x83, 0x02, 0x20, 0x00, 0x13, 0x00, 0x00, 0x00,
0208 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x0a,
0209 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0210 0x00, 0x49, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00,
0211 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0212 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
0213 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
0214 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
0215 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
0216 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
0217 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
0218 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
0219 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
0220 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
0221 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
0222 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
0223 0x10, 0x80, 0x1d, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
0224 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x62,
0225 0x01, 0x24, 0x01, 0x62, 0x01, 0x24, 0x01, 0x20,
0226 0x01, 0x60, 0x01, 0x00, 0x00,
0227
0228 0x04, 0x04, 0x01, 0xff,
0229 0x04, 0x06, 0x01, 0xc4,
0230
0231 0x04, 0x06, 0x01, 0xc0,
0232 0x00, 0x00, 0x40, 0x10, 0x43, 0x00, 0xb4, 0x01, 0x10, 0x00, 0x4f,
0233 0xef, 0x0e, 0x00, 0x74, 0x01, 0x01, 0x00, 0x19,
0234 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
0235 0x00, 0x01, 0x00, 0x19, 0x00, 0x3e, 0x00, 0x24,
0236 0x03, 0x3e, 0x00, 0x86, 0x00, 0x3e, 0x00, 0x86,
0237 0x00, 0x3e, 0x00, 0x86, 0x00, 0x01, 0x00, 0x01,
0238 0x00, 0x56, 0x00, 0x9e, 0x00, 0x56, 0x00, 0x9e,
0239 0x00, 0x56, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x01,
0240 0x00, 0x40, 0x40, 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0241 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0242 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0243 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0244 0x00, 0xca, 0x03, 0x46, 0x04, 0xca, 0x03, 0x46,
0245 0x04, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
0246 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0,
0247 0x00, 0x3e, 0x00, 0xaa, 0x00, 0x88, 0x00, 0x2e,
0248 0x00, 0x80, 0x1f, 0xa0, 0x48, 0xc3, 0x02, 0x88, 0x0c, 0x68, 0x00,
0249 0x00, 0x00, 0x00, 0x00, 0xa8, 0x06, 0x00, 0x08,
0250 0x00, 0x32, 0x01, 0x01, 0x00, 0x16, 0x00, 0x04,
0251 0x00, 0x4b, 0x00, 0x76, 0x00, 0x86, 0x00,
0252 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
0253 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
0254 0x40, 0x20,
0255 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
0256 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0x61, 0xc0,
0257 0x05, 0x00, 0x06, 0xe8, 0x00, 0x00, 0x00, 0x20, 0x20,
0258 0x06, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0259 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0260 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0261 0x00, 0x00, 0x00,
0262 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0263 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0264 0x00, 0x00, 0x00, 0x00, 0x00,
0265 0x10, 0x00, 0x40, 0x83, 0x02, 0x20, 0x00, 0x13, 0x00, 0x00, 0x00,
0266 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x0a,
0267 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0268 0x00, 0x49, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00,
0269 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0270 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
0271 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
0272 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
0273 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
0274 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
0275 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
0276 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
0277 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
0278 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
0279 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
0280 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
0281 0x10, 0x80, 0x1d, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
0282 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x62,
0283 0x01, 0x24, 0x01, 0x62, 0x01, 0x24, 0x01, 0x20,
0284 0x01, 0x60, 0x01, 0x00, 0x00,
0285
0286 0x02, 0x00, 0x11, 0x48, 0x58, 0x9e, 0x48, 0x58, 0x00, 0x00, 0x00,
0287 0x00, 0x84, 0x36, 0x05, 0x01, 0xf2, 0x86, 0x65,
0288 0x40,
0289 0x00, 0x80, 0x01, 0xa0,
0290 0x10, 0x1a, 0x01, 0x00,
0291 0x00, 0x91, 0x02, 0x6c, 0x01,
0292 0x00, 0x03, 0x02, 0xc8, 0x01,
0293 0x10, 0x1a, 0x01, 0x00,
0294 0x10, 0x00, 0x01, 0x83,
0295 0x10, 0x8f, 0x0c, 0x62, 0x01, 0x24, 0x01, 0x62, 0x01, 0x24, 0x01,
0296 0x20, 0x01, 0x60, 0x01,
0297 0x10, 0x85, 0x08, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x1f, 0x01,
0298 0x10, 0x1b, 0x02, 0x69, 0x00,
0299 0x10, 0x11, 0x08, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x1f, 0x01,
0300 0x05, 0x02, 0x01, 0x02,
0301 0x06, 0x00, 0x02, 0x04, 0xd9,
0302 0x05, 0x05, 0x01, 0x20,
0303 0x05, 0x05, 0x01, 0x21,
0304 0x10, 0x0e, 0x01, 0x08,
0305 0x10, 0x41, 0x11, 0x00, 0x08, 0x21, 0x3d, 0x52, 0x63, 0x75, 0x83,
0306 0x91, 0x9e, 0xaa, 0xb6, 0xc1, 0xcc, 0xd6, 0xe0,
0307 0xea,
0308 0x10, 0x03, 0x01, 0x00,
0309 0x10, 0x0f, 0x02, 0x13, 0x13,
0310 0x10, 0x03, 0x01, 0x14,
0311 0x10, 0x41, 0x11, 0x00, 0x08, 0x21, 0x3d, 0x52, 0x63, 0x75, 0x83,
0312 0x91, 0x9e, 0xaa, 0xb6, 0xc1, 0xcc, 0xd6, 0xe0,
0313 0xea,
0314 0x10, 0x0b, 0x01, 0x14,
0315 0x10, 0x0d, 0x01, 0x20,
0316 0x10, 0x0c, 0x01, 0x34,
0317 0x04, 0x06, 0x01, 0xc3,
0318 0x04, 0x04, 0x01, 0x00,
0319 0x05, 0x02, 0x01, 0x02,
0320 0x06, 0x00, 0x02, 0x00, 0x48,
0321 0x05, 0x05, 0x01, 0x20,
0322 0x05, 0x05, 0x01, 0x21,
0323 0, 0, 0
0324 };
0325
0326
0327
0328 static const u8 nw801_start_1[] = {
0329 0x05, 0x06, 0x01, 0x04,
0330 0x00, 0x00, 0x40, 0x0e, 0x00, 0x00, 0xf9, 0x02, 0x11, 0x00, 0x0e,
0331 0x01, 0x1f, 0x00, 0x0d, 0x02, 0x01, 0x00, 0x19,
0332 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
0333 0x00, 0x01, 0x00, 0x19, 0x00, 0xce, 0x00, 0xf4,
0334 0x05, 0x3e, 0x00, 0x86, 0x00, 0x3e, 0x00, 0x86,
0335 0x00, 0x3e, 0x00, 0x86, 0x00, 0x01, 0x00, 0x01,
0336 0x00, 0x56, 0x00, 0x9e, 0x00, 0x56, 0x00, 0x9e,
0337 0x00, 0x56, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x01,
0338 0x00, 0x40, 0x40, 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0339 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0340 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0341 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0342 0x00, 0xca, 0x03, 0x46, 0x04, 0xca, 0x03, 0x46,
0343 0x04, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
0344 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0,
0345 0x00, 0x3e, 0x00, 0xaa, 0x00, 0x88, 0x00, 0x2e,
0346 0x00, 0x80, 0x22, 0xb4, 0x6f, 0x3f, 0x0f, 0x88, 0x20, 0x08, 0x00,
0347 0x00, 0x00, 0x00, 0x00, 0x69, 0xa8, 0x1f, 0x00,
0348 0x0d, 0x02, 0x07, 0x00, 0x01, 0x00, 0x19, 0x00,
0349 0xf2, 0x00, 0x18, 0x06, 0x10, 0x06, 0x10, 0x00,
0350 0x36, 0x00,
0351 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
0352 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
0353 0x40, 0x20,
0354 0x03, 0x00, 0x03, 0x00, 0x00, 0x00,
0355 0x05, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0356 0x06, 0x00, 0x02, 0x09, 0x99,
0357 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0358 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0359 0x00, 0x00, 0x00, 0x00, 0x00,
0360 0x10, 0x00, 0x40, 0x22, 0x02, 0x80, 0x00, 0x1e, 0x00, 0x00, 0x00,
0361 0x00, 0x00, 0x00, 0x0a, 0x15, 0x08, 0x08, 0x0a,
0362 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0363 0x00, 0x01, 0x35, 0xfd, 0x07, 0x3d, 0x00, 0x00,
0364 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x14, 0x02,
0365 0x00, 0x01, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
0366 0x40, 0x00, 0x00, 0x00, 0x40, 0x20, 0x10, 0x06,
0367 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06, 0xf7,
0368 0x10, 0x40, 0x40, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80, 0x80,
0369 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99, 0xa4,
0370 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc, 0xcf,
0371 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54, 0x64,
0372 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2, 0xe2,
0373 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
0374 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
0375 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
0376 0x10, 0x80, 0x22, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
0377 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00, 0x00,
0378 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x82, 0x02,
0379 0xe4, 0x01, 0x40, 0x01, 0xf0, 0x00, 0x40, 0x01,
0380 0xf0, 0x00,
0381 0, 0, 0,
0382 };
0383 static const u8 nw801_start_qvga[] = {
0384 0x02, 0x00, 0x10, 0x3c, 0x50, 0x9e, 0x3c, 0x50, 0x00, 0x00, 0x00,
0385 0x00, 0x78, 0x18, 0x0b, 0x06, 0xa2, 0x86, 0x78,
0386 0x02, 0x0f, 0x01, 0x6b,
0387 0x10, 0x1a, 0x01, 0x15,
0388 0x00, 0x00, 0x01, 0x1e,
0389 0x10, 0x00, 0x01, 0x2f,
0390 0x10, 0x8c, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
0391 0x10, 0x11, 0x08, 0x29, 0x00, 0x18, 0x01, 0x1f, 0x00, 0xd2, 0x00,
0392
0393 0, 0, 0,
0394 };
0395 static const u8 nw801_start_vga[] = {
0396 0x02, 0x00, 0x10, 0x78, 0xa0, 0x97, 0x78, 0xa0, 0x00, 0x00, 0x00,
0397 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xf0,
0398 0x02, 0x0f, 0x01, 0xd5,
0399 0x10, 0x1a, 0x01, 0x15,
0400 0x00, 0x00, 0x01, 0x0e,
0401 0x10, 0x00, 0x01, 0x22,
0402 0x10, 0x8c, 0x08, 0x00, 0x00, 0x7f, 0x02, 0x00, 0x00, 0xdf, 0x01,
0403 0x10, 0x11, 0x08, 0x51, 0x00, 0x30, 0x02, 0x3d, 0x00, 0xa4, 0x01,
0404 0, 0, 0,
0405 };
0406 static const u8 nw801_start_2[] = {
0407 0x10, 0x04, 0x01, 0x1a,
0408 0x10, 0x19, 0x01, 0x09,
0409 0x10, 0x24, 0x06, 0xc0, 0x00, 0x3f, 0x02, 0x00, 0x01,
0410
0411 0x00, 0x03, 0x02, 0x92, 0x03,
0412 0x00, 0x1d, 0x04, 0xf2, 0x00, 0x24, 0x07,
0413 0x00, 0x7b, 0x01, 0xcf,
0414 0x10, 0x94, 0x01, 0x07,
0415 0x05, 0x05, 0x01, 0x01,
0416 0x05, 0x04, 0x01, 0x01,
0417 0x10, 0x0e, 0x01, 0x08,
0418 0x10, 0x48, 0x11, 0x00, 0x37, 0x55, 0x6b, 0x7d, 0x8d, 0x9b, 0xa8,
0419 0xb4, 0xbf, 0xca, 0xd4, 0xdd, 0xe6, 0xef, 0xf0,
0420 0xf0,
0421 0x10, 0x03, 0x01, 0x00,
0422 0x10, 0x0f, 0x02, 0x0c, 0x0c,
0423 0x10, 0x03, 0x01, 0x08,
0424 0x10, 0x48, 0x11, 0x00, 0x37, 0x55, 0x6b, 0x7d, 0x8d, 0x9b, 0xa8,
0425 0xb4, 0xbf, 0xca, 0xd4, 0xdd, 0xe6, 0xef, 0xf0,
0426 0xf0,
0427 0x10, 0x0b, 0x01, 0x0b,
0428 0x10, 0x0d, 0x01, 0x0b,
0429 0x10, 0x0c, 0x01, 0x1f,
0430 0x05, 0x06, 0x01, 0x03,
0431 0, 0, 0
0432 };
0433
0434
0435 static const u8 nw802_start[] = {
0436 0x04, 0x06, 0x01, 0x04,
0437 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0xf9, 0x02, 0x10, 0x00, 0x4d,
0438 0x0f, 0x1f, 0x00, 0x0d, 0x02, 0x01, 0x00, 0x19,
0439 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
0440 0x00, 0x01, 0x00, 0x19, 0x00, 0xce, 0x00, 0xf4,
0441 0x05, 0x3e, 0x00, 0x86, 0x00, 0x3e, 0x00, 0x86,
0442 0x00, 0x3e, 0x00, 0x86, 0x00, 0x01, 0x00, 0x01,
0443 0x00, 0x56, 0x00, 0x9e, 0x00, 0x56, 0x00, 0x9e,
0444 0x00, 0x56, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x01,
0445 0x00, 0x40, 0x40, 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0446 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0447 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0448 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0449 0x00, 0xca, 0x03, 0x46, 0x04, 0xca, 0x03, 0x46,
0450 0x04, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
0451 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0,
0452 0x00, 0x3e, 0x00, 0xaa, 0x00, 0x88, 0x00, 0x2e,
0453 0x00, 0x80, 0x1f, 0xb4, 0x6f, 0x3f, 0x0f, 0x88, 0x20, 0x68, 0x00,
0454 0x00, 0x00, 0x00, 0x00, 0xa8, 0x08, 0x00, 0x11,
0455 0x00, 0x0c, 0x02, 0x01, 0x00, 0x16, 0x00, 0x94,
0456 0x00, 0x10, 0x06, 0x08, 0x00, 0x18, 0x00,
0457 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
0458 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
0459 0x40, 0x20,
0460 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
0461 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0x21, 0x00,
0462 0x06, 0x00, 0x02, 0x09, 0x99,
0463 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0464 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0465 0x00, 0x00, 0x00, 0x00, 0x00,
0466 0x10, 0x00, 0x40, 0xa1, 0x02, 0x80, 0x00, 0x1d, 0x00, 0x00, 0x00,
0467 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x0a,
0468 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0469 0x00, 0x49, 0x13, 0xff, 0x01, 0xc0, 0x00, 0x14,
0470 0x02, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00,
0471 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
0472 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
0473 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
0474 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
0475 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
0476 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
0477 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
0478 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
0479 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
0480 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
0481 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
0482 0x10, 0x80, 0x1b, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
0483 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x05, 0x82,
0484 0x02, 0xe4, 0x01, 0x40, 0x01, 0xf0, 0x00, 0x40,
0485 0x01, 0xf0, 0x00,
0486 0x02, 0x00, 0x11, 0x3c, 0x50, 0x9e, 0x3c, 0x50, 0x00, 0x00, 0x00,
0487 0x00, 0x78, 0x3f, 0x10, 0x02, 0xf2, 0x8f, 0x78,
0488 0x40,
0489 0x10, 0x1a, 0x01, 0x00,
0490 0x10, 0x00, 0x01, 0xad,
0491 0x00, 0x00, 0x01, 0x08,
0492 0x10, 0x85, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
0493 0x10, 0x1b, 0x02, 0x00, 0x00,
0494 0x10, 0x11, 0x08, 0x51, 0x00, 0xf0, 0x00, 0x3d, 0x00, 0xb4, 0x00,
0495 0x10, 0x1d, 0x08, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xa0, 0x00, 0xa0,
0496 0x10, 0x0e, 0x01, 0x27,
0497 0x10, 0x41, 0x11, 0x00, 0x0e, 0x35, 0x4f, 0x62, 0x71, 0x7f, 0x8b,
0498 0x96, 0xa0, 0xa9, 0xb2, 0xbb, 0xc3, 0xca, 0xd2,
0499 0xd8,
0500 0x10, 0x03, 0x01, 0x00,
0501 0x10, 0x0f, 0x02, 0x14, 0x14,
0502 0x10, 0x03, 0x01, 0x0c,
0503 0x10, 0x41, 0x11, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54, 0x64, 0x74,
0504 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2, 0xe2, 0xf1,
0505 0xff,
0506
0507
0508
0509 0x10, 0x0b, 0x01, 0x10,
0510 0x10, 0x0d, 0x01, 0x11,
0511 0x10, 0x0c, 0x01, 0x1c,
0512 0x04, 0x06, 0x01, 0x03,
0513 0x04, 0x04, 0x01, 0x00,
0514 0, 0, 0
0515 };
0516
0517 static const u8 spacecam_init[] = {
0518 0x04, 0x05, 0x01, 0x01,
0519 0x04, 0x04, 0x01, 0x01,
0520 0x04, 0x06, 0x01, 0x04,
0521 0x04, 0x04, 0x03, 0x00, 0x00, 0x00,
0522 0x05, 0x05, 0x01, 0x00,
0523 0, 0, 0
0524 };
0525 static const u8 spacecam_start[] = {
0526 0x04, 0x06, 0x01, 0x44,
0527 0x00, 0x00, 0x40, 0x10, 0x43, 0x00, 0xb4, 0x01, 0x10, 0x00, 0x4f,
0528 0xef, 0x0e, 0x00, 0x74, 0x01, 0x01, 0x00, 0x19,
0529 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
0530 0x00, 0x01, 0x00, 0x19, 0x00, 0x3e, 0x00, 0x24,
0531 0x03, 0x3e, 0x00, 0x86, 0x00, 0x3e, 0x00, 0x86,
0532 0x00, 0x3e, 0x00, 0x86, 0x00, 0x01, 0x00, 0x01,
0533 0x00, 0x56, 0x00, 0x9e, 0x00, 0x56, 0x00, 0x9e,
0534 0x00, 0x56, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x01,
0535 0x00, 0x40, 0x40, 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0536 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0537 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0538 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0539 0x00, 0xca, 0x03, 0x46, 0x04, 0xca, 0x03, 0x46,
0540 0x04, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
0541 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0,
0542 0x00, 0x3e, 0x00, 0xaa, 0x00, 0x88, 0x00, 0x2e,
0543 0x00, 0x80, 0x1f, 0xa0, 0x48, 0xc3, 0x02, 0x88, 0x0c, 0x68, 0x00,
0544 0x00, 0x00, 0x00, 0x00, 0xa8, 0x06, 0x00, 0x08,
0545 0x00, 0x32, 0x01, 0x01, 0x00, 0x16, 0x00, 0x04,
0546 0x00, 0x4b, 0x00, 0x7c, 0x00, 0x80, 0x00,
0547 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
0548 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
0549 0x40, 0x20,
0550 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
0551 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
0552 0x05, 0x00, 0x06, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0553 0x06, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0554 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0555 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0556 0x00, 0x00, 0x00,
0557 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0558 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0559 0x00, 0x00, 0x00, 0x00, 0x00,
0560 0x10, 0x00, 0x40, 0x83, 0x02, 0x20, 0x00, 0x11, 0x00, 0x00, 0x00,
0561 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x0a,
0562 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0563 0x00, 0x49, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00,
0564 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0565 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
0566 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
0567 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
0568 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
0569 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
0570 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
0571 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
0572 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
0573 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
0574 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
0575 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
0576 0x10, 0x80, 0x1d, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
0577 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x62,
0578 0x01, 0x24, 0x01, 0x62, 0x01, 0x24, 0x01, 0x20,
0579 0x01, 0x60, 0x01, 0x00, 0x00,
0580 0x04, 0x06, 0x01, 0xc0,
0581 0x10, 0x85, 0x08, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x1f, 0x01,
0582 0x02, 0x00, 0x11, 0x48, 0x58, 0x9e, 0x48, 0x58, 0x00, 0x00, 0x00,
0583 0x00, 0x84, 0x36, 0x05, 0x01, 0xf2, 0x86, 0x65,
0584 0x40,
0585 0x00, 0x80, 0x01, 0xa0,
0586 0x10, 0x1a, 0x01, 0x00,
0587 0x00, 0x91, 0x02, 0x32, 0x01,
0588 0x00, 0x03, 0x02, 0x08, 0x02,
0589 0x10, 0x00, 0x01, 0x83,
0590 0x10, 0x8f, 0x0c, 0x62, 0x01, 0x24, 0x01, 0x62, 0x01, 0x24, 0x01,
0591 0x20, 0x01, 0x60, 0x01,
0592 0x10, 0x11, 0x08, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x1f, 0x01,
0593 0x10, 0x0e, 0x01, 0x08,
0594 0x10, 0x41, 0x11, 0x00, 0x64, 0x99, 0xc0, 0xe2, 0xf9, 0xf9, 0xf9,
0595 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9,
0596 0xf9,
0597 0x10, 0x03, 0x01, 0x00,
0598 0x10, 0x0f, 0x02, 0x13, 0x13,
0599 0x10, 0x03, 0x01, 0x06,
0600 0x10, 0x41, 0x11, 0x00, 0x64, 0x99, 0xc0, 0xe2, 0xf9, 0xf9, 0xf9,
0601 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9,
0602 0xf9,
0603 0x10, 0x0b, 0x01, 0x08,
0604 0x10, 0x0d, 0x01, 0x10,
0605 0x10, 0x0c, 0x01, 0x1f,
0606 0x04, 0x06, 0x01, 0xc3,
0607 0x04, 0x05, 0x01, 0x40,
0608 0x04, 0x04, 0x01, 0x40,
0609 0, 0, 0
0610 };
0611
0612 static const u8 spacecam2_start[] = {
0613 0x04, 0x06, 0x01, 0x44,
0614 0x04, 0x06, 0x01, 0x00,
0615 0x00, 0x00, 0x40, 0x14, 0x83, 0x00, 0xba, 0x01, 0x10, 0x00, 0x4f,
0616 0xef, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00, 0x19,
0617 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
0618 0x00, 0x01, 0x00, 0x19, 0x00, 0x06, 0x00, 0xfc,
0619 0x01, 0x3e, 0x00, 0x86, 0x00, 0x3e, 0x00, 0x86,
0620 0x00, 0x3e, 0x00, 0x86, 0x00, 0x01, 0x00, 0x01,
0621 0x00, 0x56, 0x00, 0x9e, 0x00, 0x56, 0x00, 0x9e,
0622 0x00, 0x56, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x01,
0623 0x00, 0x40, 0x40, 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0624 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0625 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0626 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0627 0x00, 0xca, 0x03, 0x46, 0x04, 0xca, 0x03, 0x46,
0628 0x04, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
0629 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0,
0630 0x00, 0x3e, 0x00, 0xaa, 0x00, 0x88, 0x00, 0x2e,
0631 0x00, 0x80, 0x1f, 0xb8, 0x48, 0x0f, 0x04, 0x88, 0x14, 0x68, 0x00,
0632 0x00, 0x00, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x03,
0633 0x00, 0x24, 0x01, 0x01, 0x00, 0x16, 0x00, 0x04,
0634 0x00, 0x4b, 0x00, 0x76, 0x00, 0x86, 0x00,
0635 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
0636 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
0637 0x40, 0x20,
0638 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
0639 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0x61, 0x00,
0640 0x05, 0x00, 0x06, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0641 0x06, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0642 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0643 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0644 0x00, 0x00, 0x00,
0645 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0646 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0647 0x00, 0x00, 0x00, 0x00, 0x00,
0648 0x10, 0x00, 0x40, 0x80, 0x02, 0x20, 0x00, 0x13, 0x00, 0x00, 0x00,
0649 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x0a,
0650 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0651 0x00, 0x49, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00,
0652 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0653 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
0654 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
0655 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
0656 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
0657 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
0658 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
0659 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
0660 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
0661 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
0662 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
0663 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
0664 0x10, 0x80, 0x1d, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
0665 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x62,
0666 0x01, 0x24, 0x01, 0x62, 0x01, 0x24, 0x01, 0x20,
0667 0x01, 0x60, 0x01, 0x00, 0x00,
0668 0x10, 0x85, 0x08, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x1f, 0x01,
0669 0x04, 0x04, 0x01, 0x40,
0670 0x04, 0x04, 0x01, 0x00,
0671 I2C0, 0x40, 0x0c, 0x02, 0x0c, 0x12, 0x07, 0x00, 0x00, 0x00, 0x05,
0672 0x00, 0x00, 0x05, 0x05,
0673 I2C0, 0x40, 0x02, 0x11, 0x06,
0674 I2C0, 0x40, 0x02, 0x14, 0x00,
0675 I2C0, 0x40, 0x02, 0x13, 0x01,
0676 0x02, 0x00, 0x11, 0x48, 0x58, 0x9e, 0x48, 0x58, 0x00, 0x00, 0x00,
0677 0x00, 0x84, 0x36, 0x05, 0x01, 0xf2, 0x86, 0x65,
0678 0x40,
0679 I2C0, 0x40, 0x02, 0x02, 0x0c,
0680 I2C0, 0x40, 0x02, 0x0f, 0x00,
0681 I2C0, 0x40, 0x02, 0x13, 0x01,
0682 0x10, 0x00, 0x01, 0x01,
0683 0x10, 0x8f, 0x0c, 0x62, 0x01, 0x24, 0x01, 0x62, 0x01, 0x24, 0x01,
0684 0x20, 0x01, 0x60, 0x01,
0685 I2C0, 0x40, 0x02, 0x05, 0x0f,
0686 I2C0, 0x40, 0x02, 0x13, 0x01,
0687 I2C0, 0x40, 0x07, 0x09, 0x0b, 0x0f, 0x05, 0x05, 0x0f, 0x00,
0688
0689 I2C0, 0x40, 0x03, 0x12, 0x04, 0x01,
0690 0x10, 0x11, 0x08, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x1f, 0x01,
0691 0x10, 0x0e, 0x01, 0x08,
0692 0x10, 0x41, 0x11, 0x00, 0x17, 0x3f, 0x69, 0x7b, 0x8c, 0x9a, 0xa7,
0693 0xb3, 0xbf, 0xc9, 0xd3, 0xdd, 0xe6, 0xef, 0xf7,
0694 0xf9,
0695 0x10, 0x03, 0x01, 0x00,
0696 0x10, 0x0f, 0x02, 0x13, 0x13,
0697 0x10, 0x03, 0x01, 0x06,
0698 0x10, 0x41, 0x11, 0x00, 0x17, 0x3f, 0x69, 0x7b, 0x8c, 0x9a, 0xa7,
0699 0xb3, 0xbf, 0xc9, 0xd3, 0xdd, 0xe6, 0xef, 0xf7,
0700 0xf9,
0701 0x10, 0x0b, 0x01, 0x11,
0702 0x10, 0x0d, 0x01, 0x10,
0703 0x10, 0x0c, 0x01, 0x14,
0704 0x04, 0x06, 0x01, 0x03,
0705 0x04, 0x05, 0x01, 0x61,
0706 0x04, 0x04, 0x01, 0x00,
0707 0, 0, 0
0708 };
0709
0710
0711 static const u8 cvideopro_start[] = {
0712 0x04, 0x06, 0x01, 0x04,
0713 0x00, 0x00, 0x40, 0x54, 0x96, 0x98, 0xf9, 0x02, 0x18, 0x00, 0x4c,
0714 0x0f, 0x1f, 0x00, 0x0d, 0x02, 0x01, 0x00, 0x19,
0715 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
0716 0x00, 0x0b, 0x00, 0x1b, 0x00, 0xc8, 0x00, 0xf4,
0717 0x05, 0xb4, 0x00, 0xcc, 0x00, 0x01, 0x00, 0x01,
0718 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0719 0x00, 0xa2, 0x00, 0xc6, 0x00, 0x60, 0x00, 0xc6,
0720 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0721 0x00, 0x40, 0x40, 0x00, 0xae, 0x00, 0xd2, 0x00, 0xae, 0x00, 0xd2,
0722 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0723 0x00, 0xa8, 0x00, 0xc0, 0x00, 0x66, 0x00, 0xc0,
0724 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0725 0x00, 0x0a, 0x00, 0x54, 0x00, 0x0a, 0x00, 0x54,
0726 0x00, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
0727 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6,
0728 0x00, 0x5d, 0x00, 0xc7, 0x00, 0x7e, 0x00, 0x30,
0729 0x00, 0x80, 0x1f, 0x98, 0x43, 0x3f, 0x0d, 0x88, 0x20, 0x80, 0x3f,
0730 0x47, 0xaf, 0x00, 0x00, 0xa8, 0x08, 0x00, 0x11,
0731 0x00, 0x0c, 0x02, 0x0c, 0x00, 0x1c, 0x00, 0x94,
0732 0x00, 0x10, 0x06, 0x24, 0x00, 0x4a, 0x00,
0733 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
0734 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
0735 0x40, 0x20,
0736 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
0737 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0xff, 0x00,
0738 0x06, 0x00, 0x02, 0x09, 0x99,
0739 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0740 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0741 0x00, 0x00, 0x00, 0x00, 0x00,
0742 0x10, 0x00, 0x40, 0xa0, 0x02, 0x80, 0x00, 0x12, 0x00, 0x00, 0x00,
0743 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x0a,
0744 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0745 0x00, 0x49, 0x13, 0x00, 0x00, 0xe0, 0x00, 0x0c,
0746 0x00, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0747 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
0748 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
0749 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
0750 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
0751 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
0752 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
0753 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
0754 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
0755 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
0756 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
0757 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
0758 0x10, 0x80, 0x1b, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
0759 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x82,
0760 0x02, 0xe4, 0x01, 0x40, 0x01, 0xf0, 0x00, 0x40,
0761 0x01, 0xf0, 0x00,
0762 0x02, 0x00, 0x11, 0x3c, 0x50, 0x8c, 0x3c, 0x50, 0x00, 0x00, 0x00,
0763 0x00, 0x78, 0x3f, 0x3f, 0x06, 0xf2, 0x8f, 0xf0,
0764 0x40,
0765 0x10, 0x1a, 0x01, 0x03,
0766 0x10, 0x00, 0x01, 0xac,
0767 0x10, 0x85, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
0768 0x10, 0x1b, 0x02, 0x3b, 0x01,
0769 0x10, 0x11, 0x08, 0x61, 0x00, 0xe0, 0x00, 0x49, 0x00, 0xa8, 0x00,
0770 0x10, 0x1f, 0x06, 0x01, 0x20, 0x02, 0xe8, 0x03, 0x00,
0771 0x10, 0x1d, 0x02, 0x40, 0x06,
0772 0x10, 0x0e, 0x01, 0x08,
0773 0x10, 0x41, 0x11, 0x00, 0x0f, 0x46, 0x62, 0x76, 0x86, 0x94, 0xa0,
0774 0xab, 0xb6, 0xbf, 0xc8, 0xcf, 0xd7, 0xdc, 0xdc,
0775 0xdc,
0776 0x10, 0x03, 0x01, 0x00,
0777 0x10, 0x0f, 0x02, 0x12, 0x12,
0778 0x10, 0x03, 0x01, 0x0c,
0779 0x10, 0x41, 0x11, 0x00, 0x0f, 0x46, 0x62, 0x76, 0x86, 0x94, 0xa0,
0780 0xab, 0xb6, 0xbf, 0xc8, 0xcf, 0xd7, 0xdc, 0xdc,
0781 0xdc,
0782 0x10, 0x0b, 0x01, 0x09,
0783 0x10, 0x0d, 0x01, 0x10,
0784 0x10, 0x0c, 0x01, 0x2f,
0785 0x04, 0x06, 0x01, 0x03,
0786 0x04, 0x04, 0x01, 0x00,
0787 0, 0, 0
0788 };
0789
0790
0791 static const u8 dlink_start[] = {
0792 0x04, 0x06, 0x01, 0x04,
0793 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x92, 0x03, 0x10, 0x00, 0x4d,
0794 0x0f, 0x1f, 0x00, 0x0d, 0x02, 0x01, 0x00, 0x19,
0795 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
0796 0x00, 0x01, 0x00, 0x19, 0x00, 0xce, 0x00, 0xf4,
0797 0x05, 0x3e, 0x00, 0x86, 0x00, 0x3e, 0x00, 0x86,
0798 0x00, 0x3e, 0x00, 0x86, 0x00, 0x01, 0x00, 0x01,
0799 0x00, 0x56, 0x00, 0x9e, 0x00, 0x56, 0x00, 0x9e,
0800 0x00, 0x56, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x01,
0801 0x00, 0x40, 0x40, 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0802 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0803 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0804 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0805 0x00, 0xca, 0x03, 0x46, 0x04, 0xca, 0x03, 0x46,
0806 0x04, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
0807 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0,
0808 0x00, 0x3e, 0x00, 0xaa, 0x00, 0x88, 0x00, 0x2e,
0809 0x00, 0x80, 0x1f, 0xb4, 0x6f, 0x3f, 0x0f, 0x88, 0x20, 0x68, 0x00,
0810 0x00, 0x00, 0x00, 0x00, 0xa8, 0x08, 0x00, 0x11,
0811 0x00, 0x0c, 0x02, 0x01, 0x00, 0x16, 0x00, 0x94,
0812 0x00, 0x10, 0x06, 0x10, 0x00, 0x36, 0x00,
0813 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
0814 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
0815 0x40, 0x20,
0816 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
0817 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0x21, 0x00,
0818 0x06, 0x00, 0x02, 0x09, 0x99,
0819 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0820 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0821 0x00, 0x00, 0x00, 0x00, 0x00,
0822 0x10, 0x00, 0x40, 0xa1, 0x02, 0x80, 0x00, 0x12, 0x00, 0x00, 0x00,
0823 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x0a,
0824 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0825 0x00, 0x49, 0x13, 0x00, 0x00, 0xc0, 0x00, 0x14,
0826 0x02, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00,
0827 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
0828 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
0829 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
0830 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
0831 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
0832 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
0833 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
0834 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
0835 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
0836 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
0837 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
0838 0x10, 0x80, 0x1b, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
0839 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x01, 0x82,
0840 0x02, 0xe4, 0x01, 0x40, 0x01, 0xf0, 0x00, 0x40,
0841 0x01, 0xf0, 0x00,
0842 0x02, 0x00, 0x11, 0x3c, 0x50, 0x9e, 0x3c, 0x50, 0x00, 0x00, 0x00,
0843 0x00, 0x78, 0x3f, 0x10, 0x02, 0xf2, 0x8f, 0x78,
0844 0x40,
0845 0x10, 0x1a, 0x01, 0x00,
0846 0x10, 0x00, 0x01, 0xad,
0847 0x00, 0x00, 0x01, 0x08,
0848 0x10, 0x85, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
0849 0x10, 0x1b, 0x02, 0x00, 0x00,
0850 0x10, 0x11, 0x08, 0x51, 0x00, 0xf0, 0x00, 0x3d, 0x00, 0xb4, 0x00,
0851 0x10, 0x1d, 0x08, 0x40, 0x06, 0x01, 0x20, 0x02, 0xe8, 0x03, 0x00,
0852 0x10, 0x0e, 0x01, 0x20,
0853 0x10, 0x41, 0x11, 0x00, 0x07, 0x1e, 0x38, 0x4d, 0x60, 0x70, 0x7f,
0854 0x8e, 0x9b, 0xa8, 0xb4, 0xbf, 0xca, 0xd5, 0xdf,
0855 0xea,
0856 0x10, 0x03, 0x01, 0x00,
0857 0x10, 0x0f, 0x02, 0x11, 0x11,
0858 0x10, 0x03, 0x01, 0x10,
0859 0x10, 0x41, 0x11, 0x00, 0x07, 0x1e, 0x38, 0x4d, 0x60, 0x70, 0x7f,
0860 0x8e, 0x9b, 0xa8, 0xb4, 0xbf, 0xca, 0xd5, 0xdf,
0861 0xea,
0862 0x10, 0x0b, 0x01, 0x19,
0863 0x10, 0x0d, 0x01, 0x10,
0864 0x10, 0x0c, 0x01, 0x1e,
0865 0x04, 0x06, 0x01, 0x03,
0866 0x04, 0x04, 0x01, 0x00,
0867 0, 0, 0
0868 };
0869
0870
0871
0872
0873 static const u8 ds3303_start[] = {
0874 0x05, 0x06, 0x01, 0x04,
0875 0x00, 0x00, 0x40, 0x16, 0x00, 0x00, 0xf9, 0x02, 0x11, 0x00, 0x0e,
0876 0x01, 0x1f, 0x00, 0x0d, 0x02, 0x01, 0x00, 0x19,
0877 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
0878 0x00, 0x01, 0x00, 0x19, 0x00, 0xce, 0x00, 0xf4,
0879 0x05, 0x3e, 0x00, 0x86, 0x00, 0x3e, 0x00, 0x86,
0880 0x00, 0x3e, 0x00, 0x86, 0x00, 0x01, 0x00, 0x01,
0881 0x00, 0x56, 0x00, 0x9e, 0x00, 0x56, 0x00, 0x9e,
0882 0x00, 0x56, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x01,
0883 0x00, 0x40, 0x40, 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0884 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0885 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
0886 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
0887 0x00, 0xca, 0x03, 0x46, 0x04, 0xca, 0x03, 0x46,
0888 0x04, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
0889 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0,
0890 0x00, 0x3e, 0x00, 0xaa, 0x00, 0x88, 0x00, 0x2e,
0891 0x00, 0x80, 0x22, 0xb4, 0x6f, 0x3f, 0x0f, 0x88, 0x20, 0x08, 0x00,
0892 0x00, 0x00, 0x00, 0x00, 0xa9, 0xa8, 0x1f, 0x00,
0893 0x0d, 0x02, 0x07, 0x00, 0x01, 0x00, 0x19, 0x00,
0894 0xf2, 0x00, 0x18, 0x06, 0x10, 0x06, 0x10, 0x00,
0895 0x36, 0x00,
0896 0x02, 0x00, 0x12, 0x03, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
0897 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0x50,
0898 0x40, 0x20,
0899 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
0900 0x05, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0xff, 0x00,
0901 0x06, 0x00, 0x02, 0x09, 0x99,
0902 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0903 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0904 0x00, 0x00, 0x00, 0x00, 0x00,
0905 0x10, 0x00, 0x40, 0x2f, 0x02, 0x80, 0x00, 0x12, 0x00, 0x00, 0x00,
0906 0x00, 0x00, 0x00, 0x10, 0x1f, 0x10, 0x08, 0x0a,
0907 0x0a, 0x51, 0x00, 0xf1, 0x00, 0x3c, 0x00, 0xb4,
0908 0x00, 0x01, 0x15, 0xfd, 0x07, 0x3d, 0x00, 0x00,
0909 0x00, 0x00, 0x00, 0x00, 0x8c, 0x04, 0x01, 0x20,
0910 0x02, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00, 0x00,
0911 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08, 0x03,
0912 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06, 0xf7,
0913 0x10, 0x40, 0x40, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80, 0x80,
0914 0x00, 0x2d, 0x46, 0x58, 0x67, 0x74, 0x7f, 0x88,
0915 0x94, 0x9d, 0xa6, 0xae, 0xb5, 0xbd, 0xc4, 0xcb,
0916 0xd1, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54, 0x64,
0917 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2, 0xe2,
0918 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
0919 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
0920 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
0921 0x10, 0x80, 0x22, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
0922 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x3f, 0x01,
0923 0x00, 0x00, 0xef, 0x00, 0x02, 0x0a, 0x82, 0x02,
0924 0xe4, 0x01, 0x40, 0x01, 0xf0, 0x00, 0x40, 0x01,
0925 0xf0, 0x00,
0926
0927 0x02, 0x00, 0x11, 0x3c, 0x50, 0x9e, 0x3c, 0x50, 0x00, 0x00, 0x00,
0928 0x00, 0x78, 0x3f, 0x3f, 0x00, 0xf2, 0x8f, 0x81,
0929 0x40,
0930 0x10, 0x1a, 0x01, 0x15,
0931 0x10, 0x00, 0x01, 0x2f,
0932 0x10, 0x8c, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
0933 0x10, 0x1b, 0x02, 0x00, 0x00,
0934 0x10, 0x11, 0x08, 0x61, 0x00, 0xe0, 0x00, 0x49, 0x00, 0xa8, 0x00,
0935 0x10, 0x26, 0x06, 0x01, 0x20, 0x02, 0xe8, 0x03, 0x00,
0936 0x10, 0x24, 0x02, 0x40, 0x06,
0937 0x10, 0x0e, 0x01, 0x08,
0938 0x10, 0x48, 0x11, 0x00, 0x15, 0x40, 0x67, 0x84, 0x9d, 0xb2, 0xc6,
0939 0xd6, 0xe7, 0xf6, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9,
0940 0xf9,
0941 0x10, 0x03, 0x01, 0x00,
0942 0x10, 0x0f, 0x02, 0x16, 0x16,
0943 0x10, 0x03, 0x01, 0x0c,
0944 0x10, 0x48, 0x11, 0x00, 0x15, 0x40, 0x67, 0x84, 0x9d, 0xb2, 0xc6,
0945 0xd6, 0xe7, 0xf6, 0xf9, 0xf9, 0xf9, 0xf9, 0xf9,
0946 0xf9,
0947 0x10, 0x0b, 0x01, 0x26,
0948 0x10, 0x0d, 0x01, 0x10,
0949 0x10, 0x0c, 0x01, 0x1c,
0950 0x05, 0x06, 0x01, 0x03,
0951 0x05, 0x04, 0x01, 0x00,
0952 0, 0, 0
0953 };
0954
0955
0956
0957 static const u8 kr651_start_1[] = {
0958 0x04, 0x06, 0x01, 0x04,
0959 0x00, 0x00, 0x40, 0x44, 0x96, 0x98, 0xf9, 0x02, 0x18, 0x00, 0x48,
0960 0x0f, 0x1f, 0x00, 0x0d, 0x02, 0x01, 0x00, 0x19,
0961 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
0962 0x00, 0x0b, 0x00, 0x1b, 0x00, 0xc8, 0x00, 0xf4,
0963 0x05, 0xb4, 0x00, 0xcc, 0x00, 0x01, 0x00, 0x01,
0964 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0965 0x00, 0xa2, 0x00, 0xc6, 0x00, 0x60, 0x00, 0xc6,
0966 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0967 0x00, 0x40, 0x40, 0x00, 0xae, 0x00, 0xd2, 0x00, 0xae, 0x00, 0xd2,
0968 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0969 0x00, 0xa8, 0x00, 0xc0, 0x00, 0x66, 0x00, 0xc0,
0970 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
0971 0x00, 0x0a, 0x00, 0x54, 0x00, 0x0a, 0x00, 0x54,
0972 0x00, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
0973 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6,
0974 0x00, 0x5d, 0x00, 0xc7, 0x00, 0x7e, 0x00, 0x30,
0975 0x00, 0x80, 0x1f, 0x18, 0x43, 0x3f, 0x0d, 0x88, 0x20, 0x80, 0x3f,
0976 0x47, 0xaf, 0x00, 0x00, 0xa8, 0x08, 0x00, 0x11,
0977 0x00, 0x0c, 0x02, 0x0c, 0x00, 0x1c, 0x00, 0x94,
0978 0x00, 0x10, 0x06, 0x24, 0x00, 0x4a, 0x00,
0979 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
0980 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
0981 0x40, 0x20,
0982 0x03, 0x00, 0x03, 0x02, 0x00, 0x00,
0983 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0x21, 0x00,
0984 0x06, 0x00, 0x02, 0x09, 0x99,
0985 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0986 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0987 0x00, 0x00, 0x00, 0x00, 0x00,
0988 0x10, 0x00, 0x40, 0xa0, 0x02, 0x80, 0x00, 0x12, 0x00, 0x00, 0x00,
0989 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x0a,
0990 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0991 0x00, 0x49, 0x13, 0x00, 0x00, 0xe0, 0x00, 0x0c,
0992 0x00, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
0993 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
0994 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
0995 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
0996 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
0997 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
0998 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
0999 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
1000 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
1001 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
1002 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
1003 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
1004 0x10, 0x80, 0x1b, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
1005 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x82,
1006 0x02, 0xe4, 0x01, 0x40, 0x01, 0xf0, 0x00, 0x40,
1007 0x01, 0xf0, 0x00,
1008 0, 0, 0
1009 };
1010 static const u8 kr651_start_qvga[] = {
1011 0x02, 0x00, 0x11, 0x3c, 0x50, 0x9e, 0x3c, 0x50, 0x00, 0x00, 0x00,
1012 0x00, 0x78, 0x3f, 0x10, 0x02, 0xf2, 0x8f, 0x78,
1013 0x40,
1014 0x10, 0x1a, 0x01, 0x03,
1015 0x10, 0x00, 0x01, 0xac,
1016 0x10, 0x85, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
1017 0x10, 0x1b, 0x02, 0x00, 0x00,
1018 0x10, 0x11, 0x08, 0x29, 0x00, 0x18, 0x01, 0x1f, 0x00, 0xd2, 0x00,
1019 0x10, 0x1d, 0x06, 0xe0, 0x00, 0x0c, 0x00, 0x52, 0x00,
1020 0x10, 0x1d, 0x02, 0x28, 0x01,
1021 0, 0, 0
1022 };
1023 static const u8 kr651_start_vga[] = {
1024 0x02, 0x00, 0x11, 0x78, 0xa0, 0x8c, 0x78, 0xa0, 0x00, 0x00, 0x00,
1025 0x00, 0xf0, 0x30, 0x03, 0x01, 0x82, 0x82, 0x98,
1026 0x80,
1027 0x10, 0x1a, 0x01, 0x03,
1028 0x10, 0x00, 0x01, 0xa0,
1029 0x10, 0x85, 0x08, 0x00, 0x00, 0x7f, 0x02, 0x00, 0x00, 0xdf, 0x01,
1030 0x10, 0x1b, 0x02, 0x00, 0x00,
1031 0x10, 0x11, 0x08, 0x51, 0x00, 0x30, 0x02, 0x3d, 0x00, 0xa4, 0x01,
1032 0x10, 0x1d, 0x06, 0xe0, 0x00, 0x0c, 0x00, 0x52, 0x00,
1033 0x10, 0x1d, 0x02, 0x68, 0x00,
1034 };
1035 static const u8 kr651_start_2[] = {
1036 0x10, 0x0e, 0x01, 0x08,
1037 0x10, 0x41, 0x11, 0x00, 0x11, 0x3c, 0x5c, 0x74, 0x88, 0x99, 0xa8,
1038 0xb7, 0xc4, 0xd0, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
1039 0xdc,
1040 0x10, 0x03, 0x01, 0x00,
1041 0x10, 0x0f, 0x02, 0x0c, 0x0c,
1042 0x10, 0x03, 0x01, 0x0c,
1043 0x10, 0x41, 0x11, 0x00, 0x11, 0x3c, 0x5c, 0x74, 0x88, 0x99, 0xa8,
1044 0xb7, 0xc4, 0xd0, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc,
1045 0xdc,
1046 0x10, 0x0b, 0x01, 0x10,
1047 0x10, 0x0d, 0x01, 0x10,
1048 0x10, 0x0c, 0x01, 0x2d,
1049 0x04, 0x06, 0x01, 0x03,
1050 0x04, 0x04, 0x01, 0x00,
1051 0, 0, 0
1052 };
1053
1054
1055 static const u8 kritter_start[] = {
1056 0x04, 0x06, 0x01, 0x06,
1057 0x00, 0x00, 0x40, 0x44, 0x96, 0x98, 0x94, 0x03, 0x18, 0x00, 0x48,
1058 0x0f, 0x1e, 0x00, 0x0c, 0x02, 0x01, 0x00, 0x19,
1059 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
1060 0x00, 0x0b, 0x00, 0x1b, 0x00, 0x0a, 0x01, 0x28,
1061 0x07, 0xb4, 0x00, 0xcc, 0x00, 0x01, 0x00, 0x01,
1062 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
1063 0x00, 0xa2, 0x00, 0xc6, 0x00, 0x60, 0x00, 0xc6,
1064 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
1065 0x00, 0x40, 0x40, 0x00, 0xae, 0x00, 0xd2, 0x00, 0xae, 0x00, 0xd2,
1066 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
1067 0x00, 0xa8, 0x00, 0xc0, 0x00, 0x66, 0x00, 0xc0,
1068 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
1069 0x00, 0x0a, 0x00, 0x54, 0x00, 0x0a, 0x00, 0x54,
1070 0x00, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
1071 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6,
1072 0x00, 0x5d, 0x00, 0x0e, 0x00, 0x7e, 0x00, 0x30,
1073 0x00, 0x80, 0x1f, 0x18, 0x43, 0x3f, 0x0d, 0x88, 0x20, 0x80, 0x3f,
1074 0x47, 0xaf, 0x00, 0x00, 0xa8, 0x08, 0x00, 0x11,
1075 0x00, 0x0b, 0x02, 0x0c, 0x00, 0x1c, 0x00, 0x94,
1076 0x00, 0x10, 0x06, 0x24, 0x00, 0x4a, 0x00,
1077 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
1078 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
1079 0x40, 0x20,
1080 0x03, 0x00, 0x03, 0x02, 0x00, 0x00,
1081 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0xff, 0x00,
1082 0x06, 0x00, 0x02, 0x09, 0x99,
1083 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1084 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1085 0x00, 0x00, 0x00, 0x00, 0x00,
1086 0x10, 0x00, 0x40, 0xa0, 0x02, 0x80, 0x00, 0x12, 0x00, 0x00, 0x00,
1087 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x0a,
1088 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1089 0x00, 0x49, 0x13, 0x00, 0x00, 0xe0, 0x00, 0x0c,
1090 0x00, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
1091 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
1092 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
1093 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
1094 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
1095 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
1096 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
1097 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
1098 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
1099 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
1100 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
1101 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
1102 0x10, 0x80, 0x1b, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
1103 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x82,
1104 0x02, 0xe4, 0x01, 0x40, 0x01, 0xf0, 0x00, 0x40,
1105 0x01, 0xf0, 0x00,
1106 0x02, 0x00, 0x11, 0x3c, 0x50, 0x8c, 0x3c, 0x50, 0x00, 0x00, 0x00,
1107 0x00, 0x78, 0x3f, 0x3f, 0x06, 0xf2, 0x8f, 0xf0,
1108 0x40,
1109 0x10, 0x1a, 0x01, 0x03,
1110 0x10, 0x00, 0x01, 0xaf,
1111 0x10, 0x85, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
1112 0x10, 0x1b, 0x02, 0x3b, 0x01,
1113 0x10, 0x11, 0x08, 0x61, 0x00, 0xe0, 0x00, 0x49, 0x00, 0xa8, 0x00,
1114 0x10, 0x1d, 0x06, 0xe0, 0x00, 0x0c, 0x00, 0x52, 0x00,
1115 0x10, 0x1d, 0x02, 0x00, 0x00,
1116 0x10, 0x0e, 0x01, 0x08,
1117 0x10, 0x41, 0x11, 0x00, 0x0d, 0x36, 0x4e, 0x60, 0x6f, 0x7b, 0x86,
1118 0x90, 0x98, 0xa1, 0xa9, 0xb1, 0xb7, 0xbe, 0xc4,
1119 0xcb,
1120 0x10, 0x03, 0x01, 0x00,
1121 0x10, 0x0f, 0x02, 0x0d, 0x0d,
1122 0x10, 0x03, 0x01, 0x02,
1123 0x10, 0x41, 0x11, 0x00, 0x0d, 0x36, 0x4e, 0x60, 0x6f, 0x7b, 0x86,
1124 0x90, 0x98, 0xa1, 0xa9, 0xb1, 0xb7, 0xbe, 0xc4,
1125 0xcb,
1126 0x10, 0x0b, 0x01, 0x17,
1127 0x10, 0x0d, 0x01, 0x10,
1128 0x10, 0x0c, 0x01, 0x1e,
1129 0x04, 0x06, 0x01, 0x03,
1130 0x04, 0x04, 0x01, 0x00,
1131 0, 0, 0
1132 };
1133
1134
1135 static const u8 mustek_start[] = {
1136 0x04, 0x06, 0x01, 0x04,
1137 0x00, 0x00, 0x40, 0x10, 0x00, 0x00, 0x92, 0x03, 0x10, 0x00, 0x4d,
1138 0x0f, 0x1f, 0x00, 0x0d, 0x02, 0x01, 0x00, 0x19,
1139 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
1140 0x00, 0x01, 0x00, 0x19, 0x00, 0xce, 0x00, 0xf4,
1141 0x05, 0x3e, 0x00, 0x86, 0x00, 0x3e, 0x00, 0x86,
1142 0x00, 0x3e, 0x00, 0x86, 0x00, 0x01, 0x00, 0x01,
1143 0x00, 0x56, 0x00, 0x9e, 0x00, 0x56, 0x00, 0x9e,
1144 0x00, 0x56, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x01,
1145 0x00, 0x40, 0x40, 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
1146 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
1147 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
1148 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
1149 0x00, 0xca, 0x03, 0x46, 0x04, 0xca, 0x03, 0x46,
1150 0x04, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
1151 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0,
1152 0x00, 0x3e, 0x00, 0xaa, 0x00, 0x88, 0x00, 0x2e,
1153 0x00, 0x80, 0x1f, 0xb4, 0x6f, 0x3f, 0x0f, 0x88, 0x20, 0x68, 0x00,
1154 0x00, 0x00, 0x00, 0x00, 0xa8, 0x08, 0x00, 0x11,
1155 0x00, 0x0c, 0x02, 0x01, 0x00, 0x16, 0x00, 0x94,
1156 0x00, 0x10, 0x06, 0xfc, 0x05, 0x0c, 0x06,
1157 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
1158 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
1159 0x40, 0x20,
1160 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
1161 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0x21, 0x00,
1162 0x06, 0x00, 0x02, 0x09, 0x99,
1163 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1164 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1165 0x00, 0x00, 0x00, 0x00, 0x00,
1166 0x10, 0x00, 0x40, 0xa1, 0x02, 0x80, 0x00, 0x13, 0x00, 0x00, 0x00,
1167 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x0a,
1168 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1169 0x00, 0x49, 0x13, 0x00, 0x00, 0xc0, 0x00, 0x14,
1170 0x02, 0x00, 0x01, 0x00, 0x00, 0x20, 0x00, 0x00,
1171 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
1172 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
1173 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
1174 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
1175 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
1176 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
1177 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
1178 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
1179 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
1180 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
1181 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
1182 0x10, 0x80, 0x1b, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
1183 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x01, 0x82,
1184 0x02, 0xe4, 0x01, 0x40, 0x01, 0xf0, 0x00, 0x40,
1185 0x01, 0xf0, 0x00,
1186 0x02, 0x00, 0x11, 0x3c, 0x50, 0x9e, 0x3c, 0x50, 0x00, 0x00, 0x00,
1187 0x00, 0x78, 0x3f, 0x10, 0x02, 0xf2, 0x8f, 0x78,
1188 0x40,
1189 0x10, 0x1a, 0x01, 0x00,
1190 0x10, 0x00, 0x01, 0xad,
1191 0x00, 0x00, 0x01, 0x08,
1192 0x10, 0x85, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
1193 0x10, 0x1b, 0x02, 0x00, 0x00,
1194 0x10, 0x11, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
1195 0x10, 0x1d, 0x08, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20, 0x00, 0x20,
1196 0x10, 0x0e, 0x01, 0x0f,
1197 0x10, 0x41, 0x11, 0x00, 0x0f, 0x29, 0x4a, 0x64, 0x7a, 0x8c, 0x9e,
1198 0xad, 0xba, 0xc7, 0xd3, 0xde, 0xe8, 0xf1, 0xf9,
1199 0xff,
1200 0x10, 0x0f, 0x02, 0x11, 0x11,
1201 0x10, 0x03, 0x01, 0x0c,
1202 0x10, 0x41, 0x11, 0x00, 0x0f, 0x29, 0x4a, 0x64, 0x7a, 0x8c, 0x9e,
1203 0xad, 0xba, 0xc7, 0xd3, 0xde, 0xe8, 0xf1, 0xf9,
1204 0xff,
1205 0x10, 0x0b, 0x01, 0x1c,
1206 0x10, 0x0d, 0x01, 0x1a,
1207 0x10, 0x0c, 0x01, 0x34,
1208 0x04, 0x05, 0x01, 0x61,
1209 0x04, 0x04, 0x01, 0x40,
1210 0x04, 0x06, 0x01, 0x03,
1211 0, 0, 0
1212 };
1213
1214
1215 static const u8 proscope_init[] = {
1216 0x04, 0x05, 0x01, 0x21,
1217 0x04, 0x04, 0x01, 0x01,
1218 0, 0, 0
1219 };
1220 static const u8 proscope_start_1[] = {
1221 0x04, 0x06, 0x01, 0x04,
1222 0x00, 0x00, 0x40, 0x10, 0x01, 0x00, 0xf9, 0x02, 0x10, 0x00, 0x04,
1223 0x0f, 0x1f, 0x00, 0x0d, 0x02, 0x01, 0x00, 0x19,
1224 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
1225 0x00, 0x08, 0x00, 0x17, 0x00, 0xce, 0x00, 0xf4,
1226 0x05, 0x3e, 0x00, 0x86, 0x00, 0x3e, 0x00, 0x86,
1227 0x00, 0xce, 0x00, 0xf8, 0x03, 0x3e, 0x00, 0x86,
1228 0x00, 0x56, 0x00, 0x9e, 0x00, 0x56, 0x00, 0x9e,
1229 0x00, 0x56, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x01,
1230 0x00, 0x40, 0x40, 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0xb6,
1231 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
1232 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
1233 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
1234 0x00, 0xf6, 0x03, 0x34, 0x04, 0xf6, 0x03, 0x34,
1235 0x04, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
1236 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xe8,
1237 0x00, 0x3e, 0x00, 0xaa, 0x00, 0x88, 0x00, 0x2e,
1238 0x00, 0x80, 0x1f, 0xb4, 0x6f, 0x1f, 0x0f, 0x08, 0x20, 0xa8, 0x00,
1239 0x00, 0x00, 0x00, 0x00, 0xa8, 0x08, 0x00, 0x11,
1240 0x00, 0x0c, 0x02, 0x01, 0x00, 0x19, 0x00, 0x94,
1241 0x00, 0x10, 0x06, 0x10, 0x00, 0x36, 0x00,
1242 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
1243 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
1244 0x40, 0x20,
1245 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
1246 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0x21, 0x00,
1247 0x06, 0x00, 0x02, 0x09, 0x99,
1248 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1249 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1250 0x00, 0x00, 0x00, 0x00, 0x00,
1251 0x10, 0x00, 0x40, 0xad, 0x02, 0x80, 0x00, 0x12, 0x00, 0x00, 0x00,
1252 0x00, 0x00, 0x00, 0x10, 0x1f, 0x10, 0x08, 0x0a,
1253 0x0a, 0x51, 0x00, 0xf1, 0x00, 0x3c, 0x00, 0xb4,
1254 0x00, 0x49, 0x13, 0x00, 0x00, 0x8c, 0x04, 0x01,
1255 0x20, 0x02, 0x00, 0x03, 0x00, 0x20, 0x00, 0x00,
1256 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
1257 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
1258 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
1259 0x10, 0x40, 0x40, 0x80, 0x00, 0x2d, 0x46, 0x58, 0x67, 0x74, 0x7f,
1260 0x88, 0x94, 0x9d, 0xa6, 0xae, 0xb5, 0xbd, 0xc4,
1261 0xcb, 0xd1, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
1262 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
1263 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
1264 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
1265 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
1266 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
1267 0x10, 0x80, 0x1b, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x3f,
1268 0x01, 0x00, 0x00, 0xef, 0x00, 0x09, 0x05, 0x82,
1269 0x02, 0xe4, 0x01, 0x40, 0x01, 0xf0, 0x00, 0x40,
1270 0x01, 0xf0, 0x00,
1271 0, 0, 0
1272 };
1273 static const u8 proscope_start_qvga[] = {
1274 0x02, 0x00, 0x11, 0x3c, 0x50, 0x9e, 0x3c, 0x50, 0x00, 0x00, 0x00,
1275 0x00, 0x78, 0x3f, 0x10, 0x02, 0xf2, 0x8f, 0x78,
1276 0x40,
1277 0x10, 0x1a, 0x01, 0x06,
1278 0x00, 0x03, 0x02, 0xf9, 0x02,
1279 0x10, 0x85, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
1280 0x10, 0x1b, 0x02, 0x00, 0x00,
1281 0x10, 0x11, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
1282 0x10, 0x1d, 0x08, 0xc0, 0x0d, 0x01, 0x20, 0x02, 0xe8, 0x03, 0x00,
1283 0x10, 0x0e, 0x01, 0x10,
1284 0, 0, 0
1285 };
1286 static const u8 proscope_start_vga[] = {
1287 0x00, 0x03, 0x02, 0xf9, 0x02,
1288 0x10, 0x85, 0x08, 0x00, 0x00, 0x7f, 0x02, 0x00, 0x00, 0xdf, 0x01,
1289 0x02, 0x00, 0x11, 0x78, 0xa0, 0x8c, 0x78, 0xa0, 0x00, 0x00, 0x00,
1290 0x00, 0xf0, 0x16, 0x00, 0x00, 0x82, 0x84, 0x00,
1291 0x80,
1292 0x10, 0x1a, 0x01, 0x06,
1293 0x10, 0x00, 0x01, 0xa1,
1294 0x10, 0x1b, 0x02, 0x00, 0x00,
1295 0x10, 0x1d, 0x08, 0xc0, 0x0d, 0x01, 0x20, 0x02, 0xe8, 0x03, 0x00,
1296 0x10, 0x11, 0x08, 0x00, 0x00, 0x7f, 0x02, 0x00, 0x00, 0xdf, 0x01,
1297 0x10, 0x0e, 0x01, 0x10,
1298 0x10, 0x41, 0x11, 0x00, 0x10, 0x51, 0x6e, 0x83, 0x93, 0xa1, 0xae,
1299 0xb9, 0xc3, 0xcc, 0xd4, 0xdd, 0xe4, 0xeb, 0xf2,
1300 0xf9,
1301 0x10, 0x03, 0x01, 0x00,
1302 0, 0, 0
1303 };
1304 static const u8 proscope_start_2[] = {
1305 0x10, 0x0f, 0x02, 0x0c, 0x0c,
1306 0x10, 0x03, 0x01, 0x0c,
1307 0x10, 0x41, 0x11, 0x00, 0x10, 0x51, 0x6e, 0x83, 0x93, 0xa1, 0xae,
1308 0xb9, 0xc3, 0xcc, 0xd4, 0xdd, 0xe4, 0xeb, 0xf2,
1309 0xf9,
1310 0x10, 0x0b, 0x01, 0x0b,
1311 0x10, 0x0d, 0x01, 0x10,
1312 0x10, 0x0c, 0x01, 0x1b,
1313 0x04, 0x06, 0x01, 0x03,
1314 0x04, 0x05, 0x01, 0x21,
1315 0x04, 0x04, 0x01, 0x00,
1316 0, 0, 0
1317 };
1318
1319
1320 static const u8 twinkle_start[] = {
1321 0x04, 0x06, 0x01, 0x44,
1322 0x04, 0x06, 0x01, 0x00,
1323 0x00, 0x00, 0x40, 0x14, 0x83, 0x00, 0xba, 0x01, 0x10, 0x00, 0x4f,
1324 0xef, 0x00, 0x00, 0x60, 0x00, 0x01, 0x00, 0x19,
1325 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
1326 0x00, 0x01, 0x00, 0x19, 0x00, 0x06, 0x00, 0xfc,
1327 0x01, 0x3e, 0x00, 0x86, 0x00, 0x3e, 0x00, 0x86,
1328 0x00, 0x3e, 0x00, 0x86, 0x00, 0x01, 0x00, 0x01,
1329 0x00, 0x56, 0x00, 0x9e, 0x00, 0x56, 0x00, 0x9e,
1330 0x00, 0x56, 0x00, 0x9e, 0x00, 0x01, 0x00, 0x01,
1331 0x00, 0x40, 0x40, 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
1332 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
1333 0x00, 0x6e, 0x00, 0xb6, 0x00, 0x6e, 0x00, 0x78,
1334 0x04, 0x6e, 0x00, 0xb6, 0x00, 0x01, 0x00, 0x01,
1335 0x00, 0xca, 0x03, 0x46, 0x04, 0xca, 0x03, 0x46,
1336 0x04, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
1337 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xf0,
1338 0x00, 0x3e, 0x00, 0xaa, 0x00, 0x88, 0x00, 0x2e,
1339 0x00, 0x80, 0x1f, 0xb8, 0x48, 0x0f, 0x04, 0x88, 0x14, 0x68, 0x00,
1340 0x00, 0x00, 0x00, 0x00, 0xa8, 0x01, 0x00, 0x03,
1341 0x00, 0x24, 0x01, 0x01, 0x00, 0x16, 0x00, 0x04,
1342 0x00, 0x4b, 0x00, 0x76, 0x00, 0x86, 0x00,
1343 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
1344 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
1345 0x40, 0x20,
1346 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
1347 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0x61, 0x00,
1348 0x05, 0x00, 0x06, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
1349 0x06, 0x00, 0x1b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1350 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1351 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1352 0x00, 0x00, 0x00,
1353 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1354 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1355 0x00, 0x00, 0x00, 0x00, 0x00,
1356 0x10, 0x00, 0x40, 0x80, 0x02, 0x20, 0x00, 0x11, 0x00, 0x00, 0x00,
1357 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x08,
1358 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1359 0x00, 0x49, 0x13, 0x00, 0x00, 0x00, 0x00, 0x00,
1360 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
1361 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
1362 0x03, 0x00, 0x00, 0x10, 0x00, 0x20, 0x10, 0x06,
1363 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x00, 0x80,
1364 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
1365 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
1366 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
1367 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
1368 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
1369 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
1370 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
1371 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
1372 0x10, 0x80, 0x1d, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
1373 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x62,
1374 0x01, 0x24, 0x01, 0x62, 0x01, 0x24, 0x01, 0x20,
1375 0x01, 0x60, 0x01, 0x00, 0x00,
1376
1377 0x10, 0x85, 0x08, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x1f, 0x01,
1378 0x04, 0x04, 0x01, 0x10,
1379 0x04, 0x04, 0x01, 0x00,
1380 0x04, 0x05, 0x01, 0x61,
1381 0x04, 0x04, 0x01, 0x01,
1382 I2C0, 0x40, 0x0c, 0x02, 0x0c, 0x12, 0x07, 0x00, 0x00, 0x00, 0x00,
1383 0x00, 0x00, 0x00, 0x0a,
1384 I2C0, 0x40, 0x02, 0x11, 0x06,
1385 I2C0, 0x40, 0x02, 0x14, 0x00,
1386 I2C0, 0x40, 0x02, 0x13, 0x01,
1387 I2C0, 0x40, 0x02, 0x07, 0x01,
1388 0x02, 0x00, 0x11, 0x48, 0x58, 0x9e, 0x48, 0x58, 0x00, 0x00, 0x00,
1389 0x00, 0x84, 0x36, 0x05, 0x01, 0xf2, 0x86, 0x65,
1390 0x40,
1391 I2C0, 0x40, 0x02, 0x02, 0x0c,
1392 I2C0, 0x40, 0x02, 0x13, 0x01,
1393 0x10, 0x00, 0x01, 0x01,
1394 0x10, 0x8f, 0x0c, 0x62, 0x01, 0x24, 0x01, 0x62, 0x01, 0x24, 0x01,
1395 0x20, 0x01, 0x60, 0x01,
1396 I2C0, 0x40, 0x02, 0x05, 0x0f,
1397 I2C0, 0x40, 0x02, 0x13, 0x01,
1398 I2C0, 0x40, 0x08, 0x08, 0x04, 0x0b, 0x01, 0x01, 0x02, 0x00, 0x17,
1399 I2C0, 0x40, 0x03, 0x12, 0x00, 0x01,
1400 0x10, 0x11, 0x08, 0x00, 0x00, 0x5f, 0x01, 0x00, 0x00, 0x1f, 0x01,
1401 I2C0, 0x40, 0x02, 0x12, 0x00,
1402 I2C0, 0x40, 0x02, 0x0e, 0x00,
1403 I2C0, 0x40, 0x02, 0x11, 0x06,
1404 0x10, 0x41, 0x11, 0x00, 0x17, 0x3f, 0x69, 0x7b, 0x8c, 0x9a, 0xa7,
1405 0xb3, 0xbf, 0xc9, 0xd3, 0xdd, 0xe6, 0xef, 0xf7,
1406 0xf9,
1407 0x10, 0x03, 0x01, 0x00,
1408 0x10, 0x0f, 0x02, 0x0c, 0x0c,
1409 0x10, 0x03, 0x01, 0x06,
1410 0x10, 0x41, 0x11, 0x00, 0x17, 0x3f, 0x69, 0x7b, 0x8c, 0x9a, 0xa7,
1411 0xb3, 0xbf, 0xc9, 0xd3, 0xdd, 0xe6, 0xef, 0xf7,
1412 0xf9,
1413 0x10, 0x0b, 0x01, 0x19,
1414 0x10, 0x0d, 0x01, 0x10,
1415 0x10, 0x0c, 0x01, 0x0d,
1416 0x04, 0x06, 0x01, 0x03,
1417 0x04, 0x05, 0x01, 0x61,
1418 0x04, 0x04, 0x01, 0x41,
1419 0, 0, 0
1420 };
1421
1422
1423 static const u8 dvcv6_start[] = {
1424 0x04, 0x06, 0x01, 0x06,
1425 0x00, 0x00, 0x40, 0x54, 0x96, 0x98, 0xf9, 0x02, 0x18, 0x00, 0x4c,
1426 0x0f, 0x1f, 0x00, 0x0d, 0x02, 0x01, 0x00, 0x19,
1427 0x00, 0x01, 0x00, 0x19, 0x00, 0x01, 0x00, 0x19,
1428 0x00, 0x0b, 0x00, 0x1b, 0x00, 0xc8, 0x00, 0xf4,
1429 0x05, 0xb4, 0x00, 0xcc, 0x00, 0x01, 0x00, 0x01,
1430 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
1431 0x00, 0xa2, 0x00, 0xc6, 0x00, 0x60, 0x00, 0xc6,
1432 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
1433 0x00, 0x40, 0x40, 0x00, 0xae, 0x00, 0xd2, 0x00, 0xae, 0x00, 0xd2,
1434 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
1435 0x00, 0xa8, 0x00, 0xc0, 0x00, 0x66, 0x00, 0xc0,
1436 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
1437 0x00, 0x0a, 0x00, 0x54, 0x00, 0x0a, 0x00, 0x54,
1438 0x00, 0x10, 0x00, 0x36, 0x00, 0xd2, 0x00, 0xee,
1439 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6,
1440 0x00, 0x5d, 0x00, 0xc7, 0x00, 0x7e, 0x00, 0x30,
1441 0x00, 0x80, 0x1f, 0x98, 0x43, 0x3f, 0x0d, 0x88, 0x20, 0x80, 0x3f,
1442 0x47, 0xaf, 0x00, 0x00, 0xa8, 0x08, 0x00, 0x11,
1443 0x00, 0x0c, 0x02, 0x0c, 0x00, 0x1c, 0x00, 0x94,
1444 0x00, 0x10, 0x06, 0x24, 0x00, 0x4a, 0x00,
1445 0x02, 0x00, 0x12, 0x78, 0xa0, 0x9e, 0x78, 0xa0, 0x00, 0x00, 0x00,
1446 0x00, 0xf0, 0x18, 0x0b, 0x06, 0x62, 0x82, 0xa0,
1447 0x40, 0x20,
1448 0x03, 0x00, 0x03, 0x03, 0x00, 0x00,
1449 0x04, 0x00, 0x07, 0x01, 0x10, 0x00, 0x00, 0x00, 0xff, 0x00,
1450 0x06, 0x00, 0x02, 0x09, 0x99,
1451 0x08, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1452 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1453 0x00, 0x00, 0x00, 0x00, 0x00,
1454 0x10, 0x00, 0x40, 0xa0, 0x02, 0x80, 0x00, 0x12, 0x00, 0x00, 0x00,
1455 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x08, 0x0a,
1456 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1457 0x00, 0x49, 0x13, 0x00, 0x00, 0xe0, 0x00, 0x0c,
1458 0x00, 0x52, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00,
1459 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x10, 0x08,
1460 0x03, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x06,
1461 0xf7, 0xee, 0x1c, 0x1c, 0xe9, 0xfc, 0x10, 0x80,
1462 0x10, 0x40, 0x40, 0x80, 0x00, 0x05, 0x35, 0x5e, 0x78, 0x8b, 0x99,
1463 0xa4, 0xae, 0xb5, 0xbc, 0xc1, 0xc6, 0xc9, 0xcc,
1464 0xcf, 0xd0, 0x00, 0x11, 0x22, 0x32, 0x43, 0x54,
1465 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3, 0xd2,
1466 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32, 0x43,
1467 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3, 0xc3,
1468 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x11, 0x22, 0x32,
1469 0x43, 0x54, 0x64, 0x74, 0x84, 0x94, 0xa4, 0xb3,
1470 0x10, 0x80, 0x1b, 0xc3, 0xd2, 0xe2, 0xf1, 0xff, 0x00, 0x00, 0x00,
1471 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x82,
1472 0x02, 0xe4, 0x01, 0x40, 0x01, 0xf0, 0x00, 0x40,
1473 0x01, 0xf0, 0x00,
1474 0x00, 0x03, 0x02, 0x94, 0x03,
1475 0x00, 0x1d, 0x04, 0x0a, 0x01, 0x28, 0x07,
1476 0x00, 0x7b, 0x02, 0xe0, 0x00,
1477 0x10, 0x8d, 0x01, 0x00,
1478 0x00, 0x09, 0x04, 0x1e, 0x00, 0x0c, 0x02,
1479 0x00, 0x91, 0x02, 0x0b, 0x02,
1480 0x10, 0x00, 0x01, 0xaf,
1481 0x02, 0x00, 0x11, 0x3c, 0x50, 0x8f, 0x3c, 0x50, 0x00, 0x00, 0x00,
1482 0x00, 0x78, 0x3f, 0x3f, 0x06, 0xf2, 0x8f, 0xf0,
1483 0x40,
1484 0x10, 0x1a, 0x01, 0x02,
1485 0x10, 0x00, 0x01, 0xaf,
1486 0x10, 0x85, 0x08, 0x00, 0x00, 0x3f, 0x01, 0x00, 0x00, 0xef, 0x00,
1487 0x10, 0x1b, 0x02, 0x07, 0x01,
1488 0x10, 0x11, 0x08, 0x61, 0x00, 0xe0, 0x00, 0x49, 0x00, 0xa8, 0x00,
1489 0x10, 0x1f, 0x06, 0x01, 0x20, 0x02, 0xe8, 0x03, 0x00,
1490 0x10, 0x1d, 0x02, 0x40, 0x06,
1491 0x10, 0x0e, 0x01, 0x08,
1492 0x10, 0x41, 0x11, 0x00, 0x0f, 0x54, 0x6f, 0x82, 0x91, 0x9f, 0xaa,
1493 0xb4, 0xbd, 0xc5, 0xcd, 0xd5, 0xdb, 0xdc, 0xdc,
1494 0xdc,
1495 0x10, 0x03, 0x01, 0x00,
1496 0x10, 0x0f, 0x02, 0x12, 0x12,
1497 0x10, 0x03, 0x01, 0x11,
1498 0x10, 0x41, 0x11, 0x00, 0x0f, 0x54, 0x6f, 0x82, 0x91, 0x9f, 0xaa,
1499 0xb4, 0xbd, 0xc5, 0xcd, 0xd5, 0xdb, 0xdc, 0xdc,
1500 0xdc,
1501 0x10, 0x0b, 0x01, 0x16,
1502 0x10, 0x0d, 0x01, 0x10,
1503 0x10, 0x0c, 0x01, 0x1a,
1504 0x04, 0x06, 0x01, 0x03,
1505 0x04, 0x04, 0x01, 0x00,
1506 };
1507
1508 static const u8 *webcam_start[] = {
1509 [Generic800] = nw800_start,
1510 [SpaceCam] = spacecam_start,
1511 [SpaceCam2] = spacecam2_start,
1512 [Cvideopro] = cvideopro_start,
1513 [Dlink350c] = dlink_start,
1514 [DS3303u] = ds3303_start,
1515 [Kr651us] = kr651_start_1,
1516 [Kritter] = kritter_start,
1517 [Mustek300] = mustek_start,
1518 [Proscope] = proscope_start_1,
1519 [Twinkle] = twinkle_start,
1520 [DvcV6] = dvcv6_start,
1521 [P35u] = nw801_start_1,
1522 [Generic802] = nw802_start,
1523 };
1524
1525
1526 static void reg_w(struct gspca_dev *gspca_dev,
1527 u16 index,
1528 const u8 *data,
1529 int len)
1530 {
1531 struct usb_device *dev = gspca_dev->dev;
1532 int ret;
1533
1534 if (gspca_dev->usb_err < 0)
1535 return;
1536 if (len == 1)
1537 gspca_dbg(gspca_dev, D_USBO, "SET 00 0000 %04x %02x\n",
1538 index, *data);
1539 else
1540 gspca_dbg(gspca_dev, D_USBO, "SET 00 0000 %04x %02x %02x ...\n",
1541 index, *data, data[1]);
1542 memcpy(gspca_dev->usb_buf, data, len);
1543 ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0),
1544 0x00,
1545 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
1546 0x00,
1547 index,
1548 gspca_dev->usb_buf,
1549 len,
1550 500);
1551 if (ret < 0) {
1552 pr_err("reg_w err %d\n", ret);
1553 gspca_dev->usb_err = ret;
1554 }
1555 }
1556
1557
1558 static void reg_r(struct gspca_dev *gspca_dev,
1559 u16 index,
1560 int len)
1561 {
1562 struct usb_device *dev = gspca_dev->dev;
1563 int ret;
1564
1565 if (gspca_dev->usb_err < 0)
1566 return;
1567 ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0),
1568 0x00,
1569 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
1570 0x00, index,
1571 gspca_dev->usb_buf, len, 500);
1572 if (ret < 0) {
1573 pr_err("reg_r err %d\n", ret);
1574 gspca_dev->usb_err = ret;
1575
1576
1577
1578
1579 memset(gspca_dev->usb_buf, 0, USB_BUF_SZ);
1580 return;
1581 }
1582 if (len == 1)
1583 gspca_dbg(gspca_dev, D_USBI, "GET 00 0000 %04x %02x\n",
1584 index, gspca_dev->usb_buf[0]);
1585 else
1586 gspca_dbg(gspca_dev, D_USBI, "GET 00 0000 %04x %02x %02x ..\n",
1587 index, gspca_dev->usb_buf[0],
1588 gspca_dev->usb_buf[1]);
1589 }
1590
1591 static void i2c_w(struct gspca_dev *gspca_dev,
1592 u8 i2c_addr,
1593 const u8 *data,
1594 int len)
1595 {
1596 u8 val[2];
1597 int i;
1598
1599 reg_w(gspca_dev, 0x0600, data + 1, len - 1);
1600 reg_w(gspca_dev, 0x0600, data, len);
1601 val[0] = len;
1602 val[1] = i2c_addr;
1603 reg_w(gspca_dev, 0x0502, val, 2);
1604 val[0] = 0x01;
1605 reg_w(gspca_dev, 0x0501, val, 1);
1606 for (i = 5; --i >= 0; ) {
1607 msleep(4);
1608 reg_r(gspca_dev, 0x0505, 1);
1609 if (gspca_dev->usb_err < 0)
1610 return;
1611 if (gspca_dev->usb_buf[0] == 0)
1612 return;
1613 }
1614 gspca_dev->usb_err = -ETIME;
1615 }
1616
1617 static void reg_w_buf(struct gspca_dev *gspca_dev,
1618 const u8 *cmd)
1619 {
1620 u16 reg;
1621 int len;
1622
1623 for (;;) {
1624 reg = *cmd++ << 8;
1625 reg += *cmd++;
1626 len = *cmd++;
1627 if (len == 0)
1628 break;
1629 if (cmd[-3] != I2C0)
1630 reg_w(gspca_dev, reg, cmd, len);
1631 else
1632 i2c_w(gspca_dev, reg, cmd, len);
1633 cmd += len;
1634 }
1635 }
1636
1637 static int swap_bits(int v)
1638 {
1639 int r, i;
1640
1641 r = 0;
1642 for (i = 0; i < 8; i++) {
1643 r <<= 1;
1644 if (v & 1)
1645 r++;
1646 v >>= 1;
1647 }
1648 return r;
1649 }
1650
1651 static void setgain(struct gspca_dev *gspca_dev, u8 val)
1652 {
1653 struct sd *sd = (struct sd *) gspca_dev;
1654 u8 v[2];
1655
1656 switch (sd->webcam) {
1657 case P35u:
1658 reg_w(gspca_dev, 0x1026, &val, 1);
1659 break;
1660 case Kr651us:
1661
1662 val = swap_bits(val);
1663 v[0] = val << 3;
1664 v[1] = val >> 5;
1665 reg_w(gspca_dev, 0x101d, v, 2);
1666 break;
1667 }
1668 }
1669
1670 static void setexposure(struct gspca_dev *gspca_dev, s32 val)
1671 {
1672 struct sd *sd = (struct sd *) gspca_dev;
1673 u8 v[2];
1674
1675 switch (sd->webcam) {
1676 case P35u:
1677 v[0] = ((9 - val) << 3) | 0x01;
1678 reg_w(gspca_dev, 0x1019, v, 1);
1679 break;
1680 case Cvideopro:
1681 case DvcV6:
1682 case Kritter:
1683 case Kr651us:
1684 v[0] = val;
1685 v[1] = val >> 8;
1686 reg_w(gspca_dev, 0x101b, v, 2);
1687 break;
1688 }
1689 }
1690
1691 static void setautogain(struct gspca_dev *gspca_dev, s32 val)
1692 {
1693 struct sd *sd = (struct sd *) gspca_dev;
1694 int w, h;
1695
1696 if (!val) {
1697 sd->ag_cnt = -1;
1698 return;
1699 }
1700 sd->ag_cnt = AG_CNT_START;
1701
1702 reg_r(gspca_dev, 0x1004, 1);
1703 if (gspca_dev->usb_buf[0] & 0x04) {
1704 sd->ae_res = gspca_dev->pixfmt.width * gspca_dev->pixfmt.height;
1705 } else {
1706 reg_r(gspca_dev, 0x1011, 8);
1707 w = (gspca_dev->usb_buf[1] << 8) + gspca_dev->usb_buf[0]
1708 - (gspca_dev->usb_buf[3] << 8) - gspca_dev->usb_buf[2];
1709 h = (gspca_dev->usb_buf[5] << 8) + gspca_dev->usb_buf[4]
1710 - (gspca_dev->usb_buf[7] << 8) - gspca_dev->usb_buf[6];
1711 sd->ae_res = h * w;
1712 if (sd->ae_res == 0)
1713 sd->ae_res = gspca_dev->pixfmt.width *
1714 gspca_dev->pixfmt.height;
1715 }
1716 }
1717
1718 static int nw802_test_reg(struct gspca_dev *gspca_dev,
1719 u16 index,
1720 u8 value)
1721 {
1722
1723 reg_w(gspca_dev, index, &value, 1);
1724
1725
1726 reg_r(gspca_dev, index, 1);
1727
1728 return gspca_dev->usb_buf[0] == value;
1729 }
1730
1731
1732 static int sd_config(struct gspca_dev *gspca_dev,
1733 const struct usb_device_id *id)
1734 {
1735 struct sd *sd = (struct sd *) gspca_dev;
1736
1737 if ((unsigned) webcam >= NWEBCAMS)
1738 webcam = 0;
1739 sd->webcam = webcam;
1740 gspca_dev->cam.needs_full_bandwidth = 1;
1741 sd->ag_cnt = -1;
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752 if (!nw802_test_reg(gspca_dev, 0x0500, 0x55)) {
1753 sd->bridge = BRIDGE_NW802;
1754 if (sd->webcam == Generic800)
1755 sd->webcam = Generic802;
1756 } else if (!nw802_test_reg(gspca_dev, 0x109b, 0xaa)) {
1757 sd->bridge = BRIDGE_NW801;
1758 if (sd->webcam == Generic800)
1759 sd->webcam = P35u;
1760 } else if (id->idVendor == 0x06a5 && id->idProduct == 0xd800) {
1761 reg_r(gspca_dev, 0x0403, 1);
1762 gspca_dbg(gspca_dev, D_PROBE, "et31x110 sensor type %02x\n",
1763 gspca_dev->usb_buf[0]);
1764 switch (gspca_dev->usb_buf[0] >> 1) {
1765 case 0x00:
1766 if (sd->webcam == Generic800)
1767 sd->webcam = SpaceCam;
1768 break;
1769 case 0x01:
1770 if (sd->webcam == Generic800)
1771 sd->webcam = Twinkle;
1772 break;
1773 case 0x0a:
1774 if (sd->webcam == Generic800)
1775 sd->webcam = SpaceCam2;
1776 break;
1777 }
1778 }
1779 if (webcam_chip[sd->webcam] != sd->bridge) {
1780 pr_err("Bad webcam type %d for NW80%d\n",
1781 sd->webcam, sd->bridge);
1782 gspca_dev->usb_err = -ENODEV;
1783 return gspca_dev->usb_err;
1784 }
1785 gspca_dbg(gspca_dev, D_PROBE, "Bridge nw80%d - type: %d\n",
1786 sd->bridge, sd->webcam);
1787
1788 if (sd->bridge == BRIDGE_NW800) {
1789 switch (sd->webcam) {
1790 case DS3303u:
1791 gspca_dev->cam.cam_mode = cif_mode;
1792 break;
1793 default:
1794 gspca_dev->cam.cam_mode = &cif_mode[1];
1795 break;
1796 }
1797 gspca_dev->cam.nmodes = 1;
1798 } else {
1799 gspca_dev->cam.cam_mode = vga_mode;
1800 switch (sd->webcam) {
1801 case Kr651us:
1802 case Proscope:
1803 case P35u:
1804 gspca_dev->cam.nmodes = ARRAY_SIZE(vga_mode);
1805 break;
1806 default:
1807 gspca_dev->cam.nmodes = 1;
1808 break;
1809 }
1810 }
1811
1812 return gspca_dev->usb_err;
1813 }
1814
1815
1816 static int sd_init(struct gspca_dev *gspca_dev)
1817 {
1818 struct sd *sd = (struct sd *) gspca_dev;
1819
1820 switch (sd->bridge) {
1821 case BRIDGE_NW800:
1822 switch (sd->webcam) {
1823 case SpaceCam:
1824 reg_w_buf(gspca_dev, spacecam_init);
1825 break;
1826 default:
1827 reg_w_buf(gspca_dev, nw800_init);
1828 break;
1829 }
1830 break;
1831 default:
1832 switch (sd->webcam) {
1833 case Mustek300:
1834 case P35u:
1835 case Proscope:
1836 reg_w_buf(gspca_dev, proscope_init);
1837 break;
1838 }
1839 break;
1840 }
1841 return gspca_dev->usb_err;
1842 }
1843
1844
1845 static int sd_start(struct gspca_dev *gspca_dev)
1846 {
1847 struct sd *sd = (struct sd *) gspca_dev;
1848 const u8 *cmd;
1849
1850 cmd = webcam_start[sd->webcam];
1851 reg_w_buf(gspca_dev, cmd);
1852 switch (sd->webcam) {
1853 case P35u:
1854 if (gspca_dev->pixfmt.width == 320)
1855 reg_w_buf(gspca_dev, nw801_start_qvga);
1856 else
1857 reg_w_buf(gspca_dev, nw801_start_vga);
1858 reg_w_buf(gspca_dev, nw801_start_2);
1859 break;
1860 case Kr651us:
1861 if (gspca_dev->pixfmt.width == 320)
1862 reg_w_buf(gspca_dev, kr651_start_qvga);
1863 else
1864 reg_w_buf(gspca_dev, kr651_start_vga);
1865 reg_w_buf(gspca_dev, kr651_start_2);
1866 break;
1867 case Proscope:
1868 if (gspca_dev->pixfmt.width == 320)
1869 reg_w_buf(gspca_dev, proscope_start_qvga);
1870 else
1871 reg_w_buf(gspca_dev, proscope_start_vga);
1872 reg_w_buf(gspca_dev, proscope_start_2);
1873 break;
1874 }
1875
1876 sd->exp_too_high_cnt = 0;
1877 sd->exp_too_low_cnt = 0;
1878 return gspca_dev->usb_err;
1879 }
1880
1881 static void sd_stopN(struct gspca_dev *gspca_dev)
1882 {
1883 struct sd *sd = (struct sd *) gspca_dev;
1884 u8 value;
1885
1886
1887 if (sd->bridge != BRIDGE_NW801) {
1888 value = 0x02;
1889 reg_w(gspca_dev, 0x0406, &value, 1);
1890 }
1891
1892
1893 switch (sd->webcam) {
1894 case Cvideopro:
1895 case Kr651us:
1896 case DvcV6:
1897 case Kritter:
1898 value = 0xff;
1899 break;
1900 case Dlink350c:
1901 value = 0x21;
1902 break;
1903 case SpaceCam:
1904 case SpaceCam2:
1905 case Proscope:
1906 case Twinkle:
1907 value = 0x01;
1908 break;
1909 default:
1910 return;
1911 }
1912 reg_w(gspca_dev, 0x0404, &value, 1);
1913 }
1914
1915 static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1916 u8 *data,
1917 int len)
1918 {
1919
1920
1921
1922
1923
1924
1925
1926 if (data[0] == 0x00 && data[1] == 0x00
1927 && data[6] == 0xff && data[7] == 0xff) {
1928 gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0);
1929 gspca_frame_add(gspca_dev, FIRST_PACKET, data + 8, len - 8);
1930 } else {
1931 gspca_frame_add(gspca_dev, INTER_PACKET, data, len);
1932 }
1933 }
1934
1935 static void do_autogain(struct gspca_dev *gspca_dev)
1936 {
1937 struct sd *sd = (struct sd *) gspca_dev;
1938 int luma;
1939
1940 if (sd->ag_cnt < 0)
1941 return;
1942 if (--sd->ag_cnt >= 0)
1943 return;
1944 sd->ag_cnt = AG_CNT_START;
1945
1946
1947 reg_r(gspca_dev, sd->bridge == BRIDGE_NW801 ? 0x080d : 0x080c, 4);
1948 luma = (gspca_dev->usb_buf[3] << 24) + (gspca_dev->usb_buf[2] << 16)
1949 + (gspca_dev->usb_buf[1] << 8) + gspca_dev->usb_buf[0];
1950 luma /= sd->ae_res;
1951
1952 switch (sd->webcam) {
1953 case P35u:
1954 gspca_coarse_grained_expo_autogain(gspca_dev, luma, 100, 5);
1955 break;
1956 default:
1957 gspca_expo_autogain(gspca_dev, luma, 100, 5, 230, 0);
1958 break;
1959 }
1960 }
1961
1962
1963 static int sd_s_ctrl(struct v4l2_ctrl *ctrl)
1964 {
1965 struct gspca_dev *gspca_dev =
1966 container_of(ctrl->handler, struct gspca_dev, ctrl_handler);
1967
1968 gspca_dev->usb_err = 0;
1969
1970 if (!gspca_dev->streaming)
1971 return 0;
1972
1973 switch (ctrl->id) {
1974
1975 case V4L2_CID_AUTOGAIN:
1976 if (ctrl->is_new)
1977 setautogain(gspca_dev, ctrl->val);
1978 if (!ctrl->val) {
1979 if (gspca_dev->gain->is_new)
1980 setgain(gspca_dev, gspca_dev->gain->val);
1981 if (gspca_dev->exposure->is_new)
1982 setexposure(gspca_dev,
1983 gspca_dev->exposure->val);
1984 }
1985 break;
1986
1987
1988 case V4L2_CID_EXPOSURE:
1989 setexposure(gspca_dev, gspca_dev->exposure->val);
1990 break;
1991 }
1992 return gspca_dev->usb_err;
1993 }
1994
1995 static const struct v4l2_ctrl_ops sd_ctrl_ops = {
1996 .s_ctrl = sd_s_ctrl,
1997 };
1998
1999 static int sd_init_controls(struct gspca_dev *gspca_dev)
2000 {
2001 struct sd *sd = (struct sd *)gspca_dev;
2002 struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler;
2003
2004 gspca_dev->vdev.ctrl_handler = hdl;
2005 v4l2_ctrl_handler_init(hdl, 3);
2006 switch (sd->webcam) {
2007 case P35u:
2008 gspca_dev->autogain = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
2009 V4L2_CID_AUTOGAIN, 0, 1, 1, 1);
2010
2011
2012 gspca_dev->gain = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
2013 V4L2_CID_GAIN, 0, 127, 1, 127 / 5 * 2);
2014 gspca_dev->exposure = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
2015 V4L2_CID_EXPOSURE, 0, 9, 1, 9);
2016 break;
2017 case Kr651us:
2018 gspca_dev->autogain = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
2019 V4L2_CID_AUTOGAIN, 0, 1, 1, 1);
2020 gspca_dev->gain = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
2021 V4L2_CID_GAIN, 0, 253, 1, 128);
2022 fallthrough;
2023 case Cvideopro:
2024 case DvcV6:
2025 case Kritter:
2026 gspca_dev->exposure = v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
2027 V4L2_CID_EXPOSURE, 0, 315, 1, 150);
2028 break;
2029 default:
2030 break;
2031 }
2032
2033 if (hdl->error) {
2034 pr_err("Could not initialize controls\n");
2035 return hdl->error;
2036 }
2037 if (gspca_dev->autogain)
2038 v4l2_ctrl_auto_cluster(3, &gspca_dev->autogain, 0, false);
2039 return 0;
2040 }
2041
2042
2043 static const struct sd_desc sd_desc = {
2044 .name = MODULE_NAME,
2045 .config = sd_config,
2046 .init = sd_init,
2047 .init_controls = sd_init_controls,
2048 .start = sd_start,
2049 .stopN = sd_stopN,
2050 .pkt_scan = sd_pkt_scan,
2051 .dq_callback = do_autogain,
2052 };
2053
2054
2055 static const struct usb_device_id device_table[] = {
2056 {USB_DEVICE(0x046d, 0xd001)},
2057 {USB_DEVICE(0x0502, 0xd001)},
2058 {USB_DEVICE(0x052b, 0xd001)},
2059 {USB_DEVICE(0x055f, 0xd001)},
2060 {USB_DEVICE(0x06a5, 0x0000)},
2061 {USB_DEVICE(0x06a5, 0xd001)},
2062 {USB_DEVICE(0x06a5, 0xd800)},
2063 {USB_DEVICE(0x06be, 0xd001)},
2064 {USB_DEVICE(0x0728, 0xd001)},
2065 {}
2066 };
2067 MODULE_DEVICE_TABLE(usb, device_table);
2068
2069
2070 static int sd_probe(struct usb_interface *intf,
2071 const struct usb_device_id *id)
2072 {
2073 return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd),
2074 THIS_MODULE);
2075 }
2076
2077 static struct usb_driver sd_driver = {
2078 .name = MODULE_NAME,
2079 .id_table = device_table,
2080 .probe = sd_probe,
2081 .disconnect = gspca_disconnect,
2082 #ifdef CONFIG_PM
2083 .suspend = gspca_suspend,
2084 .resume = gspca_resume,
2085 .reset_resume = gspca_resume,
2086 #endif
2087 };
2088
2089 module_usb_driver(sd_driver);
2090
2091 module_param(webcam, int, 0644);
2092 MODULE_PARM_DESC(webcam,
2093 "Webcam type\n"
2094 "0: generic\n"
2095 "1: Trust 120 SpaceCam\n"
2096 "2: other Trust 120 SpaceCam\n"
2097 "3: Conceptronic Video Pro\n"
2098 "4: D-link dru-350c\n"
2099 "5: Plustek Opticam 500U\n"
2100 "6: Panasonic GP-KR651US\n"
2101 "7: iRez Kritter\n"
2102 "8: Mustek Wcam 300 mini\n"
2103 "9: Scalar USB Microscope M2 (Proscope)\n"
2104 "10: Divio Chicony TwinkleCam\n"
2105 "11: DVC-V6\n");