diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-06 21:32:12 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-06 21:32:12 -0500 |
commit | 9e9bc9736756f25d6c47b4eba0ebf25b20a6f153 (patch) | |
tree | 647240f479c5f23910c3e6194d1c35b6ba54d75e /drivers/media/video/gspca/sq930x.c | |
parent | 3c0cb7c31c206aaedb967e44b98442bbeb17a6c4 (diff) | |
parent | e3c92215198cb6aa00ad38db2780faa6b72e0a3f (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.c | 28 |
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 | ||
696 | static void mt9v111_init(struct gspca_dev *gspca_dev) | 705 | static 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 | ||