^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * SPCA501 chip based cameras initialization data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * V4L2 by Jean-Francois Moine <http://moinejf.free.fr>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #define MODULE_NAME "spca501"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include "gspca.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) MODULE_AUTHOR("Michel Xhaard <mxhaard@users.sourceforge.net>");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) MODULE_DESCRIPTION("GSPCA/SPCA501 USB Camera Driver");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) MODULE_LICENSE("GPL");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) /* specific webcam descriptor */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) struct sd {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) struct gspca_dev gspca_dev; /* !! must be the first item */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) unsigned short contrast;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) __u8 brightness;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) __u8 colors;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) __u8 blue_balance;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) __u8 red_balance;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) char subtype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #define Arowana300KCMOSCamera 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) #define IntelCreateAndShare 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define KodakDVC325 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) #define MystFromOriUnknownCamera 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #define SmileIntlCamera 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) #define ThreeComHomeConnectLite 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define ViewQuestM318B 6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) static const struct v4l2_pix_format vga_mode[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) {160, 120, V4L2_PIX_FMT_SPCA501, V4L2_FIELD_NONE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) .bytesperline = 160,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) .sizeimage = 160 * 120 * 3 / 2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) .colorspace = V4L2_COLORSPACE_SRGB,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) .priv = 2},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) {320, 240, V4L2_PIX_FMT_SPCA501, V4L2_FIELD_NONE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) .bytesperline = 320,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) .sizeimage = 320 * 240 * 3 / 2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) .colorspace = V4L2_COLORSPACE_SRGB,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) .priv = 1},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) {640, 480, V4L2_PIX_FMT_SPCA501, V4L2_FIELD_NONE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) .bytesperline = 640,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) .sizeimage = 640 * 480 * 3 / 2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) .colorspace = V4L2_COLORSPACE_SRGB,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) .priv = 0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) #define SPCA50X_REG_USB 0x2 /* spca505 501 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) * Data to initialize a SPCA501. From a capture file provided by Bill Roehl
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) * With SPCA501 chip description
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) #define CCDSP_SET /* set CCDSP parameters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) #define TG_SET /* set time generator set */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) #undef DSPWIN_SET /* set DSP windows parameters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) #undef ALTER_GAMA /* Set alternate set to YUV transform coeffs. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) #define SPCA501_SNAPBIT 0x80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) #define SPCA501_SNAPCTRL 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) /* Frame packet header offsets for the spca501 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) #define SPCA501_OFFSET_GPIO 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) #define SPCA501_OFFSET_TYPE 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) #define SPCA501_OFFSET_TURN3A 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) #define SPCA501_OFFSET_FRAMSEQ 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) #define SPCA501_OFFSET_COMPRESS 5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) #define SPCA501_OFFSET_QUANT 6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) #define SPCA501_OFFSET_QUANT2 7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) #define SPCA501_OFFSET_DATA 8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) #define SPCA501_PROP_COMP_ENABLE(d) ((d) & 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) #define SPCA501_PROP_SNAP(d) ((d) & 0x40)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) #define SPCA501_PROP_SNAP_CTRL(d) ((d) & 0x10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) #define SPCA501_PROP_COMP_THRESH(d) (((d) & 0x0e) >> 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) #define SPCA501_PROP_COMP_QUANT(d) (((d) & 0x70) >> 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) /* SPCA501 CCDSP control */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) #define SPCA501_REG_CCDSP 0x01
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) /* SPCA501 control/status registers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) #define SPCA501_REG_CTLRL 0x02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) /* registers for color correction and YUV transformation */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) #define SPCA501_A11 0x08
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) #define SPCA501_A12 0x09
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) #define SPCA501_A13 0x0A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) #define SPCA501_A21 0x0B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) #define SPCA501_A22 0x0C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) #define SPCA501_A23 0x0D
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) #define SPCA501_A31 0x0E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) #define SPCA501_A32 0x0F
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) #define SPCA501_A33 0x10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) /* Data for video camera initialization before capturing */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) static const __u16 spca501_open_data[][3] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) /* bmRequest,value,index */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) {0x2, 0x50, 0x00}, /* C/S enable soft reset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) {0x2, 0x40, 0x00}, /* C/S disable soft reset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) {0x2, 0x02, 0x05}, /* C/S general purpose I/O data */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) {0x2, 0x03, 0x05}, /* C/S general purpose I/O data */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) #ifdef CCDSP_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) {0x1, 0x38, 0x01}, /* CCDSP options */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) {0x1, 0x05, 0x02}, /* CCDSP Optical black level for user settings */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) {0x1, 0xC0, 0x03}, /* CCDSP Optical black settings */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) {0x1, 0x67, 0x07},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) {0x1, 0x63, 0x3f}, /* CCDSP CCD gamma enable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) {0x1, 0x03, 0x56}, /* Add gamma correction */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) {0x1, 0xFF, 0x15}, /* CCDSP High luminance for white balance */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) {0x1, 0x01, 0x16}, /* CCDSP Low luminance for white balance */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) /* Color correction and RGB-to-YUV transformation coefficients changing */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) #ifdef ALTER_GAMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) {0x0, 0x00, 0x08}, /* A11 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) {0x0, 0x00, 0x09}, /* A12 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) {0x0, 0x90, 0x0A}, /* A13 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) {0x0, 0x12, 0x0B}, /* A21 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) {0x0, 0x00, 0x0C}, /* A22 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) {0x0, 0x00, 0x0D}, /* A23 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) {0x0, 0x00, 0x0E}, /* A31 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) {0x0, 0x02, 0x0F}, /* A32 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) {0x0, 0x00, 0x10}, /* A33 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) {0x1, 0x2a, 0x08}, /* A11 0x31 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) {0x1, 0xf8, 0x09}, /* A12 f8 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) {0x1, 0xf8, 0x0A}, /* A13 f8 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) {0x1, 0xf8, 0x0B}, /* A21 f8 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) {0x1, 0x14, 0x0C}, /* A22 0x14 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) {0x1, 0xf8, 0x0D}, /* A23 f8 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) {0x1, 0xf8, 0x0E}, /* A31 f8 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) {0x1, 0xf8, 0x0F}, /* A32 f8 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) {0x1, 0x20, 0x10}, /* A33 0x20 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) {0x1, 0x00, 0x11}, /* R offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) {0x1, 0x00, 0x12}, /* G offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) {0x1, 0x00, 0x13}, /* B offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) {0x1, 0x00, 0x14}, /* GB offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) #ifdef TG_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) /* Time generator manipulations */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) {0x0, 0xfc, 0x0}, /* Set up high bits of shutter speed */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) {0x0, 0x01, 0x1}, /* Set up low bits of shutter speed */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) {0x0, 0xe4, 0x04}, /* DCLK*2 clock phase adjustment */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) {0x0, 0x08, 0x05}, /* ADCK phase adjustment, inv. ext. VB */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) {0x0, 0x03, 0x06}, /* FR phase adjustment */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) {0x0, 0x01, 0x07}, /* FCDS phase adjustment */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) {0x0, 0x39, 0x08}, /* FS phase adjustment */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) {0x0, 0x88, 0x0a}, /* FH1 phase and delay adjustment */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) {0x0, 0x03, 0x0f}, /* pixel identification */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) {0x0, 0x00, 0x11}, /* clock source selection (default) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) /*VERY strange manipulations with
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) * select DMCLP or OBPX to be ADCLP output (0x0C)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) * OPB always toggle or not (0x0D) but they allow
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) * us to set up brightness
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) {0x0, 0x01, 0x0c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) {0x0, 0xe0, 0x0d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) /* Done */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) #ifdef DSPWIN_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) {0x1, 0xa0, 0x01}, /* Setting image processing parameters */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) {0x1, 0x1c, 0x17}, /* Changing Windows positions X1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) {0x1, 0xe2, 0x19}, /* X2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) {0x1, 0x1c, 0x1b}, /* X3 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) {0x1, 0xe2, 0x1d}, /* X4 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) {0x1, 0x5f, 0x1f}, /* X5 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) {0x1, 0x32, 0x20}, /* Y5 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) {0x1, 0x01, 0x10}, /* Changing A33 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) {0x2, 0x204a, 0x07},/* Setting video compression & resolution 160x120 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) {0x2, 0x94, 0x06}, /* Setting video no compression */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) {}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) The SPCAxxx docs from Sunplus document these values
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) in tables, one table per register number. In the data
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) below, dmRequest is the register number, index is the Addr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) and value is a combination of Bit values.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) Bit Value (hex)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) 0 01
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) 1 02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) 2 04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) 3 08
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) 4 10
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) 5 20
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) 6 40
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) 7 80
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) /* Data for chip initialization (set default values) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) static const __u16 spca501_init_data[][3] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) /* Set all the values to powerup defaults */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) /* bmRequest,value,index */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) {0x0, 0xAA, 0x00},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) {0x0, 0x02, 0x01},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) {0x0, 0x01, 0x02},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) {0x0, 0x02, 0x03},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) {0x0, 0xCE, 0x04},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) {0x0, 0x00, 0x05},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) {0x0, 0x00, 0x06},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) {0x0, 0x00, 0x07},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) {0x0, 0x00, 0x08},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) {0x0, 0x00, 0x09},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) {0x0, 0x90, 0x0A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) {0x0, 0x12, 0x0B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) {0x0, 0x00, 0x0C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) {0x0, 0x00, 0x0D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) {0x0, 0x00, 0x0E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) {0x0, 0x02, 0x0F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) {0x0, 0x00, 0x10},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) {0x0, 0x00, 0x11},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) {0x0, 0x00, 0x12},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) {0x0, 0x00, 0x13},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) {0x0, 0x00, 0x14},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) {0x0, 0x00, 0x15},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) {0x0, 0x00, 0x16},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) {0x0, 0x00, 0x17},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) {0x0, 0x00, 0x18},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) {0x0, 0x00, 0x19},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) {0x0, 0x00, 0x1A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) {0x0, 0x00, 0x1B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) {0x0, 0x00, 0x1C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) {0x0, 0x00, 0x1D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) {0x0, 0x00, 0x1E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) {0x0, 0x00, 0x1F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) {0x0, 0x00, 0x20},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) {0x0, 0x00, 0x21},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) {0x0, 0x00, 0x22},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) {0x0, 0x00, 0x23},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) {0x0, 0x00, 0x24},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) {0x0, 0x00, 0x25},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) {0x0, 0x00, 0x26},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) {0x0, 0x00, 0x27},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) {0x0, 0x00, 0x28},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) {0x0, 0x00, 0x29},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) {0x0, 0x00, 0x2A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) {0x0, 0x00, 0x2B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) {0x0, 0x00, 0x2C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) {0x0, 0x00, 0x2D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) {0x0, 0x00, 0x2E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) {0x0, 0x00, 0x2F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) {0x0, 0x00, 0x30},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) {0x0, 0x00, 0x31},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) {0x0, 0x00, 0x32},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) {0x0, 0x00, 0x33},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) {0x0, 0x00, 0x34},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) {0x0, 0x00, 0x35},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) {0x0, 0x00, 0x36},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) {0x0, 0x00, 0x37},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) {0x0, 0x00, 0x38},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) {0x0, 0x00, 0x39},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) {0x0, 0x00, 0x3A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) {0x0, 0x00, 0x3B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) {0x0, 0x00, 0x3C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) {0x0, 0x00, 0x3D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) {0x0, 0x00, 0x3E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) {0x0, 0x00, 0x3F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) {0x0, 0x00, 0x40},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) {0x0, 0x00, 0x41},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) {0x0, 0x00, 0x42},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) {0x0, 0x00, 0x43},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) {0x0, 0x00, 0x44},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) {0x0, 0x00, 0x45},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) {0x0, 0x00, 0x46},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) {0x0, 0x00, 0x47},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) {0x0, 0x00, 0x48},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) {0x0, 0x00, 0x49},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) {0x0, 0x00, 0x4A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) {0x0, 0x00, 0x4B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) {0x0, 0x00, 0x4C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) {0x0, 0x00, 0x4D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) {0x0, 0x00, 0x4E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) {0x0, 0x00, 0x4F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) {0x0, 0x00, 0x50},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) {0x0, 0x00, 0x51},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) {0x0, 0x00, 0x52},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) {0x0, 0x00, 0x53},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) {0x0, 0x00, 0x54},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) {0x0, 0x00, 0x55},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) {0x0, 0x00, 0x56},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) {0x0, 0x00, 0x57},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) {0x0, 0x00, 0x58},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) {0x0, 0x00, 0x59},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) {0x0, 0x00, 0x5A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) {0x0, 0x00, 0x5B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) {0x0, 0x00, 0x5C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) {0x0, 0x00, 0x5D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) {0x0, 0x00, 0x5E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) {0x0, 0x00, 0x5F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) {0x0, 0x00, 0x60},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) {0x0, 0x00, 0x61},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) {0x0, 0x00, 0x62},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) {0x0, 0x00, 0x63},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) {0x0, 0x00, 0x64},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) {0x0, 0x00, 0x65},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) {0x0, 0x00, 0x66},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) {0x0, 0x00, 0x67},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) {0x0, 0x00, 0x68},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) {0x0, 0x00, 0x69},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) {0x0, 0x00, 0x6A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) {0x0, 0x00, 0x6B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) {0x0, 0x00, 0x6C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) {0x0, 0x00, 0x6D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) {0x0, 0x00, 0x6E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) {0x0, 0x00, 0x6F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) {0x0, 0x00, 0x70},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) {0x0, 0x00, 0x71},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) {0x0, 0x00, 0x72},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) {0x0, 0x00, 0x73},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) {0x0, 0x00, 0x74},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) {0x0, 0x00, 0x75},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) {0x0, 0x00, 0x76},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) {0x0, 0x00, 0x77},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) {0x0, 0x00, 0x78},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) {0x0, 0x00, 0x79},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) {0x0, 0x00, 0x7A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) {0x0, 0x00, 0x7B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) {0x0, 0x00, 0x7C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) {0x0, 0x00, 0x7D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) {0x0, 0x00, 0x7E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) {0x0, 0x00, 0x7F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) {0x0, 0x00, 0x80},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) {0x0, 0x00, 0x81},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) {0x0, 0x00, 0x82},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) {0x0, 0x00, 0x83},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) {0x0, 0x00, 0x84},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) {0x0, 0x00, 0x85},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) {0x0, 0x00, 0x86},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) {0x0, 0x00, 0x87},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) {0x0, 0x00, 0x88},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) {0x0, 0x00, 0x89},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) {0x0, 0x00, 0x8A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) {0x0, 0x00, 0x8B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) {0x0, 0x00, 0x8C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) {0x0, 0x00, 0x8D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) {0x0, 0x00, 0x8E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) {0x0, 0x00, 0x8F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) {0x0, 0x00, 0x90},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) {0x0, 0x00, 0x91},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) {0x0, 0x00, 0x92},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) {0x0, 0x00, 0x93},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) {0x0, 0x00, 0x94},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) {0x0, 0x00, 0x95},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) {0x0, 0x00, 0x96},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) {0x0, 0x00, 0x97},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) {0x0, 0x00, 0x98},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) {0x0, 0x00, 0x99},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) {0x0, 0x00, 0x9A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) {0x0, 0x00, 0x9B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) {0x0, 0x00, 0x9C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) {0x0, 0x00, 0x9D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) {0x0, 0x00, 0x9E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) {0x0, 0x00, 0x9F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) {0x0, 0x00, 0xA0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) {0x0, 0x00, 0xA1},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) {0x0, 0x00, 0xA2},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) {0x0, 0x00, 0xA3},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) {0x0, 0x00, 0xA4},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) {0x0, 0x00, 0xA5},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) {0x0, 0x00, 0xA6},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) {0x0, 0x00, 0xA7},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) {0x0, 0x00, 0xA8},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) {0x0, 0x00, 0xA9},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) {0x0, 0x00, 0xAA},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) {0x0, 0x00, 0xAB},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) {0x0, 0x00, 0xAC},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) {0x0, 0x00, 0xAD},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) {0x0, 0x00, 0xAE},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) {0x0, 0x00, 0xAF},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) {0x0, 0x00, 0xB0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) {0x0, 0x00, 0xB1},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) {0x0, 0x00, 0xB2},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) {0x0, 0x00, 0xB3},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) {0x0, 0x00, 0xB4},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) {0x0, 0x00, 0xB5},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) {0x0, 0x00, 0xB6},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) {0x0, 0x00, 0xB7},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) {0x0, 0x00, 0xB8},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) {0x0, 0x00, 0xB9},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) {0x0, 0x00, 0xBA},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) {0x0, 0x00, 0xBB},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) {0x0, 0x00, 0xBC},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) {0x0, 0x00, 0xBD},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) {0x0, 0x00, 0xBE},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) {0x0, 0x00, 0xBF},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) {0x0, 0x00, 0xC0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) {0x0, 0x00, 0xC1},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) {0x0, 0x00, 0xC2},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) {0x0, 0x00, 0xC3},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) {0x0, 0x00, 0xC4},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) {0x0, 0x00, 0xC5},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) {0x0, 0x00, 0xC6},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) {0x0, 0x00, 0xC7},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) {0x0, 0x00, 0xC8},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) {0x0, 0x00, 0xC9},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) {0x0, 0x00, 0xCA},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) {0x0, 0x00, 0xCB},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) {0x0, 0x00, 0xCC},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) {0x1, 0xF4, 0x00},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) {0x1, 0x38, 0x01},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) {0x1, 0x40, 0x02},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) {0x1, 0x0A, 0x03},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) {0x1, 0x40, 0x04},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) {0x1, 0x40, 0x05},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) {0x1, 0x40, 0x06},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) {0x1, 0x67, 0x07},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) {0x1, 0x31, 0x08},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) {0x1, 0x00, 0x09},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) {0x1, 0x00, 0x0A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) {0x1, 0x00, 0x0B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) {0x1, 0x14, 0x0C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) {0x1, 0x00, 0x0D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) {0x1, 0x00, 0x0E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) {0x1, 0x00, 0x0F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) {0x1, 0x1E, 0x10},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) {0x1, 0x00, 0x11},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) {0x1, 0x00, 0x12},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) {0x1, 0x00, 0x13},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) {0x1, 0x00, 0x14},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) {0x1, 0xFF, 0x15},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) {0x1, 0x01, 0x16},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) {0x1, 0x32, 0x17},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) {0x1, 0x23, 0x18},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) {0x1, 0xCE, 0x19},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) {0x1, 0x23, 0x1A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) {0x1, 0x32, 0x1B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) {0x1, 0x8D, 0x1C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) {0x1, 0xCE, 0x1D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) {0x1, 0x8D, 0x1E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) {0x1, 0x00, 0x1F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) {0x1, 0x00, 0x20},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) {0x1, 0xFF, 0x3E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) {0x1, 0x02, 0x3F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) {0x1, 0x00, 0x40},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) {0x1, 0x00, 0x41},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) {0x1, 0x00, 0x42},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) {0x1, 0x00, 0x43},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) {0x1, 0x00, 0x44},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) {0x1, 0x00, 0x45},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) {0x1, 0x00, 0x46},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) {0x1, 0x00, 0x47},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) {0x1, 0x00, 0x48},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) {0x1, 0x00, 0x49},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) {0x1, 0x00, 0x4A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) {0x1, 0x00, 0x4B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) {0x1, 0x00, 0x4C},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) {0x1, 0x00, 0x4D},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) {0x1, 0x00, 0x4E},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) {0x1, 0x00, 0x4F},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) {0x1, 0x00, 0x50},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) {0x1, 0x00, 0x51},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) {0x1, 0x00, 0x52},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) {0x1, 0x00, 0x53},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) {0x1, 0x00, 0x54},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) {0x1, 0x00, 0x55},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) {0x1, 0x00, 0x56},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) {0x1, 0x00, 0x57},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) {0x1, 0x00, 0x58},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) {0x1, 0x00, 0x59},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) {0x1, 0x00, 0x5A},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) {0x2, 0x03, 0x00},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) {0x2, 0x00, 0x01},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) {0x2, 0x00, 0x05},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) {0x2, 0x00, 0x06},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) {0x2, 0x00, 0x07},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) {0x2, 0x00, 0x10},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) {0x2, 0x00, 0x11},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) /* Strange - looks like the 501 driver doesn't do anything
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) * at insert time except read the EEPROM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) {}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) /* Data for video camera init before capture.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) * Capture and decoding by Colin Peart.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) * This is is for the 3com HomeConnect Lite which is spca501a based.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) static const __u16 spca501_3com_open_data[][3] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) /* bmRequest,value,index */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) {0x2, 0x0050, 0x0000}, /* C/S Enable TG soft reset, timing mode=010 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) {0x2, 0x0043, 0x0000}, /* C/S Disable TG soft reset, timing mode=010 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) {0x2, 0x0002, 0x0005}, /* C/S GPIO */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) {0x2, 0x0003, 0x0005}, /* C/S GPIO */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) #ifdef CCDSP_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) {0x1, 0x0020, 0x0001}, /* CCDSP Options */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) {0x1, 0x0020, 0x0002}, /* CCDSP Black Level */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) {0x1, 0x006e, 0x0007}, /* CCDSP Gamma options */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) {0x1, 0x0090, 0x0015}, /* CCDSP Luminance Low */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) {0x1, 0x00ff, 0x0016}, /* CCDSP Luminance High */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) {0x1, 0x0003, 0x003F}, /* CCDSP Gamma correction toggle */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) #ifdef ALTER_GAMMA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) {0x1, 0x0010, 0x0008}, /* CCDSP YUV A11 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) {0x1, 0x0000, 0x0009}, /* CCDSP YUV A12 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) {0x1, 0x0000, 0x000a}, /* CCDSP YUV A13 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) {0x1, 0x0000, 0x000b}, /* CCDSP YUV A21 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) {0x1, 0x0010, 0x000c}, /* CCDSP YUV A22 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) {0x1, 0x0000, 0x000d}, /* CCDSP YUV A23 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) {0x1, 0x0000, 0x000e}, /* CCDSP YUV A31 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) {0x1, 0x0000, 0x000f}, /* CCDSP YUV A32 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) {0x1, 0x0010, 0x0010}, /* CCDSP YUV A33 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) {0x1, 0x0000, 0x0011}, /* CCDSP R Offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) {0x1, 0x0000, 0x0012}, /* CCDSP G Offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) {0x1, 0x0001, 0x0013}, /* CCDSP B Offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) {0x1, 0x0001, 0x0014}, /* CCDSP BG Offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) {0x1, 0x003f, 0x00C1}, /* CCDSP Gamma Correction Enable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) #ifdef TG_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) {0x0, 0x00fc, 0x0000}, /* TG Shutter Speed High Bits */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) {0x0, 0x0000, 0x0001}, /* TG Shutter Speed Low Bits */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) {0x0, 0x00e4, 0x0004}, /* TG DCLK*2 Adjust */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) {0x0, 0x0008, 0x0005}, /* TG ADCK Adjust */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) {0x0, 0x0003, 0x0006}, /* TG FR Phase Adjust */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) {0x0, 0x0001, 0x0007}, /* TG FCDS Phase Adjust */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) {0x0, 0x0039, 0x0008}, /* TG FS Phase Adjust */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) {0x0, 0x0088, 0x000a}, /* TG MH1 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) {0x0, 0x0003, 0x000f}, /* TG Pixel ID */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) /* Like below, unexplained toglleing */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) {0x0, 0x0080, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) {0x0, 0x0000, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) {0x0, 0x0080, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) {0x0, 0x0004, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) {0x0, 0x0000, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) {0x0, 0x0000, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) {0x0, 0x0040, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) {0x0, 0x0017, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) {0x0, 0x00c0, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) {0x0, 0x0000, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) {0x0, 0x0080, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) {0x0, 0x0006, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) {0x0, 0x0080, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) {0x0, 0x0004, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) {0x0, 0x0002, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) #ifdef DSPWIN_SET
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) {0x1, 0x001c, 0x0017}, /* CCDSP W1 Start X */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) {0x1, 0x00e2, 0x0019}, /* CCDSP W2 Start X */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) {0x1, 0x001c, 0x001b}, /* CCDSP W3 Start X */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) {0x1, 0x00e2, 0x001d}, /* CCDSP W4 Start X */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) {0x1, 0x00aa, 0x001f}, /* CCDSP W5 Start X */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) {0x1, 0x0070, 0x0020}, /* CCDSP W5 Start Y */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) {0x0, 0x0001, 0x0010}, /* TG Start Clock */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) /* {0x2, 0x006a, 0x0001}, * C/S Enable ISOSYNCH Packet Engine */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) {0x2, 0x0068, 0x0001}, /* C/S Disable ISOSYNCH Packet Engine */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) {0x2, 0x0000, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) {0x2, 0x0043, 0x0000}, /* C/S Set Timing Mode, Disable TG soft reset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) {0x2, 0x0043, 0x0000}, /* C/S Set Timing Mode, Disable TG soft reset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) {0x2, 0x0002, 0x0005}, /* C/S GPIO */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) {0x2, 0x0003, 0x0005}, /* C/S GPIO */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) {0x2, 0x006a, 0x0001}, /* C/S Enable ISOSYNCH Packet Engine */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) {}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) * Data used to initialize a SPCA501C with HV7131B sensor.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) * From a capture file taken with USBSnoop v 1.5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) * I have a "SPCA501C pc camera chipset" manual by sunplus, but some
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) * of the value meanings are obscure or simply "reserved".
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) * to do list:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) * 1) Understand what every value means
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) * 2) Understand why some values seem to appear more than once
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) * 3) Write a small comment for each line of the following arrays.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) static const __u16 spca501c_arowana_open_data[][3] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) /* bmRequest,value,index */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) {0x01, 0x0006, 0x0011},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) {0x01, 0x00ff, 0x0012},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) {0x01, 0x0014, 0x0013},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) {0x01, 0x0000, 0x0014},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) {0x01, 0x0042, 0x0051},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) {0x01, 0x0040, 0x0052},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) {0x01, 0x0051, 0x0053},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) {0x01, 0x0040, 0x0054},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) {0x01, 0x0000, 0x0055},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) {0x00, 0x0025, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) {0x00, 0x0026, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) {0x00, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) {0x00, 0x0027, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) {0x00, 0x008a, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) {}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) static const __u16 spca501c_arowana_init_data[][3] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) /* bmRequest,value,index */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) {0x01, 0x0006, 0x0011},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) {0x01, 0x00ff, 0x0012},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) {0x01, 0x0014, 0x0013},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) {0x01, 0x0000, 0x0014},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) {0x01, 0x0042, 0x0051},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) {0x01, 0x0040, 0x0052},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) {0x01, 0x0051, 0x0053},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) {0x01, 0x0040, 0x0054},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) {0x01, 0x0000, 0x0055},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) {0x00, 0x0025, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) {0x00, 0x0026, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) {0x00, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) {0x00, 0x0027, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) {0x00, 0x008a, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) {0x02, 0x0000, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) {0x02, 0x2000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633) {0x05, 0x0015, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) {0x05, 0x00ea, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) {0x05, 0x0023, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) {0x05, 0x0003, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) {0x05, 0x0030, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) {0x05, 0x002b, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) {0x05, 0x0031, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) {0x05, 0x0032, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) {0x05, 0x0033, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) {0x05, 0x0034, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) {0x05, 0x0002, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) {0x05, 0x0050, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) {0x05, 0x0051, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) {0x05, 0x0052, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) {0x05, 0x0054, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) {0x00, 0x0000, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) {0x00, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) {0x00, 0x000c, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) {0x00, 0x0000, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) {0x00, 0x0000, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) {0x00, 0x0040, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) {0x00, 0x00c0, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) {0x00, 0x004a, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) {0x00, 0x0000, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) {0x00, 0x0000, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668) {0x00, 0x0001, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) {0x00, 0x0001, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) {0x00, 0x0000, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) {0x00, 0x0002, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) {0x00, 0x0001, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) {0x00, 0x0000, 0x0011},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) {0x00, 0x0000, 0x0012},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) {0x00, 0x0002, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) {0x00, 0x0080, 0x0021},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) {0x00, 0x0001, 0x0022},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) {0x00, 0x00e0, 0x0023},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) {0x00, 0x0000, 0x0024},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) {0x00, 0x00d5, 0x0025},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) {0x00, 0x0000, 0x0026},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682) {0x00, 0x000b, 0x0027},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) {0x00, 0x0000, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684) {0x00, 0x0000, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685) {0x00, 0x0000, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) {0x00, 0x0000, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687) {0x00, 0x0008, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) {0xff, 0x0000, 0x00d0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689) {0xff, 0x00d8, 0x00d1},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) {0xff, 0x0000, 0x00d4},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) {0xff, 0x0000, 0x00d5},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) {0x01, 0x0028, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) {0x01, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) {0x01, 0x000a, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) {0x01, 0x0040, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) {0x01, 0x0066, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) {0x01, 0x0011, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) {0x01, 0x0032, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) {0x01, 0x00fd, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) {0x01, 0x0038, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) {0x01, 0x00d1, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) {0x01, 0x00f7, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) {0x01, 0x00ed, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) {0x01, 0x00d8, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) {0x01, 0x0038, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) {0x01, 0x00ff, 0x0015},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) {0x01, 0x0001, 0x0016},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) {0x01, 0x0032, 0x0017},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) {0x01, 0x0023, 0x0018},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) {0x01, 0x00ce, 0x0019},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) {0x01, 0x0023, 0x001a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) {0x01, 0x0032, 0x001b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) {0x01, 0x008d, 0x001c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) {0x01, 0x00ce, 0x001d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) {0x01, 0x008d, 0x001e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717) {0x01, 0x0000, 0x001f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) {0x01, 0x0000, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) {0x01, 0x00ff, 0x003e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) {0x01, 0x0003, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) {0x01, 0x0000, 0x0040},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) {0x01, 0x0035, 0x0041},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) {0x01, 0x0053, 0x0042},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) {0x01, 0x0069, 0x0043},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) {0x01, 0x007c, 0x0044},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) {0x01, 0x008c, 0x0045},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727) {0x01, 0x009a, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728) {0x01, 0x00a8, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729) {0x01, 0x00b4, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) {0x01, 0x00bf, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731) {0x01, 0x00ca, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) {0x01, 0x00d4, 0x004b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733) {0x01, 0x00dd, 0x004c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) {0x01, 0x00e7, 0x004d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735) {0x01, 0x00ef, 0x004e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) {0x01, 0x00f8, 0x004f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737) {0x01, 0x00ff, 0x0050},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) {0x01, 0x0001, 0x0056},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739) {0x01, 0x0060, 0x0057},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) {0x01, 0x0040, 0x0058},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741) {0x01, 0x0011, 0x0059},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) {0x01, 0x0001, 0x005a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) {0x02, 0x0015, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) {0x02, 0x100a, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749) {0x02, 0xc002, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) {0x02, 0x000f, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753) {0x05, 0x0025, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) {0x05, 0x0026, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) {0x05, 0x0027, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) {0x05, 0x0001, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763) {0x05, 0x0020, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) {0x02, 0x2000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) {0x05, 0x0015, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771) {0x05, 0x00ea, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) {0x05, 0x0023, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) {0x05, 0x0003, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) {0x05, 0x0030, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) {0x05, 0x002b, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778) {0x05, 0x0031, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) {0x05, 0x0032, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) {0x05, 0x0033, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) {0x05, 0x0034, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) {0x05, 0x0002, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786) {0x05, 0x0050, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788) {0x05, 0x0051, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790) {0x05, 0x0052, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) {0x05, 0x0054, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) {0x00, 0x0000, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795) {0x00, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) {0x00, 0x000c, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797) {0x00, 0x0000, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) {0x00, 0x0000, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800) {0x00, 0x0040, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) {0x00, 0x00c0, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802) {0x00, 0x004a, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) {0x00, 0x0000, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804) {0x00, 0x0000, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) {0x00, 0x0001, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806) {0x00, 0x0001, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) {0x00, 0x0000, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808) {0x00, 0x0002, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) {0x00, 0x0001, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810) {0x00, 0x0000, 0x0011},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811) {0x00, 0x0000, 0x0012},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812) {0x00, 0x0002, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) {0x00, 0x0080, 0x0021},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) {0x00, 0x0001, 0x0022},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) {0x00, 0x00e0, 0x0023},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816) {0x00, 0x0000, 0x0024},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) {0x00, 0x00d5, 0x0025},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) {0x00, 0x0000, 0x0026},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819) {0x00, 0x000b, 0x0027},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820) {0x00, 0x0000, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821) {0x00, 0x0000, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822) {0x00, 0x0000, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) {0x00, 0x0000, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824) {0x00, 0x0008, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825) {0xff, 0x0000, 0x00d0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826) {0xff, 0x00d8, 0x00d1},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827) {0xff, 0x0000, 0x00d4},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828) {0xff, 0x0000, 0x00d5},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830) {0x01, 0x0028, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831) {0x01, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832) {0x01, 0x000a, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833) {0x01, 0x0040, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834) {0x01, 0x0066, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835) {0x01, 0x0011, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836) {0x01, 0x0032, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837) {0x01, 0x00fd, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838) {0x01, 0x0038, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839) {0x01, 0x00d1, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840) {0x01, 0x00f7, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841) {0x01, 0x00ed, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842) {0x01, 0x00d8, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) {0x01, 0x0038, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844) {0x01, 0x00ff, 0x0015},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845) {0x01, 0x0001, 0x0016},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846) {0x01, 0x0032, 0x0017},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847) {0x01, 0x0023, 0x0018},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848) {0x01, 0x00ce, 0x0019},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849) {0x01, 0x0023, 0x001a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850) {0x01, 0x0032, 0x001b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851) {0x01, 0x008d, 0x001c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852) {0x01, 0x00ce, 0x001d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853) {0x01, 0x008d, 0x001e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854) {0x01, 0x0000, 0x001f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) {0x01, 0x0000, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) {0x01, 0x00ff, 0x003e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) {0x01, 0x0003, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858) {0x01, 0x0000, 0x0040},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859) {0x01, 0x0035, 0x0041},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) {0x01, 0x0053, 0x0042},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) {0x01, 0x0069, 0x0043},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862) {0x01, 0x007c, 0x0044},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863) {0x01, 0x008c, 0x0045},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864) {0x01, 0x009a, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) {0x01, 0x00a8, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866) {0x01, 0x00b4, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) {0x01, 0x00bf, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) {0x01, 0x00ca, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869) {0x01, 0x00d4, 0x004b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870) {0x01, 0x00dd, 0x004c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) {0x01, 0x00e7, 0x004d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872) {0x01, 0x00ef, 0x004e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873) {0x01, 0x00f8, 0x004f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874) {0x01, 0x00ff, 0x0050},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875) {0x01, 0x0001, 0x0056},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876) {0x01, 0x0060, 0x0057},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877) {0x01, 0x0040, 0x0058},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878) {0x01, 0x0011, 0x0059},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879) {0x01, 0x0001, 0x005a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883) {0x02, 0x0015, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884) {0x02, 0x100a, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886) {0x02, 0xc002, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887) {0x02, 0x000f, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890) {0x05, 0x0025, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892) {0x05, 0x0026, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894) {0x05, 0x0027, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896) {0x05, 0x0001, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900) {0x05, 0x0020, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904) {0x01, 0x0003, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905) {0x01, 0x0001, 0x0056},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906) {0x01, 0x0011, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907) {0x01, 0x0032, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 908) {0x01, 0xfffd, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 909) {0x01, 0x0023, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 910) {0x01, 0xffea, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 911) {0x01, 0xfff4, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 912) {0x01, 0xfffc, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 913) {0x01, 0xffe3, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 914) {0x01, 0x001f, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 915) {0x01, 0x00a8, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 916) {0x01, 0x0067, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 917) {0x01, 0x0032, 0x0017},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 918) {0x01, 0x0023, 0x0018},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 919) {0x01, 0x00ce, 0x0019},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 920) {0x01, 0x0023, 0x001a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 921) {0x01, 0x0032, 0x001b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 922) {0x01, 0x008d, 0x001c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 923) {0x01, 0x00ce, 0x001d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 924) {0x01, 0x008d, 0x001e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 925) {0x01, 0x00c8, 0x0015},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 926) {0x01, 0x0032, 0x0016},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 927) {0x01, 0x0000, 0x0011},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 928) {0x01, 0x0000, 0x0012},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 929) {0x01, 0x0000, 0x0013},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 930) {0x01, 0x000a, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 931) {0x02, 0xc002, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 932) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 933) {0x02, 0xc000, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 934) {0x02, 0x0000, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 935) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 936) {0x02, 0x2000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 937) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 938) {0x05, 0x0015, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 939) {0x05, 0x00ea, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 940) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 941) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 942) {0x05, 0x0023, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 943) {0x05, 0x0003, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 944) {0x05, 0x0030, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 945) {0x05, 0x002b, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 946) {0x05, 0x0031, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 947) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 948) {0x05, 0x0032, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 949) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 950) {0x05, 0x0033, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 951) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 952) {0x05, 0x0034, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 953) {0x05, 0x0002, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 954) {0x05, 0x0050, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 955) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 956) {0x05, 0x0051, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 957) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 958) {0x05, 0x0052, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 959) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 960) {0x05, 0x0054, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 961) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 962) {0x00, 0x0000, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 963) {0x00, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 964) {0x00, 0x000c, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 965) {0x00, 0x0000, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 966) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 967) {0x00, 0x0000, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 968) {0x00, 0x0040, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 969) {0x00, 0x00c0, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 970) {0x00, 0x004a, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 971) {0x00, 0x0000, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 972) {0x00, 0x0000, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 973) {0x00, 0x0001, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 974) {0x00, 0x0001, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 975) {0x00, 0x0000, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 976) {0x00, 0x0002, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 977) {0x00, 0x0001, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 978) {0x00, 0x0000, 0x0011},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 979) {0x00, 0x0000, 0x0012},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 980) {0x00, 0x0002, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 981) {0x00, 0x0080, 0x0021},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 982) {0x00, 0x0001, 0x0022},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 983) {0x00, 0x00e0, 0x0023},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 984) {0x00, 0x0000, 0x0024},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 985) {0x00, 0x00d5, 0x0025},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 986) {0x00, 0x0000, 0x0026},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 987) {0x00, 0x000b, 0x0027},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 988) {0x00, 0x0000, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 989) {0x00, 0x0000, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 990) {0x00, 0x0000, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 991) {0x00, 0x0000, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 992) {0x00, 0x0008, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 993) {0xff, 0x0000, 0x00d0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 994) {0xff, 0x00d8, 0x00d1},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 995) {0xff, 0x0000, 0x00d4},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 996) {0xff, 0x0000, 0x00d5},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 997) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 998) {0x01, 0x0028, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 999) {0x01, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000) {0x01, 0x000a, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001) {0x01, 0x0040, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002) {0x01, 0x0066, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003) {0x01, 0x0011, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004) {0x01, 0x0032, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005) {0x01, 0x00fd, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) {0x01, 0x0038, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007) {0x01, 0x00d1, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) {0x01, 0x00f7, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009) {0x01, 0x00ed, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010) {0x01, 0x00d8, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) {0x01, 0x0038, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012) {0x01, 0x00ff, 0x0015},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013) {0x01, 0x0001, 0x0016},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014) {0x01, 0x0032, 0x0017},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015) {0x01, 0x0023, 0x0018},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016) {0x01, 0x00ce, 0x0019},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017) {0x01, 0x0023, 0x001a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018) {0x01, 0x0032, 0x001b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019) {0x01, 0x008d, 0x001c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020) {0x01, 0x00ce, 0x001d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021) {0x01, 0x008d, 0x001e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022) {0x01, 0x0000, 0x001f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023) {0x01, 0x0000, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) {0x01, 0x00ff, 0x003e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025) {0x01, 0x0003, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1026) {0x01, 0x0000, 0x0040},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1027) {0x01, 0x0035, 0x0041},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1028) {0x01, 0x0053, 0x0042},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1029) {0x01, 0x0069, 0x0043},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1030) {0x01, 0x007c, 0x0044},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1031) {0x01, 0x008c, 0x0045},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1032) {0x01, 0x009a, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1033) {0x01, 0x00a8, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1034) {0x01, 0x00b4, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1035) {0x01, 0x00bf, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1036) {0x01, 0x00ca, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1037) {0x01, 0x00d4, 0x004b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1038) {0x01, 0x00dd, 0x004c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1039) {0x01, 0x00e7, 0x004d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1040) {0x01, 0x00ef, 0x004e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1041) {0x01, 0x00f8, 0x004f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1042) {0x01, 0x00ff, 0x0050},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1043) {0x01, 0x0001, 0x0056},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1044) {0x01, 0x0060, 0x0057},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1045) {0x01, 0x0040, 0x0058},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1046) {0x01, 0x0011, 0x0059},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1047) {0x01, 0x0001, 0x005a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1048) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1049) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1050) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1051) {0x02, 0x0015, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1052) {0x02, 0x100a, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1053) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1054) {0x02, 0xc002, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1055) {0x02, 0x000f, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1056) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1057) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1058) {0x05, 0x0025, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1059) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1060) {0x05, 0x0026, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1061) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1062) {0x05, 0x0027, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1063) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1064) {0x05, 0x0001, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1065) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1066) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1067) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1068) {0x05, 0x0020, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1069) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1070) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1071) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1072) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1073) {0x02, 0x2000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1074) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1075) {0x05, 0x0015, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1076) {0x05, 0x00ea, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1077) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1078) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1079) {0x05, 0x0023, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1080) {0x05, 0x0003, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1081) {0x05, 0x0030, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1082) {0x05, 0x002b, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1083) {0x05, 0x0031, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1084) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1085) {0x05, 0x0032, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1086) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1087) {0x05, 0x0033, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1088) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1089) {0x05, 0x0034, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1090) {0x05, 0x0002, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1091) {0x05, 0x0050, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1092) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1093) {0x05, 0x0051, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1094) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1095) {0x05, 0x0052, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1096) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1097) {0x05, 0x0054, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1098) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1099) {0x00, 0x0000, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1100) {0x00, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1101) {0x00, 0x000c, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1102) {0x00, 0x0000, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1103) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1104) {0x00, 0x0000, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1105) {0x00, 0x0040, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1106) {0x00, 0x00c0, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1107) {0x00, 0x004a, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1108) {0x00, 0x0000, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1109) {0x00, 0x0000, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1110) {0x00, 0x0001, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1111) {0x00, 0x0001, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1112) {0x00, 0x0000, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1113) {0x00, 0x0002, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1114) {0x00, 0x0001, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1115) {0x00, 0x0000, 0x0011},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1116) {0x00, 0x0000, 0x0012},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1117) {0x00, 0x0002, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1118) {0x00, 0x0080, 0x0021},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1119) {0x00, 0x0001, 0x0022},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1120) {0x00, 0x00e0, 0x0023},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1121) {0x00, 0x0000, 0x0024},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1122) {0x00, 0x00d5, 0x0025},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1123) {0x00, 0x0000, 0x0026},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1124) {0x00, 0x000b, 0x0027},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1125) {0x00, 0x0000, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1126) {0x00, 0x0000, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1127) {0x00, 0x0000, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1128) {0x00, 0x0000, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1129) {0x00, 0x0008, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1130) {0xff, 0x0000, 0x00d0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1131) {0xff, 0x00d8, 0x00d1},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1132) {0xff, 0x0000, 0x00d4},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1133) {0xff, 0x0000, 0x00d5},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1134) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1135) {0x01, 0x0028, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1136) {0x01, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1137) {0x01, 0x000a, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1138) {0x01, 0x0040, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1139) {0x01, 0x0066, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1140) {0x01, 0x0011, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1141) {0x01, 0x0032, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1142) {0x01, 0x00fd, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1143) {0x01, 0x0038, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1144) {0x01, 0x00d1, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1145) {0x01, 0x00f7, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1146) {0x01, 0x00ed, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1147) {0x01, 0x00d8, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1148) {0x01, 0x0038, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1149) {0x01, 0x00ff, 0x0015},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1150) {0x01, 0x0001, 0x0016},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1151) {0x01, 0x0032, 0x0017},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1152) {0x01, 0x0023, 0x0018},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1153) {0x01, 0x00ce, 0x0019},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1154) {0x01, 0x0023, 0x001a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1155) {0x01, 0x0032, 0x001b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1156) {0x01, 0x008d, 0x001c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1157) {0x01, 0x00ce, 0x001d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1158) {0x01, 0x008d, 0x001e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1159) {0x01, 0x0000, 0x001f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1160) {0x01, 0x0000, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1161) {0x01, 0x00ff, 0x003e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1162) {0x01, 0x0003, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1163) {0x01, 0x0000, 0x0040},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1164) {0x01, 0x0035, 0x0041},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1165) {0x01, 0x0053, 0x0042},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1166) {0x01, 0x0069, 0x0043},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1167) {0x01, 0x007c, 0x0044},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1168) {0x01, 0x008c, 0x0045},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1169) {0x01, 0x009a, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1170) {0x01, 0x00a8, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1171) {0x01, 0x00b4, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1172) {0x01, 0x00bf, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1173) {0x01, 0x00ca, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1174) {0x01, 0x00d4, 0x004b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1175) {0x01, 0x00dd, 0x004c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1176) {0x01, 0x00e7, 0x004d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1177) {0x01, 0x00ef, 0x004e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1178) {0x01, 0x00f8, 0x004f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1179) {0x01, 0x00ff, 0x0050},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1180) {0x01, 0x0001, 0x0056},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1181) {0x01, 0x0060, 0x0057},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1182) {0x01, 0x0040, 0x0058},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1183) {0x01, 0x0011, 0x0059},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1184) {0x01, 0x0001, 0x005a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1185) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1186) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1187) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1188) {0x02, 0x0015, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1189) {0x02, 0x100a, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1190) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1191) {0x02, 0xc002, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1192) {0x02, 0x000f, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1193) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1194) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1195) {0x05, 0x0025, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1196) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1197) {0x05, 0x0026, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1198) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1199) {0x05, 0x0027, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1200) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1201) {0x05, 0x0001, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1202) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1203) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1204) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1205) {0x05, 0x0020, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1206) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1207) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1208) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1209) {0x05, 0x0026, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1210) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1211) {0x05, 0x0027, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1212) {0x05, 0x000f, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1213) {0x01, 0x0003, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1214) {0x01, 0x0001, 0x0056},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1215) {0x01, 0x0011, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1216) {0x01, 0x0032, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1217) {0x01, 0xfffd, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1218) {0x01, 0x0023, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1219) {0x01, 0xffea, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1220) {0x01, 0xfff4, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1221) {0x01, 0xfffc, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1222) {0x01, 0xffe3, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1223) {0x01, 0x001f, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1224) {0x01, 0x00a8, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1225) {0x01, 0x0067, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1226) {0x01, 0x0042, 0x0051},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1227) {0x01, 0x0051, 0x0053},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1228) {0x01, 0x000a, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1229) {0x02, 0xc002, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1230) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1231) {0x02, 0xc000, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1232) {0x02, 0x0000, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1233) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1234) {0x02, 0x2000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1235) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1236) {0x05, 0x0015, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1237) {0x05, 0x00ea, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1238) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1239) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1240) {0x05, 0x0023, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1241) {0x05, 0x0003, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1242) {0x05, 0x0030, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1243) {0x05, 0x002b, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1244) {0x05, 0x0031, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1245) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1246) {0x05, 0x0032, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1247) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1248) {0x05, 0x0033, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1249) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1250) {0x05, 0x0034, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1251) {0x05, 0x0002, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1252) {0x05, 0x0050, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1253) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1254) {0x05, 0x0051, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1255) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1256) {0x05, 0x0052, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1257) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1258) {0x05, 0x0054, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1259) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1260) {0x00, 0x0000, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1261) {0x00, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1262) {0x00, 0x000c, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1263) {0x00, 0x0000, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1264) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1265) {0x00, 0x0000, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1266) {0x00, 0x0040, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1267) {0x00, 0x00c0, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1268) {0x00, 0x004a, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1269) {0x00, 0x0000, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1270) {0x00, 0x0000, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1271) {0x00, 0x0001, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1272) {0x00, 0x0001, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1273) {0x00, 0x0000, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1274) {0x00, 0x0002, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1275) {0x00, 0x0001, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1276) {0x00, 0x0000, 0x0011},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1277) {0x00, 0x0000, 0x0012},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1278) {0x00, 0x0002, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1279) {0x00, 0x0080, 0x0021},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1280) {0x00, 0x0001, 0x0022},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1281) {0x00, 0x00e0, 0x0023},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1282) {0x00, 0x0000, 0x0024},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1283) {0x00, 0x00d5, 0x0025},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1284) {0x00, 0x0000, 0x0026},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1285) {0x00, 0x000b, 0x0027},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1286) {0x00, 0x0000, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1287) {0x00, 0x0000, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1288) {0x00, 0x0000, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1289) {0x00, 0x0000, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1290) {0x00, 0x0008, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1291) {0xff, 0x0000, 0x00d0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1292) {0xff, 0x00d8, 0x00d1},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1293) {0xff, 0x0000, 0x00d4},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1294) {0xff, 0x0000, 0x00d5},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1295) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1296) {0x01, 0x0028, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1297) {0x01, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1298) {0x01, 0x000a, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1299) {0x01, 0x0040, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1300) {0x01, 0x0066, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1301) {0x01, 0x0011, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1302) {0x01, 0x0032, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1303) {0x01, 0x00fd, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1304) {0x01, 0x0038, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1305) {0x01, 0x00d1, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1306) {0x01, 0x00f7, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1307) {0x01, 0x00ed, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1308) {0x01, 0x00d8, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1309) {0x01, 0x0038, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1310) {0x01, 0x00ff, 0x0015},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1311) {0x01, 0x0001, 0x0016},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1312) {0x01, 0x0032, 0x0017},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1313) {0x01, 0x0023, 0x0018},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1314) {0x01, 0x00ce, 0x0019},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1315) {0x01, 0x0023, 0x001a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1316) {0x01, 0x0032, 0x001b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1317) {0x01, 0x008d, 0x001c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1318) {0x01, 0x00ce, 0x001d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1319) {0x01, 0x008d, 0x001e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1320) {0x01, 0x0000, 0x001f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1321) {0x01, 0x0000, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1322) {0x01, 0x00ff, 0x003e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1323) {0x01, 0x0003, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1324) {0x01, 0x0000, 0x0040},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1325) {0x01, 0x0035, 0x0041},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1326) {0x01, 0x0053, 0x0042},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1327) {0x01, 0x0069, 0x0043},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1328) {0x01, 0x007c, 0x0044},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1329) {0x01, 0x008c, 0x0045},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1330) {0x01, 0x009a, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1331) {0x01, 0x00a8, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1332) {0x01, 0x00b4, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1333) {0x01, 0x00bf, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1334) {0x01, 0x00ca, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1335) {0x01, 0x00d4, 0x004b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1336) {0x01, 0x00dd, 0x004c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1337) {0x01, 0x00e7, 0x004d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1338) {0x01, 0x00ef, 0x004e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1339) {0x01, 0x00f8, 0x004f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1340) {0x01, 0x00ff, 0x0050},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1341) {0x01, 0x0001, 0x0056},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1342) {0x01, 0x0060, 0x0057},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1343) {0x01, 0x0040, 0x0058},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1344) {0x01, 0x0011, 0x0059},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1345) {0x01, 0x0001, 0x005a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1346) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1347) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1348) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1349) {0x02, 0x0015, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1350) {0x02, 0x100a, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1351) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1352) {0x02, 0xc002, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1353) {0x02, 0x000f, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1354) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1355) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1356) {0x05, 0x0025, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1357) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1358) {0x05, 0x0026, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1359) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1360) {0x05, 0x0027, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1361) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1362) {0x05, 0x0001, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1363) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1364) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1365) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1366) {0x05, 0x0020, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1367) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1368) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1369) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1370) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1371) {0x02, 0x2000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1372) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1373) {0x05, 0x0015, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1374) {0x05, 0x00ea, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1375) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1376) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1377) {0x05, 0x0023, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1378) {0x05, 0x0003, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1379) {0x05, 0x0030, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1380) {0x05, 0x002b, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1381) {0x05, 0x0031, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1382) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1383) {0x05, 0x0032, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1384) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1385) {0x05, 0x0033, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1386) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1387) {0x05, 0x0034, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1388) {0x05, 0x0002, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1389) {0x05, 0x0050, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1390) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1391) {0x05, 0x0051, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1392) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1393) {0x05, 0x0052, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1394) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1395) {0x05, 0x0054, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1396) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1397) {0x00, 0x0000, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1398) {0x00, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1399) {0x00, 0x000c, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1400) {0x00, 0x0000, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1401) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1402) {0x00, 0x0000, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1403) {0x00, 0x0040, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1404) {0x00, 0x00c0, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1405) {0x00, 0x004a, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1406) {0x00, 0x0000, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1407) {0x00, 0x0000, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1408) {0x00, 0x0001, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1409) {0x00, 0x0001, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1410) {0x00, 0x0000, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1411) {0x00, 0x0002, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1412) {0x00, 0x0001, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1413) {0x00, 0x0000, 0x0011},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1414) {0x00, 0x0000, 0x0012},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1415) {0x00, 0x0002, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1416) {0x00, 0x0080, 0x0021},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1417) {0x00, 0x0001, 0x0022},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1418) {0x00, 0x00e0, 0x0023},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1419) {0x00, 0x0000, 0x0024},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1420) {0x00, 0x00d5, 0x0025},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1421) {0x00, 0x0000, 0x0026},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1422) {0x00, 0x000b, 0x0027},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1423) {0x00, 0x0000, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1424) {0x00, 0x0000, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1425) {0x00, 0x0000, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1426) {0x00, 0x0000, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1427) {0x00, 0x0008, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1428) {0xff, 0x0000, 0x00d0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1429) {0xff, 0x00d8, 0x00d1},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1430) {0xff, 0x0000, 0x00d4},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1431) {0xff, 0x0000, 0x00d5},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1432) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1433) {0x01, 0x0028, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1434) {0x01, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1435) {0x01, 0x000a, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1436) {0x01, 0x0040, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1437) {0x01, 0x0066, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1438) {0x01, 0x0011, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1439) {0x01, 0x0032, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1440) {0x01, 0x00fd, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1441) {0x01, 0x0038, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1442) {0x01, 0x00d1, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1443) {0x01, 0x00f7, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1444) {0x01, 0x00ed, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1445) {0x01, 0x00d8, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1446) {0x01, 0x0038, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1447) {0x01, 0x00ff, 0x0015},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1448) {0x01, 0x0001, 0x0016},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1449) {0x01, 0x0032, 0x0017},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1450) {0x01, 0x0023, 0x0018},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1451) {0x01, 0x00ce, 0x0019},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1452) {0x01, 0x0023, 0x001a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1453) {0x01, 0x0032, 0x001b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1454) {0x01, 0x008d, 0x001c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1455) {0x01, 0x00ce, 0x001d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1456) {0x01, 0x008d, 0x001e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1457) {0x01, 0x0000, 0x001f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1458) {0x01, 0x0000, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1459) {0x01, 0x00ff, 0x003e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1460) {0x01, 0x0003, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1461) {0x01, 0x0000, 0x0040},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1462) {0x01, 0x0035, 0x0041},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1463) {0x01, 0x0053, 0x0042},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1464) {0x01, 0x0069, 0x0043},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1465) {0x01, 0x007c, 0x0044},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1466) {0x01, 0x008c, 0x0045},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1467) {0x01, 0x009a, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1468) {0x01, 0x00a8, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1469) {0x01, 0x00b4, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1470) {0x01, 0x00bf, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1471) {0x01, 0x00ca, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1472) {0x01, 0x00d4, 0x004b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1473) {0x01, 0x00dd, 0x004c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1474) {0x01, 0x00e7, 0x004d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1475) {0x01, 0x00ef, 0x004e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1476) {0x01, 0x00f8, 0x004f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1477) {0x01, 0x00ff, 0x0050},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1478) {0x01, 0x0001, 0x0056},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1479) {0x01, 0x0060, 0x0057},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1480) {0x01, 0x0040, 0x0058},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1481) {0x01, 0x0011, 0x0059},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1482) {0x01, 0x0001, 0x005a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1483) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1484) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1485) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1486) {0x02, 0x0015, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1487) {0x02, 0x100a, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1488) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1489) {0x02, 0xc002, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1490) {0x02, 0x000f, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1491) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1492) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1493) {0x05, 0x0025, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1494) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1495) {0x05, 0x0026, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1496) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1497) {0x05, 0x0027, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1498) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1499) {0x05, 0x0001, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1500) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1501) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1502) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1503) {0x05, 0x0020, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1504) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1505) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1506) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1507) {0x05, 0x0026, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1508) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1509) {0x05, 0x0027, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1510) {0x05, 0x001e, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1511) {0x01, 0x0003, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1512) {0x01, 0x0001, 0x0056},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1513) {0x01, 0x0011, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1514) {0x01, 0x0032, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1515) {0x01, 0xfffd, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1516) {0x01, 0x0023, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1517) {0x01, 0xffea, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1518) {0x01, 0xfff4, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1519) {0x01, 0xfffc, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1520) {0x01, 0xffe3, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1521) {0x01, 0x001f, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1522) {0x01, 0x00a8, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1523) {0x01, 0x0067, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1524) {0x01, 0x0042, 0x0051},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1525) {0x01, 0x0051, 0x0053},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1526) {0x01, 0x000a, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1527) {0x02, 0xc002, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1528) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1529) {0x01, 0x0042, 0x0051},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1530) {0x01, 0x0051, 0x0053},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1531) {0x05, 0x0026, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1532) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1533) {0x05, 0x0027, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1534) {0x05, 0x002d, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1535) {0x01, 0x0003, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1536) {0x01, 0x0001, 0x0056},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1537) {0x02, 0xc000, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1538) {0x02, 0x0000, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1539) {}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1540) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1541)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1542) /* Unknown camera from Ori Usbid 0x0000:0x0000 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1543) /* Based on snoops from Ori Cohen */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1544) static const __u16 spca501c_mysterious_open_data[][3] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1545) {0x02, 0x000f, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1546) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1547) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1548) /* DSP Registers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1549) {0x01, 0x0016, 0x0011}, /* RGB offset */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1550) {0x01, 0x0000, 0x0012},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1551) {0x01, 0x0006, 0x0013},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1552) {0x01, 0x0078, 0x0051},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1553) {0x01, 0x0040, 0x0052},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1554) {0x01, 0x0046, 0x0053},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1555) {0x01, 0x0040, 0x0054},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1556) {0x00, 0x0025, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1557) /* {0x00, 0x0000, 0x0000 }, */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1558) /* Part 2 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1559) /* TG Registers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1560) {0x00, 0x0026, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1561) {0x00, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1562) {0x00, 0x0027, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1563) {0x00, 0x008a, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1564) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1565) {0x02, 0x2000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1566) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1567) {0x05, 0x0015, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1568) {0x05, 0x00ea, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1569) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1570) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1571) {0x05, 0x0023, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1572) {0x05, 0x0003, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1573) {0x05, 0x0030, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1574) {0x05, 0x002b, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1575) {0x05, 0x0031, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1576) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1577) {0x05, 0x0032, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1578) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1579) {0x05, 0x0033, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1580) {0x05, 0x0023, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1581) {0x05, 0x0034, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1582) {0x05, 0x0002, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1583) {0x05, 0x0050, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1584) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1585) {0x05, 0x0051, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1586) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1587) {0x05, 0x0052, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1588) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1589) {0x05, 0x0054, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1590) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1591) {}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1592) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1593)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1594) /* Based on snoops from Ori Cohen */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1595) static const __u16 spca501c_mysterious_init_data[][3] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1596) /* Part 3 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1597) /* TG registers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1598) /* {0x00, 0x0000, 0x0000}, */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1599) {0x00, 0x0000, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1600) {0x00, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1601) {0x00, 0x0006, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1602) {0x00, 0x0000, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1603) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1604) {0x00, 0x0000, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1605) {0x00, 0x0040, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1606) {0x00, 0x00c0, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1607) {0x00, 0x004a, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1608) {0x00, 0x0000, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1609) {0x00, 0x0000, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1610) {0x00, 0x0001, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1611) {0x00, 0x0001, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1612) {0x00, 0x0000, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1613) {0x00, 0x0002, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1614) {0x00, 0x0001, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1615) {0x00, 0x0000, 0x0011},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1616) {0x00, 0x0001, 0x0012},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1617) {0x00, 0x0002, 0x0020},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1618) {0x00, 0x0080, 0x0021}, /* 640 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1619) {0x00, 0x0001, 0x0022},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1620) {0x00, 0x00e0, 0x0023}, /* 480 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1621) {0x00, 0x0000, 0x0024}, /* Offset H hight */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1622) {0x00, 0x00d3, 0x0025}, /* low */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1623) {0x00, 0x0000, 0x0026}, /* Offset V */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1624) {0x00, 0x000d, 0x0027}, /* low */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1625) {0x00, 0x0000, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1626) {0x00, 0x0000, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1627) {0x00, 0x0000, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1628) {0x00, 0x0000, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1629) {0x00, 0x0008, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1630) /* DSP Registers */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1631) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1632) {0x01, 0x0028, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1633) {0x01, 0x0000, 0x0002},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1634) {0x01, 0x000a, 0x0003}, /* Level Calc bit7 ->1 Auto */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1635) {0x01, 0x0040, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1636) {0x01, 0x0066, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1637) {0x01, 0x000f, 0x0008}, /* A11 Color correction coeff */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1638) {0x01, 0x002d, 0x0009}, /* A12 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1639) {0x01, 0x0005, 0x000a}, /* A13 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1640) {0x01, 0x0023, 0x000b}, /* A21 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1641) {0x01, 0x00e0, 0x000c}, /* A22 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1642) {0x01, 0x00fd, 0x000d}, /* A23 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1643) {0x01, 0x00f4, 0x000e}, /* A31 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1644) {0x01, 0x00e4, 0x000f}, /* A32 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1645) {0x01, 0x0028, 0x0010}, /* A33 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1646) {0x01, 0x00ff, 0x0015}, /* Reserved */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1647) {0x01, 0x0001, 0x0016}, /* Reserved */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1648) {0x01, 0x0032, 0x0017}, /* Win1 Start begin */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1649) {0x01, 0x0023, 0x0018},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1650) {0x01, 0x00ce, 0x0019},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1651) {0x01, 0x0023, 0x001a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1652) {0x01, 0x0032, 0x001b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1653) {0x01, 0x008d, 0x001c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1654) {0x01, 0x00ce, 0x001d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1655) {0x01, 0x008d, 0x001e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1656) {0x01, 0x0000, 0x001f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1657) {0x01, 0x0000, 0x0020}, /* Win1 Start end */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1658) {0x01, 0x00ff, 0x003e}, /* Reserved begin */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1659) {0x01, 0x0002, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1660) {0x01, 0x0000, 0x0040},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1661) {0x01, 0x0035, 0x0041},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1662) {0x01, 0x0053, 0x0042},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1663) {0x01, 0x0069, 0x0043},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1664) {0x01, 0x007c, 0x0044},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1665) {0x01, 0x008c, 0x0045},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1666) {0x01, 0x009a, 0x0046},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1667) {0x01, 0x00a8, 0x0047},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1668) {0x01, 0x00b4, 0x0048},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1669) {0x01, 0x00bf, 0x0049},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1670) {0x01, 0x00ca, 0x004a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1671) {0x01, 0x00d4, 0x004b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1672) {0x01, 0x00dd, 0x004c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1673) {0x01, 0x00e7, 0x004d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1674) {0x01, 0x00ef, 0x004e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1675) {0x01, 0x00f8, 0x004f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1676) {0x01, 0x00ff, 0x0050},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1677) {0x01, 0x0003, 0x0056}, /* Reserved end */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1678) {0x01, 0x0060, 0x0057}, /* Edge Gain */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1679) {0x01, 0x0040, 0x0058},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1680) {0x01, 0x0011, 0x0059}, /* Edge Bandwidth */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1681) {0x01, 0x0001, 0x005a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1682) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1683) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1684) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1685) {0x02, 0x0015, 0x0006},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1686) {0x02, 0x200a, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1687) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1688) {0x02, 0xc000, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1689) {0x02, 0x000f, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1690) {0x02, 0xa048, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1691) {0x05, 0x0022, 0x0004},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1692) {0x05, 0x0025, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1693) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1694) /* Part 4 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1695) {0x05, 0x0026, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1696) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1697) {0x05, 0x0027, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1698) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1699) {0x05, 0x0001, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1700) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1701) {0x05, 0x0021, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1702) {0x05, 0x00d2, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1703) {0x05, 0x0020, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1704) {0x05, 0x0000, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1705) {0x00, 0x0090, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1706) {0x01, 0x00a6, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1707) {0x02, 0x0000, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1708) {0x05, 0x0026, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1709) {0x05, 0x0001, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1710) {0x05, 0x0027, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1711) {0x05, 0x004e, 0x0000},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1712) /* Part 5 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1713) {0x01, 0x0003, 0x003f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1714) {0x01, 0x0001, 0x0056},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1715) {0x01, 0x000f, 0x0008},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1716) {0x01, 0x002d, 0x0009},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1717) {0x01, 0x0005, 0x000a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1718) {0x01, 0x0023, 0x000b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1719) {0x01, 0xffe0, 0x000c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1720) {0x01, 0xfffd, 0x000d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1721) {0x01, 0xfff4, 0x000e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1722) {0x01, 0xffe4, 0x000f},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1723) {0x01, 0x0028, 0x0010},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1724) {0x01, 0x00a8, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1725) {0x01, 0x0066, 0x0007},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1726) {0x01, 0x0032, 0x0017},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1727) {0x01, 0x0023, 0x0018},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1728) {0x01, 0x00ce, 0x0019},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1729) {0x01, 0x0023, 0x001a},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1730) {0x01, 0x0032, 0x001b},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1731) {0x01, 0x008d, 0x001c},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1732) {0x01, 0x00ce, 0x001d},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1733) {0x01, 0x008d, 0x001e},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1734) {0x01, 0x00c8, 0x0015}, /* c8 Poids fort Luma */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1735) {0x01, 0x0032, 0x0016}, /* 32 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1736) {0x01, 0x0016, 0x0011}, /* R 00 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1737) {0x01, 0x0016, 0x0012}, /* G 00 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1738) {0x01, 0x0016, 0x0013}, /* B 00 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1739) {0x01, 0x000a, 0x0003},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1740) {0x02, 0xc002, 0x0001},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1741) {0x02, 0x0007, 0x0005},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1742) {}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1743) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1744)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1745) static int reg_write(struct gspca_dev *gspca_dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1746) __u16 req, __u16 index, __u16 value)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1747) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1748) int ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1749) struct usb_device *dev = gspca_dev->dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1750)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1751) ret = usb_control_msg(dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1752) usb_sndctrlpipe(dev, 0),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1753) req,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1754) USB_TYPE_VENDOR | USB_RECIP_DEVICE,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1755) value, index, NULL, 0, 500);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1756) gspca_dbg(gspca_dev, D_USBO, "reg write: 0x%02x 0x%02x 0x%02x\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1757) req, index, value);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1758) if (ret < 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1759) pr_err("reg write: error %d\n", ret);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1760) return ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1761) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1762)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1763)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1764) static int write_vector(struct gspca_dev *gspca_dev, const __u16 data[][3])
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1765) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1766) int ret, i = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1767)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1768) while (data[i][0] != 0 || data[i][1] != 0 || data[i][2] != 0) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1769) ret = reg_write(gspca_dev, data[i][0], data[i][2],
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1770) data[i][1]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1771) if (ret < 0) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1772) gspca_err(gspca_dev, "Reg write failed for 0x%02x,0x%02x,0x%02x\n",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1773) data[i][0], data[i][1], data[i][2]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1774) return ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1775) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1776) i++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1777) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1778) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1779) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1780)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1781) static void setbrightness(struct gspca_dev *gspca_dev, s32 val)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1782) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1783) reg_write(gspca_dev, SPCA501_REG_CCDSP, 0x12, val);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1784) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1785)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1786) static void setcontrast(struct gspca_dev *gspca_dev, s32 val)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1787) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1788) reg_write(gspca_dev, 0x00, 0x00, (val >> 8) & 0xff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1789) reg_write(gspca_dev, 0x00, 0x01, val & 0xff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1790) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1791)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1792) static void setcolors(struct gspca_dev *gspca_dev, s32 val)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1793) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1794) reg_write(gspca_dev, SPCA501_REG_CCDSP, 0x0c, val);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1795) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1796)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1797) static void setblue_balance(struct gspca_dev *gspca_dev, s32 val)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1798) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1799) reg_write(gspca_dev, SPCA501_REG_CCDSP, 0x11, val);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1800) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1801)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1802) static void setred_balance(struct gspca_dev *gspca_dev, s32 val)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1803) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1804) reg_write(gspca_dev, SPCA501_REG_CCDSP, 0x13, val);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1805) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1806)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1807) /* this function is called at probe time */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1808) static int sd_config(struct gspca_dev *gspca_dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1809) const struct usb_device_id *id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1810) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1811) struct sd *sd = (struct sd *) gspca_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1812) struct cam *cam;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1813)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1814) cam = &gspca_dev->cam;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1815) cam->cam_mode = vga_mode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1816) cam->nmodes = ARRAY_SIZE(vga_mode);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1817) sd->subtype = id->driver_info;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1818)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1819) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1820) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1821)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1822) /* this function is called at probe and resume time */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1823) static int sd_init(struct gspca_dev *gspca_dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1824) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1825) struct sd *sd = (struct sd *) gspca_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1826)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1827) switch (sd->subtype) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1828) case Arowana300KCMOSCamera:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1829) case SmileIntlCamera:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1830) /* Arowana 300k CMOS Camera data */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1831) if (write_vector(gspca_dev, spca501c_arowana_init_data))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1832) goto error;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1833) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1834) case MystFromOriUnknownCamera:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1835) /* Unknown Ori CMOS Camera data */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1836) if (write_vector(gspca_dev, spca501c_mysterious_open_data))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1837) goto error;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1838) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1839) default:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1840) /* generic spca501 init data */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1841) if (write_vector(gspca_dev, spca501_init_data))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1842) goto error;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1843) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1844) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1845) gspca_dbg(gspca_dev, D_STREAM, "Initializing SPCA501 finished\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1846) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1847) error:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1848) return -EINVAL;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1849) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1850)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1851) static int sd_start(struct gspca_dev *gspca_dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1852) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1853) struct sd *sd = (struct sd *) gspca_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1854) int mode;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1855)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1856) switch (sd->subtype) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1857) case ThreeComHomeConnectLite:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1858) /* Special handling for 3com data */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1859) write_vector(gspca_dev, spca501_3com_open_data);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1860) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1861) case Arowana300KCMOSCamera:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1862) case SmileIntlCamera:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1863) /* Arowana 300k CMOS Camera data */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1864) write_vector(gspca_dev, spca501c_arowana_open_data);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1865) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1866) case MystFromOriUnknownCamera:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1867) /* Unknown CMOS Camera data */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1868) write_vector(gspca_dev, spca501c_mysterious_init_data);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1869) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1870) default:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1871) /* Generic 501 open data */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1872) write_vector(gspca_dev, spca501_open_data);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1873) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1874)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1875) /* memorize the wanted pixel format */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1876) mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1877)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1878) /* Enable ISO packet machine CTRL reg=2,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1879) * index=1 bitmask=0x2 (bit ordinal 1) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1880) reg_write(gspca_dev, SPCA50X_REG_USB, 0x6, 0x94);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1881) switch (mode) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1882) case 0: /* 640x480 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1883) reg_write(gspca_dev, SPCA50X_REG_USB, 0x07, 0x004a);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1884) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1885) case 1: /* 320x240 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1886) reg_write(gspca_dev, SPCA50X_REG_USB, 0x07, 0x104a);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1887) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1888) default:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1889) /* case 2: * 160x120 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1890) reg_write(gspca_dev, SPCA50X_REG_USB, 0x07, 0x204a);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1891) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1892) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1893) reg_write(gspca_dev, SPCA501_REG_CTLRL, 0x01, 0x02);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1894)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1895) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1896) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1897)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1898) static void sd_stopN(struct gspca_dev *gspca_dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1899) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1900) /* Disable ISO packet
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1901) * machine CTRL reg=2, index=1 bitmask=0x0 (bit ordinal 1) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1902) reg_write(gspca_dev, SPCA501_REG_CTLRL, 0x01, 0x00);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1903) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1904)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1905) /* called on streamoff with alt 0 and on disconnect */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1906) static void sd_stop0(struct gspca_dev *gspca_dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1907) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1908) if (!gspca_dev->present)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1909) return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1910) reg_write(gspca_dev, SPCA501_REG_CTLRL, 0x05, 0x00);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1911) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1912)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1913) static void sd_pkt_scan(struct gspca_dev *gspca_dev,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1914) u8 *data, /* isoc packet */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1915) int len) /* iso packet length */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1916) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1917) switch (data[0]) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1918) case 0: /* start of frame */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1919) gspca_frame_add(gspca_dev, LAST_PACKET, NULL, 0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1920) data += SPCA501_OFFSET_DATA;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1921) len -= SPCA501_OFFSET_DATA;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1922) gspca_frame_add(gspca_dev, FIRST_PACKET, data, len);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1923) return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1924) case 0xff: /* drop */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1925) /* gspca_dev->last_packet_type = DISCARD_PACKET; */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1926) return;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1927) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1928) data++;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1929) len--;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1930) gspca_frame_add(gspca_dev, INTER_PACKET, data, len);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1931) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1932)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1933) static int sd_s_ctrl(struct v4l2_ctrl *ctrl)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1934) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1935) struct gspca_dev *gspca_dev =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1936) container_of(ctrl->handler, struct gspca_dev, ctrl_handler);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1937)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1938) gspca_dev->usb_err = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1939)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1940) if (!gspca_dev->streaming)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1941) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1942)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1943) switch (ctrl->id) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1944) case V4L2_CID_BRIGHTNESS:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1945) setbrightness(gspca_dev, ctrl->val);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1946) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1947) case V4L2_CID_CONTRAST:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1948) setcontrast(gspca_dev, ctrl->val);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1949) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1950) case V4L2_CID_SATURATION:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1951) setcolors(gspca_dev, ctrl->val);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1952) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1953) case V4L2_CID_BLUE_BALANCE:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1954) setblue_balance(gspca_dev, ctrl->val);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1955) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1956) case V4L2_CID_RED_BALANCE:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1957) setred_balance(gspca_dev, ctrl->val);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1958) break;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1959) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1960) return gspca_dev->usb_err;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1961) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1962)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1963) static const struct v4l2_ctrl_ops sd_ctrl_ops = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1964) .s_ctrl = sd_s_ctrl,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1965) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1966)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1967) static int sd_init_controls(struct gspca_dev *gspca_dev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1968) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1969) struct v4l2_ctrl_handler *hdl = &gspca_dev->ctrl_handler;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1970)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1971) gspca_dev->vdev.ctrl_handler = hdl;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1972) v4l2_ctrl_handler_init(hdl, 5);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1973) v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1974) V4L2_CID_BRIGHTNESS, 0, 127, 1, 0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1975) v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1976) V4L2_CID_CONTRAST, 0, 64725, 1, 64725);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1977) v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1978) V4L2_CID_SATURATION, 0, 63, 1, 20);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1979) v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1980) V4L2_CID_BLUE_BALANCE, 0, 127, 1, 0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1981) v4l2_ctrl_new_std(hdl, &sd_ctrl_ops,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1982) V4L2_CID_RED_BALANCE, 0, 127, 1, 0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1983)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1984) if (hdl->error) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1985) pr_err("Could not initialize controls\n");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1986) return hdl->error;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1987) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1988) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1989) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1990)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1991) /* sub-driver description */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1992) static const struct sd_desc sd_desc = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1993) .name = MODULE_NAME,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1994) .config = sd_config,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1995) .init = sd_init,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1996) .init_controls = sd_init_controls,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1997) .start = sd_start,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1998) .stopN = sd_stopN,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1999) .stop0 = sd_stop0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2000) .pkt_scan = sd_pkt_scan,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2001) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2002)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2003) /* -- module initialisation -- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2004) static const struct usb_device_id device_table[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2005) {USB_DEVICE(0x040a, 0x0002), .driver_info = KodakDVC325},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2006) {USB_DEVICE(0x0497, 0xc001), .driver_info = SmileIntlCamera},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2007) {USB_DEVICE(0x0506, 0x00df), .driver_info = ThreeComHomeConnectLite},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2008) {USB_DEVICE(0x0733, 0x0401), .driver_info = IntelCreateAndShare},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2009) {USB_DEVICE(0x0733, 0x0402), .driver_info = ViewQuestM318B},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2010) {USB_DEVICE(0x1776, 0x501c), .driver_info = Arowana300KCMOSCamera},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2011) {USB_DEVICE(0x0000, 0x0000), .driver_info = MystFromOriUnknownCamera},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2012) {}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2013) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2014) MODULE_DEVICE_TABLE(usb, device_table);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2015)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2016) /* -- device connect -- */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2017) static int sd_probe(struct usb_interface *intf,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2018) const struct usb_device_id *id)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2019) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2020) return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2021) THIS_MODULE);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2022) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2023)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2024) static struct usb_driver sd_driver = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2025) .name = MODULE_NAME,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2026) .id_table = device_table,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2027) .probe = sd_probe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2028) .disconnect = gspca_disconnect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2029) #ifdef CONFIG_PM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2030) .suspend = gspca_suspend,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2031) .resume = gspca_resume,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2032) .reset_resume = gspca_resume,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2033) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2034) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2035)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2036) module_usb_driver(sd_driver);