mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-11 21:14:07 +08:00
V4L/DVB (11449): gspca - zc3xx: Bad probe of many webcams since adcm2700 addition.
Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
2444163122
commit
881cd41882
@ -6868,7 +6868,6 @@ static const struct sensor_by_chipset_revision chipset_revision_sensor[] = {
|
|||||||
{0x8001, 0x13},
|
{0x8001, 0x13},
|
||||||
{0x8000, 0x14}, /* CS2102K */
|
{0x8000, 0x14}, /* CS2102K */
|
||||||
{0x8400, 0x15}, /* TAS5130K */
|
{0x8400, 0x15}, /* TAS5130K */
|
||||||
{0x4001, 0x16}, /* ADCM2700 */
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int vga_3wr_probe(struct gspca_dev *gspca_dev)
|
static int vga_3wr_probe(struct gspca_dev *gspca_dev)
|
||||||
@ -6904,12 +6903,15 @@ static int vga_3wr_probe(struct gspca_dev *gspca_dev)
|
|||||||
retword |= reg_r(gspca_dev, 0x000a);
|
retword |= reg_r(gspca_dev, 0x000a);
|
||||||
PDEBUG(D_PROBE, "probe 3wr vga 1 0x%04x", retword);
|
PDEBUG(D_PROBE, "probe 3wr vga 1 0x%04x", retword);
|
||||||
reg_r(gspca_dev, 0x0010);
|
reg_r(gspca_dev, 0x0010);
|
||||||
/* this is tested only once anyway */
|
/* value 0x4001 is meaningless */
|
||||||
for (i = 0; i < ARRAY_SIZE(chipset_revision_sensor); i++) {
|
if (retword != 0x4001) {
|
||||||
if (chipset_revision_sensor[i].revision == retword) {
|
for (i = 0; i < ARRAY_SIZE(chipset_revision_sensor); i++) {
|
||||||
sd->chip_revision = retword;
|
if (chipset_revision_sensor[i].revision == retword) {
|
||||||
send_unknown(dev, SENSOR_PB0330);
|
sd->chip_revision = retword;
|
||||||
return chipset_revision_sensor[i].internal_sensor_id;
|
send_unknown(dev, SENSOR_PB0330);
|
||||||
|
return chipset_revision_sensor[i]
|
||||||
|
.internal_sensor_id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6980,12 +6982,12 @@ static int vga_3wr_probe(struct gspca_dev *gspca_dev)
|
|||||||
reg_w(dev, 0x01, 0x0001);
|
reg_w(dev, 0x01, 0x0001);
|
||||||
reg_w(dev, 0x03, 0x0012);
|
reg_w(dev, 0x03, 0x0012);
|
||||||
reg_w(dev, 0x01, 0x0012);
|
reg_w(dev, 0x01, 0x0012);
|
||||||
reg_w(dev, 0x05, 0x0001);
|
reg_w(dev, 0x05, 0x0012);
|
||||||
reg_w(dev, 0xd3, 0x008b);
|
reg_w(dev, 0xd3, 0x008b);
|
||||||
retword = i2c_read(gspca_dev, 0x01);
|
retword = i2c_read(gspca_dev, 0x01);
|
||||||
if (retword != 0) {
|
if (retword != 0) {
|
||||||
PDEBUG(D_PROBE, "probe 3wr vga type 0a ? ret: %04x", retword);
|
PDEBUG(D_PROBE, "probe 3wr vga type 0a ? ret: %04x", retword);
|
||||||
return retword;
|
return 0x16; /* adcm2700 (6100/6200) */
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user