diff options
author | Hans de Goede <j.w.r.degoede@hhs.nl> | 2008-09-03 15:47:28 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2008-09-03 17:36:32 -0400 |
commit | 3466234229e6535a061f5f63a87bfb12c833d96a (patch) | |
tree | 5828785837d25c7e1f328d3e8f917246634220e0 /drivers/media | |
parent | 8559e8da31f37e2916195f44bbe79a61008782df (diff) |
V4L/DVB (8667): gspca: Bad probe of Z-Star/Vimicro webcams with pas106 sensor.
This patch moves the detection of the 2wr SIF pas106b sensor to before
detecting other sensors.
Patch change by jfm: Check SIF for identified webcams only.
Signed-off-by: Hans de Goede <j.w.r.degoede@hhs.nl>
Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/gspca/zc3xx.c | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/drivers/media/video/gspca/zc3xx.c b/drivers/media/video/gspca/zc3xx.c index bc7d0eedcd81..d36f4d7d22b7 100644 --- a/drivers/media/video/gspca/zc3xx.c +++ b/drivers/media/video/gspca/zc3xx.c | |||
@@ -6964,8 +6964,13 @@ static int zcxx_probeSensor(struct gspca_dev *gspca_dev) | |||
6964 | case SENSOR_MC501CB: | 6964 | case SENSOR_MC501CB: |
6965 | return -1; /* don't probe */ | 6965 | return -1; /* don't probe */ |
6966 | case SENSOR_TAS5130C_VF0250: | 6966 | case SENSOR_TAS5130C_VF0250: |
6967 | /* may probe but with write in reg 0x0010 */ | 6967 | /* may probe but with no write in reg 0x0010 */ |
6968 | return -1; /* don't probe */ | 6968 | return -1; /* don't probe */ |
6969 | case SENSOR_PAS106: | ||
6970 | sensor = sif_probe(gspca_dev); | ||
6971 | if (sensor >= 0) | ||
6972 | return sensor; | ||
6973 | break; | ||
6969 | } | 6974 | } |
6970 | sensor = vga_2wr_probe(gspca_dev); | 6975 | sensor = vga_2wr_probe(gspca_dev); |
6971 | if (sensor >= 0) { | 6976 | if (sensor >= 0) { |
@@ -6974,12 +6979,10 @@ static int zcxx_probeSensor(struct gspca_dev *gspca_dev) | |||
6974 | /* next probe is needed for OmniVision ? */ | 6979 | /* next probe is needed for OmniVision ? */ |
6975 | } | 6980 | } |
6976 | sensor2 = vga_3wr_probe(gspca_dev); | 6981 | sensor2 = vga_3wr_probe(gspca_dev); |
6977 | if (sensor2 >= 0) { | 6982 | if (sensor2 >= 0 |
6978 | if (sensor >= 0) | 6983 | && sensor >= 0) |
6979 | return sensor; | 6984 | return sensor; |
6980 | return sensor2; | 6985 | return sensor2; |
6981 | } | ||
6982 | return sif_probe(gspca_dev); | ||
6983 | } | 6986 | } |
6984 | 6987 | ||
6985 | /* this function is called at probe time */ | 6988 | /* this function is called at probe time */ |
@@ -7502,14 +7505,14 @@ static const __devinitdata struct usb_device_id device_table[] = { | |||
7502 | {USB_DEVICE(0x041e, 0x041e)}, | 7505 | {USB_DEVICE(0x041e, 0x041e)}, |
7503 | #ifndef CONFIG_USB_ZC0301 | 7506 | #ifndef CONFIG_USB_ZC0301 |
7504 | {USB_DEVICE(0x041e, 0x4017)}, | 7507 | {USB_DEVICE(0x041e, 0x4017)}, |
7505 | {USB_DEVICE(0x041e, 0x401c)}, | 7508 | {USB_DEVICE(0x041e, 0x401c), .driver_info = SENSOR_PAS106}, |
7506 | {USB_DEVICE(0x041e, 0x401e)}, | 7509 | {USB_DEVICE(0x041e, 0x401e)}, |
7507 | {USB_DEVICE(0x041e, 0x401f)}, | 7510 | {USB_DEVICE(0x041e, 0x401f)}, |
7508 | #endif | 7511 | #endif |
7509 | {USB_DEVICE(0x041e, 0x4029)}, | 7512 | {USB_DEVICE(0x041e, 0x4029)}, |
7510 | #ifndef CONFIG_USB_ZC0301 | 7513 | #ifndef CONFIG_USB_ZC0301 |
7511 | {USB_DEVICE(0x041e, 0x4034)}, | 7514 | {USB_DEVICE(0x041e, 0x4034), .driver_info = SENSOR_PAS106}, |
7512 | {USB_DEVICE(0x041e, 0x4035)}, | 7515 | {USB_DEVICE(0x041e, 0x4035), .driver_info = SENSOR_PAS106}, |
7513 | {USB_DEVICE(0x041e, 0x4036)}, | 7516 | {USB_DEVICE(0x041e, 0x4036)}, |
7514 | {USB_DEVICE(0x041e, 0x403a)}, | 7517 | {USB_DEVICE(0x041e, 0x403a)}, |
7515 | #endif | 7518 | #endif |
@@ -7541,10 +7544,10 @@ static const __devinitdata struct usb_device_id device_table[] = { | |||
7541 | {USB_DEVICE(0x046d, 0x08d8)}, | 7544 | {USB_DEVICE(0x046d, 0x08d8)}, |
7542 | {USB_DEVICE(0x046d, 0x08da)}, | 7545 | {USB_DEVICE(0x046d, 0x08da)}, |
7543 | {USB_DEVICE(0x046d, 0x08dd), .driver_info = SENSOR_MC501CB}, | 7546 | {USB_DEVICE(0x046d, 0x08dd), .driver_info = SENSOR_MC501CB}, |
7544 | {USB_DEVICE(0x0471, 0x0325)}, | 7547 | {USB_DEVICE(0x0471, 0x0325), .driver_info = SENSOR_PAS106}, |
7545 | {USB_DEVICE(0x0471, 0x0326)}, | 7548 | {USB_DEVICE(0x0471, 0x0326), .driver_info = SENSOR_PAS106}, |
7546 | {USB_DEVICE(0x0471, 0x032d)}, | 7549 | {USB_DEVICE(0x0471, 0x032d), .driver_info = SENSOR_PAS106}, |
7547 | {USB_DEVICE(0x0471, 0x032e)}, | 7550 | {USB_DEVICE(0x0471, 0x032e), .driver_info = SENSOR_PAS106}, |
7548 | {USB_DEVICE(0x055f, 0xc005)}, | 7551 | {USB_DEVICE(0x055f, 0xc005)}, |
7549 | #ifndef CONFIG_USB_ZC0301 | 7552 | #ifndef CONFIG_USB_ZC0301 |
7550 | {USB_DEVICE(0x055f, 0xd003)}, | 7553 | {USB_DEVICE(0x055f, 0xd003)}, |