aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/gspca/sq930x.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-01-06 21:32:12 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2011-01-06 21:32:12 -0500
commit9e9bc9736756f25d6c47b4eba0ebf25b20a6f153 (patch)
tree647240f479c5f23910c3e6194d1c35b6ba54d75e /drivers/media/video/gspca/sq930x.c
parent3c0cb7c31c206aaedb967e44b98442bbeb17a6c4 (diff)
parente3c92215198cb6aa00ad38db2780faa6b72e0a3f (diff)
Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6
* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6: (255 commits) [media] radio-aimslab.c: Fix gcc 4.5+ bug [media] cx25821: Fix compilation breakage due to BKL dependency [media] v4l2-compat-ioctl32: fix compile warning [media] zoran: fix compiler warning [media] tda18218: fix compile warning [media] ngene: fix compile warning [media] DVB: IR support for TechnoTrend CT-3650 [media] cx23885, cimax2.c: Fix case of two CAM insertion irq [media] ir-nec-decoder: fix repeat key issue [media] staging: se401 depends on USB [media] staging: usbvideo/vicam depends on USB [media] soc_camera: Add the ability to bind regulators to soc_camedra devices [media] V4L2: Add a v4l2-subdev (soc-camera) driver for OmniVision OV2640 sensor [media] v4l: soc-camera: switch to .unlocked_ioctl [media] v4l: ov772x: simplify pointer dereference [media] ov9640: fix OmniVision OV9640 sensor driver's priv data retrieving [media] ov9640: use macro to request OmniVision OV9640 sensor private data [media] ivtv-i2c: Fix two warnings [media] staging/lirc: Update lirc TODO files [media] cx88: Remove the obsolete i2c_adapter.id field ...
Diffstat (limited to 'drivers/media/video/gspca/sq930x.c')
-rw-r--r--drivers/media/video/gspca/sq930x.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/drivers/media/video/gspca/sq930x.c b/drivers/media/video/gspca/sq930x.c
index 3e4b0b94c700..a4a98811b9e3 100644
--- a/drivers/media/video/gspca/sq930x.c
+++ b/drivers/media/video/gspca/sq930x.c
@@ -687,10 +687,19 @@ static void cmos_probe(struct gspca_dev *gspca_dev)
687 if (gspca_dev->usb_buf[0] != 0) 687 if (gspca_dev->usb_buf[0] != 0)
688 break; 688 break;
689 } 689 }
690 if (i >= ARRAY_SIZE(probe_order)) 690 if (i >= ARRAY_SIZE(probe_order)) {
691 err("Unknown sensor"); 691 err("Unknown sensor");
692 else 692 gspca_dev->usb_err = -EINVAL;
693 sd->sensor = probe_order[i]; 693 return;
694 }
695 sd->sensor = probe_order[i];
696 switch (sd->sensor) {
697 case SENSOR_OV7660:
698 case SENSOR_OV9630:
699 err("Sensor %s not yet treated", sensor_tb[sd->sensor].name);
700 gspca_dev->usb_err = -EINVAL;
701 break;
702 }
694} 703}
695 704
696static void mt9v111_init(struct gspca_dev *gspca_dev) 705static void mt9v111_init(struct gspca_dev *gspca_dev)
@@ -867,6 +876,9 @@ static int sd_init(struct gspca_dev *gspca_dev)
867 */ 876 */
868 877
869 reg_r(gspca_dev, SQ930_CTRL_GET_DEV_INFO, 8); 878 reg_r(gspca_dev, SQ930_CTRL_GET_DEV_INFO, 8);
879 if (gspca_dev->usb_err < 0)
880 return gspca_dev->usb_err;
881
870/* it returns: 882/* it returns:
871 * 03 00 12 93 0b f6 c9 00 live! ultra 883 * 03 00 12 93 0b f6 c9 00 live! ultra
872 * 03 00 07 93 0b f6 ca 00 live! ultra for notebook 884 * 03 00 07 93 0b f6 ca 00 live! ultra for notebook
@@ -900,15 +912,15 @@ static int sd_init(struct gspca_dev *gspca_dev)
900 if (sd->sensor == SENSOR_MI0360) { 912 if (sd->sensor == SENSOR_MI0360) {
901 913
902 /* no sensor probe for icam tracer */ 914 /* no sensor probe for icam tracer */
903 if (gspca_dev->usb_buf[5] == 0xf6) /* if CMOS */ 915 if (gspca_dev->usb_buf[5] == 0xf6) /* if ccd */
904 sd->sensor = SENSOR_ICX098BQ; 916 sd->sensor = SENSOR_ICX098BQ;
905 else 917 else
906 cmos_probe(gspca_dev); 918 cmos_probe(gspca_dev);
907 } 919 }
908 920 if (gspca_dev->usb_err >= 0) {
909 PDEBUG(D_PROBE, "Sensor %s", sensor_tb[sd->sensor].name); 921 PDEBUG(D_PROBE, "Sensor %s", sensor_tb[sd->sensor].name);
910 922 global_init(sd, 1);
911 global_init(sd, 1); 923 }
912 return gspca_dev->usb_err; 924 return gspca_dev->usb_err;
913} 925}
914 926