mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 08:31:55 +00:00
[media] gspca: Fix coding style issues
The errors were found by checkpatch.pl. Most fixes are: - remove spaces followed by TAB(s), - split lines greater than 80 characters, - move most '{'s from start of line to end of previous line. (Some '{'s at start of line remain when the '}'s are on the same line) Signed-off-by: Jean-François Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
76ad3b684a
commit
780e312175
@ -152,7 +152,8 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
|
||||
reg_w(gspca_dev, 0x003c, 0x0005);
|
||||
reg_w(gspca_dev, 0x003c, 0x0006);
|
||||
reg_w(gspca_dev, 0x003c, 0x0007);
|
||||
usb_set_interface(gspca_dev->dev, gspca_dev->iface, gspca_dev->nbalt - 1);
|
||||
usb_set_interface(gspca_dev->dev, gspca_dev->iface,
|
||||
gspca_dev->nbalt - 1);
|
||||
}
|
||||
|
||||
static void sd_pkt_scan(struct gspca_dev *gspca_dev,
|
||||
|
@ -687,7 +687,7 @@ static void cx11646_jpeg(struct gspca_dev*gspca_dev)
|
||||
reg_w_val(gspca_dev, 0x00c0, 0x00);
|
||||
reg_r(gspca_dev, 0x0001, 1);
|
||||
length = 8;
|
||||
switch (gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv) {
|
||||
switch (gspca_dev->cam.cam_mode[gspca_dev->curr_mode].priv) {
|
||||
case 0:
|
||||
for (i = 0; i < 27; i++) {
|
||||
if (i == 26)
|
||||
@ -901,7 +901,7 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
|
||||
gspca_frame_add(gspca_dev, INTER_PACKET, data, len);
|
||||
}
|
||||
|
||||
static void setbrightness(struct gspca_dev*gspca_dev)
|
||||
static void setbrightness(struct gspca_dev *gspca_dev)
|
||||
{
|
||||
struct sd *sd = (struct sd *) gspca_dev;
|
||||
__u8 regE5cbx[] = { 0x88, 0x00, 0xd4, 0x01, 0x88, 0x01, 0x01, 0x01 };
|
||||
@ -924,7 +924,7 @@ static void setbrightness(struct gspca_dev*gspca_dev)
|
||||
reg_w_val(gspca_dev, 0x0070, reg70);
|
||||
}
|
||||
|
||||
static void setcontrast(struct gspca_dev*gspca_dev)
|
||||
static void setcontrast(struct gspca_dev *gspca_dev)
|
||||
{
|
||||
struct sd *sd = (struct sd *) gspca_dev;
|
||||
__u8 regE5acx[] = { 0x88, 0x0a, 0x0c, 0x01 }; /* seem MSB */
|
||||
|
@ -710,9 +710,9 @@ static void Et_setgainG(struct gspca_dev *gspca_dev, __u8 gain)
|
||||
}
|
||||
|
||||
#define BLIMIT(bright) \
|
||||
(__u8)((bright > 0x1f)?0x1f:((bright < 4)?3:bright))
|
||||
(u8)((bright > 0x1f) ? 0x1f : ((bright < 4) ? 3 : bright))
|
||||
#define LIMIT(color) \
|
||||
(unsigned char)((color > 0xff)?0xff:((color < 0)?0:color))
|
||||
(u8)((color > 0xff) ? 0xff : ((color < 0) ? 0 : color))
|
||||
|
||||
static void do_autogain(struct gspca_dev *gspca_dev)
|
||||
{
|
||||
|
@ -69,15 +69,15 @@ static u8 dat_multi5[] = { 0x8c, 0xa1, 0x03 };
|
||||
static u8 dat_multi6[] = { 0x90, 0x00, 0x05 };
|
||||
|
||||
static struct validx tbl_init_at_startup[] = {
|
||||
{0x0000, 0x0000}, {0x0010, 0x0010}, {0x0008, 0x00c0}, {0x0001,0x00c1},
|
||||
{0x0000, 0x0000}, {0x0010, 0x0010}, {0x0008, 0x00c0}, {0x0001, 0x00c1},
|
||||
{0x0001, 0x00c2}, {0x0020, 0x0006}, {0x006a, 0x000d},
|
||||
{53, 0xffff},
|
||||
{0x0040, 0x0000}, {0x0063, 0x0006},
|
||||
};
|
||||
|
||||
static struct validx tbl_common_0B[] = {
|
||||
{0x0002, 0x0004}, {0x006a, 0x0007}, {0x00ef, 0x0006}, {0x006a,0x000d},
|
||||
{0x0000, 0x00c0}, {0x0010, 0x0010}, {0x0003, 0x00c1}, {0x0042,0x00c2},
|
||||
{0x0002, 0x0004}, {0x006a, 0x0007}, {0x00ef, 0x0006}, {0x006a, 0x000d},
|
||||
{0x0000, 0x00c0}, {0x0010, 0x0010}, {0x0003, 0x00c1}, {0x0042, 0x00c2},
|
||||
{0x0004, 0x00d8}, {0x0000, 0x0058}, {0x0041, 0x0000},
|
||||
};
|
||||
|
||||
|
@ -1358,7 +1358,7 @@ static int vidioc_queryctrl(struct file *file, void *priv,
|
||||
continue;
|
||||
if (idx >= 0
|
||||
&& gspca_dev->sd_desc->ctrls[i].qctrl.id
|
||||
> gspca_dev->sd_desc->ctrls[idx].qctrl.id)
|
||||
> gspca_dev->sd_desc->ctrls[idx].qctrl.id)
|
||||
continue;
|
||||
idx = i;
|
||||
}
|
||||
|
@ -89,7 +89,7 @@ static const struct ctrl sd_ctrls[] = {
|
||||
{
|
||||
.id = V4L2_CID_CONTRAST,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "contrast",
|
||||
.name = "Contrast",
|
||||
.minimum = 0,
|
||||
.maximum = 9,
|
||||
.step = 4,
|
||||
@ -121,7 +121,7 @@ static const struct ctrl sd_ctrls[] = {
|
||||
{
|
||||
.id = V4L2_CID_WHITE_BALANCE_TEMPERATURE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "Whitebalance ",
|
||||
.name = "White Balance",
|
||||
.minimum = 0,
|
||||
.maximum = 33,
|
||||
.step = 1,
|
||||
|
@ -109,14 +109,14 @@ static const struct ctrl mt9m111_ctrls[] = {
|
||||
#define GREEN_BALANCE_IDX 4
|
||||
{
|
||||
{
|
||||
.id = M5602_V4L2_CID_GREEN_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "green balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0x7ff,
|
||||
.step = 0x1,
|
||||
.default_value = MT9M111_GREEN_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.id = M5602_V4L2_CID_GREEN_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "green balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0x7ff,
|
||||
.step = 0x1,
|
||||
.default_value = MT9M111_GREEN_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = mt9m111_set_green_balance,
|
||||
.get = mt9m111_get_green_balance
|
||||
@ -124,14 +124,14 @@ static const struct ctrl mt9m111_ctrls[] = {
|
||||
#define BLUE_BALANCE_IDX 5
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_BLUE_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "blue balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0x7ff,
|
||||
.step = 0x1,
|
||||
.default_value = MT9M111_BLUE_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.id = V4L2_CID_BLUE_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "blue balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0x7ff,
|
||||
.step = 0x1,
|
||||
.default_value = MT9M111_BLUE_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = mt9m111_set_blue_balance,
|
||||
.get = mt9m111_get_blue_balance
|
||||
@ -139,14 +139,14 @@ static const struct ctrl mt9m111_ctrls[] = {
|
||||
#define RED_BALANCE_IDX 5
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_RED_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "red balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0x7ff,
|
||||
.step = 0x1,
|
||||
.default_value = MT9M111_RED_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.id = V4L2_CID_RED_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "red balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0x7ff,
|
||||
.step = 0x1,
|
||||
.default_value = MT9M111_RED_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = mt9m111_set_red_balance,
|
||||
.get = mt9m111_get_red_balance
|
||||
|
@ -70,7 +70,7 @@
|
||||
#define MT9M111_COLORPIPE 0x01
|
||||
#define MT9M111_CAMERA_CONTROL 0x02
|
||||
|
||||
#define MT9M111_RESET (1 << 0)
|
||||
#define MT9M111_RESET (1 << 0)
|
||||
#define MT9M111_RESTART (1 << 1)
|
||||
#define MT9M111_ANALOG_STANDBY (1 << 2)
|
||||
#define MT9M111_CHIP_ENABLE (1 << 3)
|
||||
@ -97,7 +97,7 @@
|
||||
#define MT9M111_2D_DEFECT_CORRECTION_ENABLE (1 << 0)
|
||||
|
||||
#define INITIAL_MAX_GAIN 64
|
||||
#define MT9M111_DEFAULT_GAIN 283
|
||||
#define MT9M111_DEFAULT_GAIN 283
|
||||
#define MT9M111_GREEN_GAIN_DEFAULT 0x20
|
||||
#define MT9M111_BLUE_GAIN_DEFAULT 0x20
|
||||
#define MT9M111_RED_GAIN_DEFAULT 0x20
|
||||
@ -125,8 +125,7 @@ static const struct m5602_sensor mt9m111 = {
|
||||
.start = mt9m111_start,
|
||||
};
|
||||
|
||||
static const unsigned char preinit_mt9m111[][4] =
|
||||
{
|
||||
static const unsigned char preinit_mt9m111[][4] = {
|
||||
{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02, 0x00},
|
||||
{BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0, 0x00},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
|
||||
@ -165,8 +164,7 @@ static const unsigned char preinit_mt9m111[][4] =
|
||||
{BRIDGE, M5602_XB_I2C_CLK_DIV, 0x0a, 0x00}
|
||||
};
|
||||
|
||||
static const unsigned char init_mt9m111[][4] =
|
||||
{
|
||||
static const unsigned char init_mt9m111[][4] = {
|
||||
{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02, 0x00},
|
||||
{BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0, 0x00},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
|
||||
@ -257,8 +255,7 @@ static const unsigned char init_mt9m111[][4] =
|
||||
{SENSOR, MT9M111_SC_SHUTTER_WIDTH, 0x01, 0x90},
|
||||
};
|
||||
|
||||
static const unsigned char start_mt9m111[][4] =
|
||||
{
|
||||
static const unsigned char start_mt9m111[][4] = {
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
|
||||
{BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
|
||||
@ -271,5 +268,4 @@ static const unsigned char start_mt9m111[][4] =
|
||||
{BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
|
||||
{BRIDGE, M5602_XB_VSYNC_PARA, 0x00, 0x00},
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -54,13 +54,13 @@ static const struct ctrl ov7660_ctrls[] = {
|
||||
#define AUTO_WHITE_BALANCE_IDX 4
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_AUTO_WHITE_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto white balance",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
.id = V4L2_CID_AUTO_WHITE_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto white balance",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
},
|
||||
.set = ov7660_set_auto_white_balance,
|
||||
.get = ov7660_get_auto_white_balance
|
||||
@ -68,13 +68,13 @@ static const struct ctrl ov7660_ctrls[] = {
|
||||
#define AUTO_GAIN_CTRL_IDX 5
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_AUTOGAIN,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto gain control",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
.id = V4L2_CID_AUTOGAIN,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto gain control",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
},
|
||||
.set = ov7660_set_auto_gain,
|
||||
.get = ov7660_get_auto_gain
|
||||
@ -82,13 +82,13 @@ static const struct ctrl ov7660_ctrls[] = {
|
||||
#define AUTO_EXPOSURE_IDX 6
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_EXPOSURE_AUTO,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto exposure",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
.id = V4L2_CID_EXPOSURE_AUTO,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto exposure",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
},
|
||||
.set = ov7660_set_auto_exposure,
|
||||
.get = ov7660_get_auto_exposure
|
||||
@ -96,13 +96,13 @@ static const struct ctrl ov7660_ctrls[] = {
|
||||
#define HFLIP_IDX 7
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_HFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "horizontal flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
.id = V4L2_CID_HFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "horizontal flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
},
|
||||
.set = ov7660_set_hflip,
|
||||
.get = ov7660_get_hflip
|
||||
@ -110,13 +110,13 @@ static const struct ctrl ov7660_ctrls[] = {
|
||||
#define VFLIP_IDX 8
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_VFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "vertical flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
.id = V4L2_CID_VFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "vertical flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
},
|
||||
.set = ov7660_set_vflip,
|
||||
.get = ov7660_get_vflip
|
||||
|
@ -80,7 +80,7 @@
|
||||
|
||||
#define OV7660_DEFAULT_GAIN 0x0e
|
||||
#define OV7660_DEFAULT_RED_GAIN 0x80
|
||||
#define OV7660_DEFAULT_BLUE_GAIN 0x80
|
||||
#define OV7660_DEFAULT_BLUE_GAIN 0x80
|
||||
#define OV7660_DEFAULT_SATURATION 0x00
|
||||
#define OV7660_DEFAULT_EXPOSURE 0x20
|
||||
|
||||
@ -105,8 +105,7 @@ static const struct m5602_sensor ov7660 = {
|
||||
.disconnect = ov7660_disconnect,
|
||||
};
|
||||
|
||||
static const unsigned char preinit_ov7660[][4] =
|
||||
{
|
||||
static const unsigned char preinit_ov7660[][4] = {
|
||||
{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02},
|
||||
{BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
|
||||
@ -140,8 +139,7 @@ static const unsigned char preinit_ov7660[][4] =
|
||||
{BRIDGE, M5602_XB_GPIO_EN_L, 0x00}
|
||||
};
|
||||
|
||||
static const unsigned char init_ov7660[][4] =
|
||||
{
|
||||
static const unsigned char init_ov7660[][4] = {
|
||||
{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02},
|
||||
{BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
|
||||
@ -259,5 +257,4 @@ static const unsigned char init_ov7660[][4] =
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0},
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -121,8 +121,8 @@ static const struct ctrl ov9650_ctrls[] = {
|
||||
.minimum = 0x00,
|
||||
.maximum = 0x1ff,
|
||||
.step = 0x4,
|
||||
.default_value = EXPOSURE_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.default_value = EXPOSURE_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = ov9650_set_exposure,
|
||||
.get = ov9650_get_exposure
|
||||
@ -146,13 +146,13 @@ static const struct ctrl ov9650_ctrls[] = {
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_RED_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "red balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = RED_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "red balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = RED_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = ov9650_set_red_balance,
|
||||
.get = ov9650_get_red_balance
|
||||
@ -161,13 +161,13 @@ static const struct ctrl ov9650_ctrls[] = {
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_BLUE_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "blue balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = BLUE_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "blue balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = BLUE_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = ov9650_set_blue_balance,
|
||||
.get = ov9650_get_blue_balance
|
||||
@ -175,13 +175,13 @@ static const struct ctrl ov9650_ctrls[] = {
|
||||
#define HFLIP_IDX 4
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_HFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "horizontal flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
.id = V4L2_CID_HFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "horizontal flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
},
|
||||
.set = ov9650_set_hflip,
|
||||
.get = ov9650_get_hflip
|
||||
@ -189,13 +189,13 @@ static const struct ctrl ov9650_ctrls[] = {
|
||||
#define VFLIP_IDX 5
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_VFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "vertical flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
.id = V4L2_CID_VFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "vertical flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
},
|
||||
.set = ov9650_set_vflip,
|
||||
.get = ov9650_get_vflip
|
||||
@ -203,13 +203,13 @@ static const struct ctrl ov9650_ctrls[] = {
|
||||
#define AUTO_WHITE_BALANCE_IDX 6
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_AUTO_WHITE_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto white balance",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
.id = V4L2_CID_AUTO_WHITE_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto white balance",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
},
|
||||
.set = ov9650_set_auto_white_balance,
|
||||
.get = ov9650_get_auto_white_balance
|
||||
@ -217,13 +217,13 @@ static const struct ctrl ov9650_ctrls[] = {
|
||||
#define AUTO_GAIN_CTRL_IDX 7
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_AUTOGAIN,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto gain control",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
.id = V4L2_CID_AUTOGAIN,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto gain control",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
},
|
||||
.set = ov9650_set_auto_gain,
|
||||
.get = ov9650_get_auto_gain
|
||||
@ -231,13 +231,13 @@ static const struct ctrl ov9650_ctrls[] = {
|
||||
#define AUTO_EXPOSURE_IDX 8
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_EXPOSURE_AUTO,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto exposure",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
.id = V4L2_CID_EXPOSURE_AUTO,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto exposure",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 1
|
||||
},
|
||||
.set = ov9650_set_auto_exposure,
|
||||
.get = ov9650_get_auto_exposure
|
||||
|
@ -110,7 +110,7 @@
|
||||
|
||||
#define OV9650_VARIOPIXEL (1 << 2)
|
||||
#define OV9650_SYSTEM_CLK_SEL (1 << 7)
|
||||
#define OV9650_SLAM_MODE (1 << 4)
|
||||
#define OV9650_SLAM_MODE (1 << 4)
|
||||
|
||||
#define OV9650_QVGA_VARIOPIXEL (1 << 7)
|
||||
|
||||
@ -154,8 +154,7 @@ static const struct m5602_sensor ov9650 = {
|
||||
.disconnect = ov9650_disconnect,
|
||||
};
|
||||
|
||||
static const unsigned char preinit_ov9650[][3] =
|
||||
{
|
||||
static const unsigned char preinit_ov9650[][3] = {
|
||||
/* [INITCAM] */
|
||||
{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02},
|
||||
{BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0},
|
||||
@ -180,8 +179,7 @@ static const unsigned char preinit_ov9650[][3] =
|
||||
{SENSOR, OV9650_OFON, 0x40}
|
||||
};
|
||||
|
||||
static const unsigned char init_ov9650[][3] =
|
||||
{
|
||||
static const unsigned char init_ov9650[][3] = {
|
||||
/* [INITCAM] */
|
||||
{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02},
|
||||
{BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0},
|
||||
@ -297,8 +295,7 @@ static const unsigned char init_ov9650[][3] =
|
||||
{SENSOR, OV9650_COM2, OV9650_SOFT_SLEEP | OV9650_OUTPUT_DRIVE_2X},
|
||||
};
|
||||
|
||||
static const unsigned char res_init_ov9650[][3] =
|
||||
{
|
||||
static const unsigned char res_init_ov9650[][3] = {
|
||||
{SENSOR, OV9650_COM2, OV9650_OUTPUT_DRIVE_2X},
|
||||
|
||||
{BRIDGE, M5602_XB_LINE_OF_FRAME_H, 0x82},
|
||||
@ -307,5 +304,4 @@ static const unsigned char res_init_ov9650[][3] =
|
||||
{BRIDGE, M5602_XB_PIX_OF_LINE_L, 0x00},
|
||||
{BRIDGE, M5602_XB_SIG_INI, 0x01}
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -58,14 +58,14 @@ static const struct ctrl po1030_ctrls[] = {
|
||||
#define GAIN_IDX 0
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_GAIN,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "gain",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0x4f,
|
||||
.step = 0x1,
|
||||
.default_value = PO1030_GLOBAL_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.id = V4L2_CID_GAIN,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "gain",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0x4f,
|
||||
.step = 0x1,
|
||||
.default_value = PO1030_GLOBAL_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = po1030_set_gain,
|
||||
.get = po1030_get_gain
|
||||
@ -73,14 +73,14 @@ static const struct ctrl po1030_ctrls[] = {
|
||||
#define EXPOSURE_IDX 1
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_EXPOSURE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "exposure",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0x02ff,
|
||||
.step = 0x1,
|
||||
.default_value = PO1030_EXPOSURE_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.id = V4L2_CID_EXPOSURE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "exposure",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0x02ff,
|
||||
.step = 0x1,
|
||||
.default_value = PO1030_EXPOSURE_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = po1030_set_exposure,
|
||||
.get = po1030_get_exposure
|
||||
@ -88,14 +88,14 @@ static const struct ctrl po1030_ctrls[] = {
|
||||
#define RED_BALANCE_IDX 2
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_RED_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "red balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = PO1030_RED_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.id = V4L2_CID_RED_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "red balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = PO1030_RED_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = po1030_set_red_balance,
|
||||
.get = po1030_get_red_balance
|
||||
@ -103,14 +103,14 @@ static const struct ctrl po1030_ctrls[] = {
|
||||
#define BLUE_BALANCE_IDX 3
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_BLUE_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "blue balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = PO1030_BLUE_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.id = V4L2_CID_BLUE_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "blue balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = PO1030_BLUE_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = po1030_set_blue_balance,
|
||||
.get = po1030_get_blue_balance
|
||||
@ -118,13 +118,13 @@ static const struct ctrl po1030_ctrls[] = {
|
||||
#define HFLIP_IDX 4
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_HFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "horizontal flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0,
|
||||
.id = V4L2_CID_HFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "horizontal flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0,
|
||||
},
|
||||
.set = po1030_set_hflip,
|
||||
.get = po1030_get_hflip
|
||||
@ -132,13 +132,13 @@ static const struct ctrl po1030_ctrls[] = {
|
||||
#define VFLIP_IDX 5
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_VFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "vertical flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0,
|
||||
.id = V4L2_CID_VFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "vertical flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0,
|
||||
},
|
||||
.set = po1030_set_vflip,
|
||||
.get = po1030_get_vflip
|
||||
@ -146,13 +146,13 @@ static const struct ctrl po1030_ctrls[] = {
|
||||
#define AUTO_WHITE_BALANCE_IDX 6
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_AUTO_WHITE_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto white balance",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0,
|
||||
.id = V4L2_CID_AUTO_WHITE_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto white balance",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0,
|
||||
},
|
||||
.set = po1030_set_auto_white_balance,
|
||||
.get = po1030_get_auto_white_balance
|
||||
@ -160,13 +160,13 @@ static const struct ctrl po1030_ctrls[] = {
|
||||
#define AUTO_EXPOSURE_IDX 7
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_EXPOSURE_AUTO,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto exposure",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0,
|
||||
.id = V4L2_CID_EXPOSURE_AUTO,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "auto exposure",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0,
|
||||
},
|
||||
.set = po1030_set_auto_exposure,
|
||||
.get = po1030_get_auto_exposure
|
||||
@ -174,14 +174,14 @@ static const struct ctrl po1030_ctrls[] = {
|
||||
#define GREEN_BALANCE_IDX 8
|
||||
{
|
||||
{
|
||||
.id = M5602_V4L2_CID_GREEN_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "green balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = PO1030_GREEN_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.id = M5602_V4L2_CID_GREEN_BALANCE,
|
||||
.type = V4L2_CTRL_TYPE_INTEGER,
|
||||
.name = "green balance",
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = PO1030_GREEN_GAIN_DEFAULT,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = po1030_set_green_balance,
|
||||
.get = po1030_get_green_balance
|
||||
|
@ -139,9 +139,9 @@
|
||||
|
||||
#define PO1030_GLOBAL_GAIN_DEFAULT 0x12
|
||||
#define PO1030_EXPOSURE_DEFAULT 0x0085
|
||||
#define PO1030_BLUE_GAIN_DEFAULT 0x36
|
||||
#define PO1030_RED_GAIN_DEFAULT 0x36
|
||||
#define PO1030_GREEN_GAIN_DEFAULT 0x40
|
||||
#define PO1030_BLUE_GAIN_DEFAULT 0x36
|
||||
#define PO1030_RED_GAIN_DEFAULT 0x36
|
||||
#define PO1030_GREEN_GAIN_DEFAULT 0x40
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
@ -166,8 +166,7 @@ static const struct m5602_sensor po1030 = {
|
||||
.disconnect = po1030_disconnect,
|
||||
};
|
||||
|
||||
static const unsigned char preinit_po1030[][3] =
|
||||
{
|
||||
static const unsigned char preinit_po1030[][3] = {
|
||||
{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02},
|
||||
{BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
|
||||
@ -193,8 +192,7 @@ static const unsigned char preinit_po1030[][3] =
|
||||
{BRIDGE, M5602_XB_GPIO_DAT, 0x00}
|
||||
};
|
||||
|
||||
static const unsigned char init_po1030[][3] =
|
||||
{
|
||||
static const unsigned char init_po1030[][3] = {
|
||||
{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02},
|
||||
{BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00},
|
||||
@ -271,5 +269,4 @@ static const unsigned char init_po1030[][3] =
|
||||
{BRIDGE, M5602_XB_GPIO_EN_H, 0x06},
|
||||
{BRIDGE, M5602_XB_GPIO_EN_L, 0x00},
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -143,13 +143,13 @@ static const struct ctrl s5k4aa_ctrls[] = {
|
||||
#define VFLIP_IDX 0
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_VFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "vertical flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
.id = V4L2_CID_VFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "vertical flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
},
|
||||
.set = s5k4aa_set_vflip,
|
||||
.get = s5k4aa_get_vflip
|
||||
@ -157,13 +157,13 @@ static const struct ctrl s5k4aa_ctrls[] = {
|
||||
#define HFLIP_IDX 1
|
||||
{
|
||||
{
|
||||
.id = V4L2_CID_HFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "horizontal flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
.id = V4L2_CID_HFLIP,
|
||||
.type = V4L2_CTRL_TYPE_BOOLEAN,
|
||||
.name = "horizontal flip",
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
},
|
||||
.set = s5k4aa_set_hflip,
|
||||
.get = s5k4aa_get_hflip
|
||||
|
@ -83,8 +83,7 @@ static const struct m5602_sensor s5k4aa = {
|
||||
.disconnect = s5k4aa_disconnect,
|
||||
};
|
||||
|
||||
static const unsigned char preinit_s5k4aa[][4] =
|
||||
{
|
||||
static const unsigned char preinit_s5k4aa[][4] = {
|
||||
{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02, 0x00},
|
||||
{BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0, 0x00},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
|
||||
@ -127,8 +126,7 @@ static const unsigned char preinit_s5k4aa[][4] =
|
||||
{SENSOR, S5K4AA_PAGE_MAP, 0x00, 0x00}
|
||||
};
|
||||
|
||||
static const unsigned char init_s5k4aa[][4] =
|
||||
{
|
||||
static const unsigned char init_s5k4aa[][4] = {
|
||||
{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02, 0x00},
|
||||
{BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0, 0x00},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
|
||||
@ -179,8 +177,7 @@ static const unsigned char init_s5k4aa[][4] =
|
||||
{SENSOR, 0x37, 0x00, 0x00},
|
||||
};
|
||||
|
||||
static const unsigned char VGA_s5k4aa[][4] =
|
||||
{
|
||||
static const unsigned char VGA_s5k4aa[][4] = {
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
|
||||
{BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
|
||||
@ -235,8 +232,7 @@ static const unsigned char VGA_s5k4aa[][4] =
|
||||
{SENSOR, 0x02, 0x0e, 0x00},
|
||||
};
|
||||
|
||||
static const unsigned char SXGA_s5k4aa[][4] =
|
||||
{
|
||||
static const unsigned char SXGA_s5k4aa[][4] = {
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
|
||||
{BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
|
||||
@ -284,6 +280,4 @@ static const unsigned char SXGA_s5k4aa[][4] =
|
||||
{SENSOR, S5K4AA_PAGE_MAP, 0x02, 0x00},
|
||||
{SENSOR, 0x02, 0x0e, 0x00},
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -35,7 +35,7 @@
|
||||
#define S5K83A_MAXIMUM_EXPOSURE 0x3c
|
||||
#define S5K83A_FLIP_MASK 0x10
|
||||
#define S5K83A_GPIO_LED_MASK 0x10
|
||||
#define S5K83A_GPIO_ROTATION_MASK 0x40
|
||||
#define S5K83A_GPIO_ROTATION_MASK 0x40
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
@ -67,8 +67,7 @@ struct s5k83a_priv {
|
||||
s32 *settings;
|
||||
};
|
||||
|
||||
static const unsigned char preinit_s5k83a[][4] =
|
||||
{
|
||||
static const unsigned char preinit_s5k83a[][4] = {
|
||||
{BRIDGE, M5602_XB_MCU_CLK_DIV, 0x02, 0x00},
|
||||
{BRIDGE, M5602_XB_MCU_CLK_CTRL, 0xb0, 0x00},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
|
||||
@ -108,8 +107,7 @@ static const unsigned char preinit_s5k83a[][4] =
|
||||
/* This could probably be considerably shortened.
|
||||
I don't have the hardware to experiment with it, patches welcome
|
||||
*/
|
||||
static const unsigned char init_s5k83a[][4] =
|
||||
{
|
||||
static const unsigned char init_s5k83a[][4] = {
|
||||
/* The following sequence is useless after a clean boot
|
||||
but is necessary after resume from suspend */
|
||||
{BRIDGE, M5602_XB_GPIO_DIR, 0x1d, 0x00},
|
||||
@ -166,8 +164,7 @@ static const unsigned char init_s5k83a[][4] =
|
||||
{SENSOR, 0x00, 0x06, 0x00},
|
||||
};
|
||||
|
||||
static const unsigned char start_s5k83a[][4] =
|
||||
{
|
||||
static const unsigned char start_s5k83a[][4] = {
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x06, 0x00},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
|
||||
{BRIDGE, M5602_XB_ADC_CTRL, 0xc0, 0x00},
|
||||
@ -193,5 +190,4 @@ static const unsigned char start_s5k83a[][4] =
|
||||
{BRIDGE, M5602_XB_SEN_CLK_DIV, 0x00, 0x00},
|
||||
{BRIDGE, M5602_XB_SEN_CLK_CTRL, 0xb0, 0x00},
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -415,10 +415,10 @@ static const struct v4l2_pix_format ovfx2_ov3610_mode[] = {
|
||||
|
||||
/* Registers common to OV511 / OV518 */
|
||||
#define R51x_FIFO_PSIZE 0x30 /* 2 bytes wide w/ OV518(+) */
|
||||
#define R51x_SYS_RESET 0x50
|
||||
#define R51x_SYS_RESET 0x50
|
||||
/* Reset type flags */
|
||||
#define OV511_RESET_OMNICE 0x08
|
||||
#define R51x_SYS_INIT 0x53
|
||||
#define R51x_SYS_INIT 0x53
|
||||
#define R51x_SYS_SNAP 0x52
|
||||
#define R51x_SYS_CUST_ID 0x5F
|
||||
#define R51x_COMP_LUT_BEGIN 0x80
|
||||
@ -603,13 +603,11 @@ struct ov_i2c_regvals {
|
||||
};
|
||||
|
||||
/* Settings for OV2610 camera chip */
|
||||
static const struct ov_i2c_regvals norm_2610[] =
|
||||
{
|
||||
static const struct ov_i2c_regvals norm_2610[] = {
|
||||
{ 0x12, 0x80 }, /* reset */
|
||||
};
|
||||
|
||||
static const struct ov_i2c_regvals norm_3620b[] =
|
||||
{
|
||||
static const struct ov_i2c_regvals norm_3620b[] = {
|
||||
/*
|
||||
* From the datasheet: "Note that after writing to register COMH
|
||||
* (0x12) to change the sensor mode, registers related to the
|
||||
@ -2779,7 +2777,7 @@ static int ov511_configure(struct gspca_dev *gspca_dev)
|
||||
};
|
||||
|
||||
const struct ov_regvals norm_511[] = {
|
||||
{ R511_DRAM_FLOW_CTL, 0x01 },
|
||||
{ R511_DRAM_FLOW_CTL, 0x01 },
|
||||
{ R51x_SYS_SNAP, 0x00 },
|
||||
{ R51x_SYS_SNAP, 0x02 },
|
||||
{ R51x_SYS_SNAP, 0x00 },
|
||||
@ -2863,7 +2861,7 @@ static int ov518_configure(struct gspca_dev *gspca_dev)
|
||||
const struct ov_regvals norm_518[] = {
|
||||
{ R51x_SYS_SNAP, 0x02 }, /* Reset */
|
||||
{ R51x_SYS_SNAP, 0x01 }, /* Enable */
|
||||
{ 0x31, 0x0f },
|
||||
{ 0x31, 0x0f },
|
||||
{ 0x5d, 0x03 },
|
||||
{ 0x24, 0x9f },
|
||||
{ 0x25, 0x90 },
|
||||
@ -2876,7 +2874,7 @@ static int ov518_configure(struct gspca_dev *gspca_dev)
|
||||
const struct ov_regvals norm_518_p[] = {
|
||||
{ R51x_SYS_SNAP, 0x02 }, /* Reset */
|
||||
{ R51x_SYS_SNAP, 0x01 }, /* Enable */
|
||||
{ 0x31, 0x0f },
|
||||
{ 0x31, 0x0f },
|
||||
{ 0x5d, 0x03 },
|
||||
{ 0x24, 0x9f },
|
||||
{ 0x25, 0x90 },
|
||||
@ -3653,7 +3651,7 @@ static int mode_init_ov_sensor_regs(struct sd *sd)
|
||||
break;
|
||||
case SEN_OV7610:
|
||||
i2c_w_mask(sd, 0x14, qvga ? 0x20 : 0x00, 0x20);
|
||||
i2c_w(sd, 0x35, qvga?0x1e:0x9e);
|
||||
i2c_w(sd, 0x35, qvga ? 0x1e : 0x9e);
|
||||
i2c_w_mask(sd, 0x13, 0x00, 0x20); /* Select 16 bit data bus */
|
||||
i2c_w_mask(sd, 0x12, 0x04, 0x06); /* AWB: 1 Test pattern: 0 */
|
||||
break;
|
||||
|
@ -45,7 +45,7 @@ MODULE_LICENSE("GPL");
|
||||
|
||||
#define PAC207_GAIN_MIN 0
|
||||
#define PAC207_GAIN_MAX 31
|
||||
#define PAC207_GAIN_DEFAULT 9 /* power on default: 9 */
|
||||
#define PAC207_GAIN_DEFAULT 9 /* power on default: 9 */
|
||||
#define PAC207_GAIN_KNEE 31
|
||||
|
||||
#define PAC207_AUTOGAIN_DEADZONE 30
|
||||
|
@ -897,9 +897,8 @@ static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val)
|
||||
struct sd *sd = (struct sd *) gspca_dev;
|
||||
|
||||
sd->contrast = val;
|
||||
if (gspca_dev->streaming) {
|
||||
if (gspca_dev->streaming)
|
||||
setbrightcont(gspca_dev);
|
||||
}
|
||||
return gspca_dev->usb_err;
|
||||
}
|
||||
|
||||
|
@ -672,9 +672,8 @@ static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val)
|
||||
struct sd *sd = (struct sd *) gspca_dev;
|
||||
|
||||
sd->contrast = val;
|
||||
if (gspca_dev->streaming) {
|
||||
if (gspca_dev->streaming)
|
||||
setcontrast(gspca_dev);
|
||||
}
|
||||
return gspca_dev->usb_err;
|
||||
}
|
||||
|
||||
|
@ -1270,7 +1270,8 @@ static int soi968_init_sensor(struct gspca_dev *gspca_dev)
|
||||
}
|
||||
}
|
||||
/* disable hflip and vflip */
|
||||
gspca_dev->ctrl_dis = (1 << HFLIP_IDX) | (1 << VFLIP_IDX) | (1 << EXPOSURE_IDX);
|
||||
gspca_dev->ctrl_dis = (1 << HFLIP_IDX) | (1 << VFLIP_IDX)
|
||||
| (1 << EXPOSURE_IDX);
|
||||
sd->hstart = 60;
|
||||
sd->vstart = 11;
|
||||
return 0;
|
||||
@ -1349,7 +1350,9 @@ static int mt9v_init_sensor(struct gspca_dev *gspca_dev)
|
||||
return -ENODEV;
|
||||
}
|
||||
}
|
||||
gspca_dev->ctrl_dis = (1 << EXPOSURE_IDX) | (1 << AUTOGAIN_IDX) | (1 << GAIN_IDX);
|
||||
gspca_dev->ctrl_dis = (1 << EXPOSURE_IDX)
|
||||
| (1 << AUTOGAIN_IDX)
|
||||
| (1 << GAIN_IDX);
|
||||
sd->hstart = 2;
|
||||
sd->vstart = 2;
|
||||
sd->sensor = SENSOR_MT9V111;
|
||||
@ -1393,7 +1396,8 @@ static int mt9m112_init_sensor(struct gspca_dev *gspca_dev)
|
||||
return -ENODEV;
|
||||
}
|
||||
}
|
||||
gspca_dev->ctrl_dis = (1 << EXPOSURE_IDX) | (1 << AUTOGAIN_IDX) | (1 << GAIN_IDX);
|
||||
gspca_dev->ctrl_dis = (1 << EXPOSURE_IDX) | (1 << AUTOGAIN_IDX)
|
||||
| (1 << GAIN_IDX);
|
||||
sd->hstart = 0;
|
||||
sd->vstart = 2;
|
||||
return 0;
|
||||
@ -1410,7 +1414,8 @@ static int mt9m111_init_sensor(struct gspca_dev *gspca_dev)
|
||||
return -ENODEV;
|
||||
}
|
||||
}
|
||||
gspca_dev->ctrl_dis = (1 << EXPOSURE_IDX) | (1 << AUTOGAIN_IDX) | (1 << GAIN_IDX);
|
||||
gspca_dev->ctrl_dis = (1 << EXPOSURE_IDX) | (1 << AUTOGAIN_IDX)
|
||||
| (1 << GAIN_IDX);
|
||||
sd->hstart = 0;
|
||||
sd->vstart = 2;
|
||||
return 0;
|
||||
|
@ -323,10 +323,9 @@ static const __u8 initOv6650[] = {
|
||||
0x00, 0x01, 0x01, 0x0a, 0x16, 0x12, 0x68, 0x8b,
|
||||
0x10, 0x1d, 0x10, 0x02, 0x02, 0x09, 0x07
|
||||
};
|
||||
static const __u8 ov6650_sensor_init[][8] =
|
||||
{
|
||||
static const __u8 ov6650_sensor_init[][8] = {
|
||||
/* Bright, contrast, etc are set through SCBB interface.
|
||||
* AVCAP on win2 do not send any data on this controls. */
|
||||
* AVCAP on win2 do not send any data on this controls. */
|
||||
/* Anyway, some registers appears to alter bright and constrat */
|
||||
|
||||
/* Reset sensor */
|
||||
@ -544,7 +543,7 @@ static const __u8 initTas5130[] = {
|
||||
0x18, 0x10, 0x04, 0x03, 0x11, 0x0c
|
||||
};
|
||||
static const __u8 tas5130_sensor_init[][8] = {
|
||||
/* {0x30, 0x11, 0x00, 0x40, 0x47, 0x00, 0x00, 0x10},
|
||||
/* {0x30, 0x11, 0x00, 0x40, 0x47, 0x00, 0x00, 0x10},
|
||||
* shutter 0x47 short exposure? */
|
||||
{0x30, 0x11, 0x00, 0x40, 0x01, 0x00, 0x00, 0x10},
|
||||
/* shutter 0x01 long exposure */
|
||||
@ -861,7 +860,7 @@ static void setexposure(struct gspca_dev *gspca_dev)
|
||||
i2c[4] |= reg11 - 1;
|
||||
|
||||
/* If register 11 didn't change, don't change it */
|
||||
if (sd->reg11 == reg11 )
|
||||
if (sd->reg11 == reg11)
|
||||
i2c[0] = 0xa0;
|
||||
|
||||
if (i2c_w(gspca_dev, i2c) == 0)
|
||||
|
@ -321,6 +321,7 @@ static const __u32 ctrl_dis[] = {
|
||||
[SENSOR_PO2030N] = (1 << AUTOGAIN) |
|
||||
(1 << INFRARED) |
|
||||
(1 << FREQ),
|
||||
|
||||
[SENSOR_SOI768] = (1 << AUTOGAIN) |
|
||||
(1 << INFRARED) |
|
||||
(1 << HFLIP) |
|
||||
@ -1712,7 +1713,6 @@ static void ov7648_probe(struct gspca_dev *gspca_dev)
|
||||
sd->sensor = SENSOR_PO1030;
|
||||
return;
|
||||
}
|
||||
|
||||
err("Unknown sensor %04x", val);
|
||||
}
|
||||
|
||||
@ -2678,7 +2678,6 @@ static int sd_start(struct gspca_dev *gspca_dev)
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
/* here change size mode 0 -> VGA; 1 -> CIF */
|
||||
sd->reg18 = sn9c1xx[0x18] | (mode << 4) | 0x40;
|
||||
reg_w1(gspca_dev, 0x18, sd->reg18);
|
||||
|
@ -1724,7 +1724,7 @@ static const __u16 spca501c_mysterious_init_data[][3] = {
|
||||
{0x00, 0x0000, 0x0048},
|
||||
{0x00, 0x0000, 0x0049},
|
||||
{0x00, 0x0008, 0x004a},
|
||||
/* DSP Registers */
|
||||
/* DSP Registers */
|
||||
{0x01, 0x00a6, 0x0000},
|
||||
{0x01, 0x0028, 0x0001},
|
||||
{0x01, 0x0000, 0x0002},
|
||||
@ -1788,7 +1788,7 @@ static const __u16 spca501c_mysterious_init_data[][3] = {
|
||||
{0x05, 0x0022, 0x0004},
|
||||
{0x05, 0x0025, 0x0001},
|
||||
{0x05, 0x0000, 0x0000},
|
||||
/* Part 4 */
|
||||
/* Part 4 */
|
||||
{0x05, 0x0026, 0x0001},
|
||||
{0x05, 0x0001, 0x0000},
|
||||
{0x05, 0x0027, 0x0001},
|
||||
@ -1806,7 +1806,7 @@ static const __u16 spca501c_mysterious_init_data[][3] = {
|
||||
{0x05, 0x0001, 0x0000},
|
||||
{0x05, 0x0027, 0x0001},
|
||||
{0x05, 0x004e, 0x0000},
|
||||
/* Part 5 */
|
||||
/* Part 5 */
|
||||
{0x01, 0x0003, 0x003f},
|
||||
{0x01, 0x0001, 0x0056},
|
||||
{0x01, 0x000f, 0x0008},
|
||||
|
@ -92,8 +92,7 @@ static const struct v4l2_pix_format sif_mode[] = {
|
||||
* Initialization data: this is the first set-up data written to the
|
||||
* device (before the open data).
|
||||
*/
|
||||
static const u16 spca508_init_data[][2] =
|
||||
{
|
||||
static const u16 spca508_init_data[][2] = {
|
||||
{0x0000, 0x870b},
|
||||
|
||||
{0x0020, 0x8112}, /* Video drop enable, ISO streaming disable */
|
||||
|
@ -37,7 +37,7 @@
|
||||
|
||||
#define STV_ISOC_ENDPOINT_ADDR 0x81
|
||||
|
||||
#define STV_REG23 0x0423
|
||||
#define STV_REG23 0x0423
|
||||
|
||||
/* Control registers of the STV0600 ASIC */
|
||||
#define STV_I2C_PARTNER 0x1420
|
||||
|
@ -39,8 +39,8 @@ static const struct ctrl hdcs1x00_ctrl[] = {
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = HDCS_DEFAULT_EXPOSURE,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.default_value = HDCS_DEFAULT_EXPOSURE,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = hdcs_set_exposure,
|
||||
.get = hdcs_get_exposure
|
||||
@ -52,8 +52,8 @@ static const struct ctrl hdcs1x00_ctrl[] = {
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = HDCS_DEFAULT_GAIN,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.default_value = HDCS_DEFAULT_GAIN,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = hdcs_set_gain,
|
||||
.get = hdcs_get_gain
|
||||
@ -83,8 +83,8 @@ static const struct ctrl hdcs1020_ctrl[] = {
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xffff,
|
||||
.step = 0x1,
|
||||
.default_value = HDCS_DEFAULT_EXPOSURE,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.default_value = HDCS_DEFAULT_EXPOSURE,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = hdcs_set_exposure,
|
||||
.get = hdcs_get_exposure
|
||||
@ -96,8 +96,8 @@ static const struct ctrl hdcs1020_ctrl[] = {
|
||||
.minimum = 0x00,
|
||||
.maximum = 0xff,
|
||||
.step = 0x1,
|
||||
.default_value = HDCS_DEFAULT_GAIN,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
.default_value = HDCS_DEFAULT_GAIN,
|
||||
.flags = V4L2_CTRL_FLAG_SLIDER
|
||||
},
|
||||
.set = hdcs_set_gain,
|
||||
.get = hdcs_get_gain
|
||||
@ -163,7 +163,8 @@ static int hdcs_reg_write_seq(struct sd *sd, u8 reg, u8 *vals, u8 len)
|
||||
for (i = 0; i < len; i++) {
|
||||
regs[2 * i] = reg;
|
||||
regs[2 * i + 1] = vals[i];
|
||||
/* All addresses are shifted left one bit as bit 0 toggles r/w */
|
||||
/* All addresses are shifted left one bit
|
||||
* as bit 0 toggles r/w */
|
||||
reg += 2;
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,7 @@
|
||||
#define HDCS_REG_CONTROL(sd) (IS_1020(sd) ? HDCS20_CONTROL : HDCS00_CONTROL)
|
||||
|
||||
#define HDCS_1X00_DEF_WIDTH 360
|
||||
#define HDCS_1X00_DEF_HEIGHT 296
|
||||
#define HDCS_1X00_DEF_HEIGHT 296
|
||||
|
||||
#define HDCS_1020_DEF_WIDTH 352
|
||||
#define HDCS_1020_DEF_HEIGHT 292
|
||||
|
@ -66,7 +66,7 @@ static const struct ctrl vv6410_ctrl[] = {
|
||||
.minimum = 0,
|
||||
.maximum = 1,
|
||||
.step = 1,
|
||||
.default_value = 0
|
||||
.default_value = 0
|
||||
},
|
||||
.set = vv6410_set_vflip,
|
||||
.get = vv6410_get_vflip
|
||||
|
@ -157,8 +157,8 @@
|
||||
/* Audio Amplifier Setup Register */
|
||||
#define VV6410_AT1 0x79
|
||||
|
||||
#define VV6410_HFLIP (1 << 3)
|
||||
#define VV6410_VFLIP (1 << 4)
|
||||
#define VV6410_HFLIP (1 << 3)
|
||||
#define VV6410_VFLIP (1 << 4)
|
||||
|
||||
#define VV6410_LOW_POWER_MODE (1 << 0)
|
||||
#define VV6410_SOFT_RESET (1 << 2)
|
||||
|
@ -463,7 +463,7 @@ static void setup_qtable(struct gspca_dev *gspca_dev,
|
||||
|
||||
/* loop over y components */
|
||||
for (i = 0; i < 64; i++)
|
||||
reg_w_riv(gspca_dev, 0x00, 0x2800 + i, qtable[0][i]);
|
||||
reg_w_riv(gspca_dev, 0x00, 0x2800 + i, qtable[0][i]);
|
||||
|
||||
/* loop over c components */
|
||||
for (i = 0; i < 64; i++)
|
||||
@ -712,8 +712,9 @@ static int sd_config(struct gspca_dev *gspca_dev,
|
||||
sd->subtype = id->driver_info;
|
||||
|
||||
if (sd->subtype == AiptekMiniPenCam13) {
|
||||
/* try to get the firmware as some cam answer 2.0.1.2.2
|
||||
* and should be a spca504b then overwrite that setting */
|
||||
|
||||
/* try to get the firmware as some cam answer 2.0.1.2.2
|
||||
* and should be a spca504b then overwrite that setting */
|
||||
reg_r(gspca_dev, 0x20, 0, 1);
|
||||
switch (gspca_dev->usb_buf[0]) {
|
||||
case 1:
|
||||
@ -733,7 +734,7 @@ static int sd_config(struct gspca_dev *gspca_dev,
|
||||
/* case BRIDGE_SPCA504: */
|
||||
/* case BRIDGE_SPCA536: */
|
||||
cam->cam_mode = vga_mode;
|
||||
cam->nmodes =ARRAY_SIZE(vga_mode);
|
||||
cam->nmodes = ARRAY_SIZE(vga_mode);
|
||||
break;
|
||||
case BRIDGE_SPCA533:
|
||||
cam->cam_mode = custom_mode;
|
||||
|
@ -67,7 +67,7 @@ static int reg_w(struct sd *sd, __u16 index, __u16 value);
|
||||
--------------------------------------------------------------------------*/
|
||||
static int w9968cf_write_fsb(struct sd *sd, u16* data)
|
||||
{
|
||||
struct usb_device* udev = sd->gspca_dev.dev;
|
||||
struct usb_device *udev = sd->gspca_dev.dev;
|
||||
u16 value;
|
||||
int ret;
|
||||
|
||||
|
@ -2951,7 +2951,7 @@ static const struct usb_action mc501cb_Initial[] = {
|
||||
{}
|
||||
};
|
||||
|
||||
static const struct usb_action mc501cb_InitialScale[] = { /* 320x240 */
|
||||
static const struct usb_action mc501cb_InitialScale[] = { /* 320x240 */
|
||||
{0xa0, 0x01, ZC3XX_R000_SYSTEMCONTROL}, /* 00,00,01,cc */
|
||||
{0xa0, 0x10, ZC3XX_R002_CLOCKSELECT}, /* 00,02,10,cc */
|
||||
{0xa0, 0x01, ZC3XX_R010_CMOSSENSORSELECT}, /* 00,10,01,cc */
|
||||
@ -3729,7 +3729,6 @@ static const struct usb_action pas106b_InitialScale[] = { /* 176x144 */
|
||||
{0xaa, 0x0d, 0x0000},
|
||||
{0xaa, 0x0e, 0x0002},
|
||||
{0xaa, 0x14, 0x0081},
|
||||
|
||||
/* Other registers */
|
||||
{0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION},
|
||||
/* Frame retreiving */
|
||||
@ -3783,7 +3782,6 @@ static const struct usb_action pas106b_InitialScale[] = { /* 176x144 */
|
||||
{0xa0, 0x05, ZC3XX_R185_WINYWIDTH},
|
||||
{0xa0, 0x14, ZC3XX_R186_WINYCENTER},
|
||||
{0xa0, 0x00, ZC3XX_R180_AUTOCORRECTENABLE},
|
||||
|
||||
/* Auto exposure and white balance */
|
||||
{0xa0, 0x00, ZC3XX_R190_EXPOSURELIMITHIGH},
|
||||
{0xa0, 0x03, ZC3XX_R191_EXPOSURELIMITMID},
|
||||
@ -3847,7 +3845,6 @@ static const struct usb_action pas106b_Initial[] = { /* 352x288 */
|
||||
{0xaa, 0x0d, 0x0000},
|
||||
{0xaa, 0x0e, 0x0002},
|
||||
{0xaa, 0x14, 0x0081},
|
||||
|
||||
/* Other registers */
|
||||
{0xa0, 0x37, ZC3XX_R101_SENSORCORRECTION},
|
||||
/* Frame retreiving */
|
||||
@ -6307,8 +6304,7 @@ static int vga_3wr_probe(struct gspca_dev *gspca_dev)
|
||||
if (chipset_revision_sensor[i].revision == retword) {
|
||||
sd->chip_revision = retword;
|
||||
send_unknown(gspca_dev, SENSOR_PB0330);
|
||||
return chipset_revision_sensor[i]
|
||||
.internal_sensor_id;
|
||||
return chipset_revision_sensor[i].internal_sensor_id;
|
||||
}
|
||||
}
|
||||
|
||||
@ -6787,7 +6783,7 @@ static int sd_start(struct gspca_dev *gspca_dev)
|
||||
/* fall thru */
|
||||
case SENSOR_PAS202B:
|
||||
case SENSOR_PO2030:
|
||||
/* reg_w(gspca_dev, 0x40, ZC3XX_R117_GGAIN); * (from win traces) */
|
||||
/* reg_w(gspca_dev, 0x40, ZC3XX_R117_GGAIN); in win traces */
|
||||
reg_r(gspca_dev, 0x0180);
|
||||
break;
|
||||
case SENSOR_OV7620:
|
||||
@ -6795,7 +6791,7 @@ static int sd_start(struct gspca_dev *gspca_dev)
|
||||
reg_w(gspca_dev, 0x15, 0x01ae);
|
||||
i2c_read(gspca_dev, 0x13); /*fixme: returns 0xa3 */
|
||||
i2c_write(gspca_dev, 0x13, 0xa3, 0x00);
|
||||
/*fixme: returned value to send? */
|
||||
/*fixme: returned value to send? */
|
||||
reg_w(gspca_dev, 0x40, 0x0117);
|
||||
reg_r(gspca_dev, 0x0180);
|
||||
break;
|
||||
@ -6838,7 +6834,7 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
|
||||
/* remove the webcam's header:
|
||||
* ff d8 ff fe 00 0e 00 00 ss ss 00 01 ww ww hh hh pp pp
|
||||
* - 'ss ss' is the frame sequence number (BE)
|
||||
* - 'ww ww' and 'hh hh' are the window dimensions (BE)
|
||||
* - 'ww ww' and 'hh hh' are the window dimensions (BE)
|
||||
* - 'pp pp' is the packet sequence number (BE)
|
||||
*/
|
||||
data += 18;
|
||||
|
Loading…
Reference in New Issue
Block a user