aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJean-Francois Moine <moinejf@free.fr>2008-09-20 05:39:08 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-10-12 07:37:12 -0400
commit72ab97cecb7225a4c9f74cdd80268b50b74697bb (patch)
tree3c942aa1c1538ad83c5f49fbc6ab01ea1a584789 /drivers
parent1b60e1adc713e8d375dc117f5c3b5032d5b79abe (diff)
V4L/DVB (9079): gspca: Return error code from stream start functions.
Signed-off-by: Jean-Francois Moine <moinejf@free.fr> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/media/video/gspca/conex.c3
-rw-r--r--drivers/media/video/gspca/etoms.c3
-rw-r--r--drivers/media/video/gspca/gspca.c6
-rw-r--r--drivers/media/video/gspca/gspca.h2
-rw-r--r--drivers/media/video/gspca/mars.c20
-rw-r--r--drivers/media/video/gspca/ov519.c5
-rw-r--r--drivers/media/video/gspca/pac207.c3
-rw-r--r--drivers/media/video/gspca/pac7311.c3
-rw-r--r--drivers/media/video/gspca/sonixb.c3
-rw-r--r--drivers/media/video/gspca/sonixj.c3
-rw-r--r--drivers/media/video/gspca/spca500.c3
-rw-r--r--drivers/media/video/gspca/spca501.c3
-rw-r--r--drivers/media/video/gspca/spca505.c3
-rw-r--r--drivers/media/video/gspca/spca506.c3
-rw-r--r--drivers/media/video/gspca/spca508.c3
-rw-r--r--drivers/media/video/gspca/spca561.c6
-rw-r--r--drivers/media/video/gspca/stk014.c5
-rw-r--r--drivers/media/video/gspca/sunplus.c3
-rw-r--r--drivers/media/video/gspca/t613.c3
-rw-r--r--drivers/media/video/gspca/tv8532.c3
-rw-r--r--drivers/media/video/gspca/vc032x.c5
-rw-r--r--drivers/media/video/gspca/zc3xx.c3
22 files changed, 60 insertions, 34 deletions
diff --git a/drivers/media/video/gspca/conex.c b/drivers/media/video/gspca/conex.c
index 4d9f4cc255a9..a9d51ba7c57c 100644
--- a/drivers/media/video/gspca/conex.c
+++ b/drivers/media/video/gspca/conex.c
@@ -837,12 +837,13 @@ static int sd_init(struct gspca_dev *gspca_dev)
837 return 0; 837 return 0;
838} 838}
839 839
840static void sd_start(struct gspca_dev *gspca_dev) 840static int sd_start(struct gspca_dev *gspca_dev)
841{ 841{
842 cx11646_initsize(gspca_dev); 842 cx11646_initsize(gspca_dev);
843 cx11646_fw(gspca_dev); 843 cx11646_fw(gspca_dev);
844 cx_sensor(gspca_dev); 844 cx_sensor(gspca_dev);
845 cx11646_jpeg(gspca_dev); 845 cx11646_jpeg(gspca_dev);
846 return 0;
846} 847}
847 848
848static void sd_stop0(struct gspca_dev *gspca_dev) 849static void sd_stop0(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/etoms.c b/drivers/media/video/gspca/etoms.c
index 4ff0e386914b..3be30b420a26 100644
--- a/drivers/media/video/gspca/etoms.c
+++ b/drivers/media/video/gspca/etoms.c
@@ -691,7 +691,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
691} 691}
692 692
693/* -- start the camera -- */ 693/* -- start the camera -- */
694static void sd_start(struct gspca_dev *gspca_dev) 694static int sd_start(struct gspca_dev *gspca_dev)
695{ 695{
696 struct sd *sd = (struct sd *) gspca_dev; 696 struct sd *sd = (struct sd *) gspca_dev;
697 697
@@ -704,6 +704,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
704 704
705 reg_w_val(gspca_dev, ET_RESET_ALL, 0x08); 705 reg_w_val(gspca_dev, ET_RESET_ALL, 0x08);
706 et_video(gspca_dev, 1); /* video on */ 706 et_video(gspca_dev, 1); /* video on */
707 return 0;
707} 708}
708 709
709static void sd_stopN(struct gspca_dev *gspca_dev) 710static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index 4694dc14a249..a286b91965fa 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -584,7 +584,11 @@ static int gspca_init_transfer(struct gspca_dev *gspca_dev)
584 goto out; 584 goto out;
585 585
586 /* start the cam */ 586 /* start the cam */
587 gspca_dev->sd_desc->start(gspca_dev); 587 ret = gspca_dev->sd_desc->start(gspca_dev);
588 if (ret < 0) {
589 destroy_urbs(gspca_dev);
590 goto out;
591 }
588 gspca_dev->streaming = 1; 592 gspca_dev->streaming = 1;
589 atomic_set(&gspca_dev->nevent, 0); 593 atomic_set(&gspca_dev->nevent, 0);
590 594
diff --git a/drivers/media/video/gspca/gspca.h b/drivers/media/video/gspca/gspca.h
index 72a288573051..b0bdae194bb6 100644
--- a/drivers/media/video/gspca/gspca.h
+++ b/drivers/media/video/gspca/gspca.h
@@ -93,7 +93,7 @@ struct sd_desc {
93/* mandatory operations */ 93/* mandatory operations */
94 cam_cf_op config; /* called on probe */ 94 cam_cf_op config; /* called on probe */
95 cam_op init; /* called on probe and resume */ 95 cam_op init; /* called on probe and resume */
96 cam_v_op start; /* called on stream on */ 96 cam_op start; /* called on stream on */
97 cam_pkt_op pkt_scan; 97 cam_pkt_op pkt_scan;
98/* optional operations */ 98/* optional operations */
99 cam_v_op stopN; /* called on stream off - main alt */ 99 cam_v_op stopN; /* called on stream off - main alt */
diff --git a/drivers/media/video/gspca/mars.c b/drivers/media/video/gspca/mars.c
index 4d5db47ba8cb..277ca34a8817 100644
--- a/drivers/media/video/gspca/mars.c
+++ b/drivers/media/video/gspca/mars.c
@@ -134,7 +134,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
134 return 0; 134 return 0;
135} 135}
136 136
137static void sd_start(struct gspca_dev *gspca_dev) 137static int sd_start(struct gspca_dev *gspca_dev)
138{ 138{
139 int err_code; 139 int err_code;
140 __u8 *data; 140 __u8 *data;
@@ -143,9 +143,10 @@ static void sd_start(struct gspca_dev *gspca_dev)
143 int intpipe; 143 int intpipe;
144 144
145 PDEBUG(D_STREAM, "camera start, iface %d, alt 8", gspca_dev->iface); 145 PDEBUG(D_STREAM, "camera start, iface %d, alt 8", gspca_dev->iface);
146 if (usb_set_interface(gspca_dev->dev, gspca_dev->iface, 8) < 0) { 146 err_code = usb_set_interface(gspca_dev->dev, gspca_dev->iface, 8);
147 if (err_code < 0) {
147 PDEBUG(D_ERR|D_STREAM, "Set packet size: set interface error"); 148 PDEBUG(D_ERR|D_STREAM, "Set packet size: set interface error");
148 return; 149 return err_code;
149 } 150 }
150 151
151 data = gspca_dev->usb_buf; 152 data = gspca_dev->usb_buf;
@@ -154,7 +155,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
154 155
155 err_code = reg_w(gspca_dev, data[0], 2); 156 err_code = reg_w(gspca_dev, data[0], 2);
156 if (err_code < 0) 157 if (err_code < 0)
157 return; 158 return err_code;
158 159
159 /* 160 /*
160 Initialize the MR97113 chip register 161 Initialize the MR97113 chip register
@@ -180,14 +181,14 @@ static void sd_start(struct gspca_dev *gspca_dev)
180 181
181 err_code = reg_w(gspca_dev, data[0], 11); 182 err_code = reg_w(gspca_dev, data[0], 11);
182 if (err_code < 0) 183 if (err_code < 0)
183 return; 184 return err_code;
184 185
185 data[0] = 0x23; /* address */ 186 data[0] = 0x23; /* address */
186 data[1] = 0x09; /* reg 35, append frame header */ 187 data[1] = 0x09; /* reg 35, append frame header */
187 188
188 err_code = reg_w(gspca_dev, data[0], 2); 189 err_code = reg_w(gspca_dev, data[0], 2);
189 if (err_code < 0) 190 if (err_code < 0)
190 return; 191 return err_code;
191 192
192 data[0] = 0x3c; /* address */ 193 data[0] = 0x3c; /* address */
193/* if (gspca_dev->width == 1280) */ 194/* if (gspca_dev->width == 1280) */
@@ -198,7 +199,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
198 * (unit: 4KB) 200KB */ 199 * (unit: 4KB) 200KB */
199 err_code = reg_w(gspca_dev, data[0], 2); 200 err_code = reg_w(gspca_dev, data[0], 2);
200 if (err_code < 0) 201 if (err_code < 0)
201 return; 202 return err_code;
202 203
203 if (0) { /* fixed dark-gain */ 204 if (0) { /* fixed dark-gain */
204 data[1] = 0; /* reg 94, Y Gain (1.75) */ 205 data[1] = 0; /* reg 94, Y Gain (1.75) */
@@ -240,13 +241,13 @@ static void sd_start(struct gspca_dev *gspca_dev)
240 241
241 err_code = reg_w(gspca_dev, data[0], 6); 242 err_code = reg_w(gspca_dev, data[0], 6);
242 if (err_code < 0) 243 if (err_code < 0)
243 return; 244 return err_code;
244 245
245 data[0] = 0x67; 246 data[0] = 0x67;
246 data[1] = 0x13; /* reg 103, first pixel B, disable sharpness */ 247 data[1] = 0x13; /* reg 103, first pixel B, disable sharpness */
247 err_code = reg_w(gspca_dev, data[0], 2); 248 err_code = reg_w(gspca_dev, data[0], 2);
248 if (err_code < 0) 249 if (err_code < 0)
249 return; 250 return err_code;
250 251
251 /* 252 /*
252 * initialize the value of MI sensor... 253 * initialize the value of MI sensor...
@@ -326,6 +327,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
326 data[0] = 0x00; 327 data[0] = 0x00;
327 data[1] = 0x4d; /* ISOC transfering enable... */ 328 data[1] = 0x4d; /* ISOC transfering enable... */
328 reg_w(gspca_dev, data[0], 2); 329 reg_w(gspca_dev, data[0], 2);
330 return err_code;
329} 331}
330 332
331static void sd_stopN(struct gspca_dev *gspca_dev) 333static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/ov519.c b/drivers/media/video/gspca/ov519.c
index 4df4eec9f7e7..ca671194679e 100644
--- a/drivers/media/video/gspca/ov519.c
+++ b/drivers/media/video/gspca/ov519.c
@@ -1854,7 +1854,7 @@ static int set_ov_sensor_window(struct sd *sd)
1854} 1854}
1855 1855
1856/* -- start the camera -- */ 1856/* -- start the camera -- */
1857static void sd_start(struct gspca_dev *gspca_dev) 1857static int sd_start(struct gspca_dev *gspca_dev)
1858{ 1858{
1859 struct sd *sd = (struct sd *) gspca_dev; 1859 struct sd *sd = (struct sd *) gspca_dev;
1860 int ret; 1860 int ret;
@@ -1871,9 +1871,10 @@ static void sd_start(struct gspca_dev *gspca_dev)
1871 goto out; 1871 goto out;
1872 PDEBUG(D_STREAM, "camera started alt: 0x%02x", gspca_dev->alt); 1872 PDEBUG(D_STREAM, "camera started alt: 0x%02x", gspca_dev->alt);
1873 ov51x_led_control(sd, 1); 1873 ov51x_led_control(sd, 1);
1874 return; 1874 return 0;
1875out: 1875out:
1876 PDEBUG(D_ERR, "camera start error:%d", ret); 1876 PDEBUG(D_ERR, "camera start error:%d", ret);
1877 return ret;
1877} 1878}
1878 1879
1879static void sd_stopN(struct gspca_dev *gspca_dev) 1880static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/pac207.c b/drivers/media/video/gspca/pac207.c
index 34e923d00b7e..0b0c573d06da 100644
--- a/drivers/media/video/gspca/pac207.c
+++ b/drivers/media/video/gspca/pac207.c
@@ -281,7 +281,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
281} 281}
282 282
283/* -- start the camera -- */ 283/* -- start the camera -- */
284static void sd_start(struct gspca_dev *gspca_dev) 284static int sd_start(struct gspca_dev *gspca_dev)
285{ 285{
286 struct sd *sd = (struct sd *) gspca_dev; 286 struct sd *sd = (struct sd *) gspca_dev;
287 __u8 mode; 287 __u8 mode;
@@ -323,6 +323,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
323 sd->sof_read = 0; 323 sd->sof_read = 0;
324 sd->autogain_ignore_frames = 0; 324 sd->autogain_ignore_frames = 0;
325 atomic_set(&sd->avg_lum, -1); 325 atomic_set(&sd->avg_lum, -1);
326 return 0;
326} 327}
327 328
328static void sd_stopN(struct gspca_dev *gspca_dev) 329static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/pac7311.c b/drivers/media/video/gspca/pac7311.c
index ba865b7f1ed8..e5ff9a6199ef 100644
--- a/drivers/media/video/gspca/pac7311.c
+++ b/drivers/media/video/gspca/pac7311.c
@@ -675,7 +675,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
675 return 0; 675 return 0;
676} 676}
677 677
678static void sd_start(struct gspca_dev *gspca_dev) 678static int sd_start(struct gspca_dev *gspca_dev)
679{ 679{
680 struct sd *sd = (struct sd *) gspca_dev; 680 struct sd *sd = (struct sd *) gspca_dev;
681 681
@@ -724,6 +724,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
724 reg_w(gspca_dev, 0x78, 0x01); 724 reg_w(gspca_dev, 0x78, 0x01);
725 else 725 else
726 reg_w(gspca_dev, 0x78, 0x05); 726 reg_w(gspca_dev, 0x78, 0x05);
727 return 0;
727} 728}
728 729
729static void sd_stopN(struct gspca_dev *gspca_dev) 730static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/sonixb.c b/drivers/media/video/gspca/sonixb.c
index 4328ad44c40a..6c69bc7778fc 100644
--- a/drivers/media/video/gspca/sonixb.c
+++ b/drivers/media/video/gspca/sonixb.c
@@ -892,7 +892,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
892} 892}
893 893
894/* -- start the camera -- */ 894/* -- start the camera -- */
895static void sd_start(struct gspca_dev *gspca_dev) 895static int sd_start(struct gspca_dev *gspca_dev)
896{ 896{
897 struct sd *sd = (struct sd *) gspca_dev; 897 struct sd *sd = (struct sd *) gspca_dev;
898 struct cam *cam = &gspca_dev->cam; 898 struct cam *cam = &gspca_dev->cam;
@@ -976,6 +976,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
976 sd->frames_to_drop = 0; 976 sd->frames_to_drop = 0;
977 sd->autogain_ignore_frames = 0; 977 sd->autogain_ignore_frames = 0;
978 atomic_set(&sd->avg_lum, -1); 978 atomic_set(&sd->avg_lum, -1);
979 return 0;
979} 980}
980 981
981static void sd_stopN(struct gspca_dev *gspca_dev) 982static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/sonixj.c b/drivers/media/video/gspca/sonixj.c
index 2ca4d9f23fe4..9c6a874be990 100644
--- a/drivers/media/video/gspca/sonixj.c
+++ b/drivers/media/video/gspca/sonixj.c
@@ -1203,7 +1203,7 @@ static void setvflip(struct sd *sd)
1203} 1203}
1204 1204
1205/* -- start the camera -- */ 1205/* -- start the camera -- */
1206static void sd_start(struct gspca_dev *gspca_dev) 1206static int sd_start(struct gspca_dev *gspca_dev)
1207{ 1207{
1208 struct sd *sd = (struct sd *) gspca_dev; 1208 struct sd *sd = (struct sd *) gspca_dev;
1209 int i; 1209 int i;
@@ -1357,6 +1357,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
1357 } 1357 }
1358 setautogain(gspca_dev); 1358 setautogain(gspca_dev);
1359 reg_w1(gspca_dev, 0x01, reg1); 1359 reg_w1(gspca_dev, 0x01, reg1);
1360 return 0;
1360} 1361}
1361 1362
1362static void sd_stopN(struct gspca_dev *gspca_dev) 1363static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/spca500.c b/drivers/media/video/gspca/spca500.c
index 6e733901fcca..bca106c153fa 100644
--- a/drivers/media/video/gspca/spca500.c
+++ b/drivers/media/video/gspca/spca500.c
@@ -660,7 +660,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
660 return 0; 660 return 0;
661} 661}
662 662
663static void sd_start(struct gspca_dev *gspca_dev) 663static int sd_start(struct gspca_dev *gspca_dev)
664{ 664{
665 struct sd *sd = (struct sd *) gspca_dev; 665 struct sd *sd = (struct sd *) gspca_dev;
666 int err; 666 int err;
@@ -867,6 +867,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
867 write_vector(gspca_dev, Clicksmart510_defaults); 867 write_vector(gspca_dev, Clicksmart510_defaults);
868 break; 868 break;
869 } 869 }
870 return 0;
870} 871}
871 872
872static void sd_stopN(struct gspca_dev *gspca_dev) 873static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/spca501.c b/drivers/media/video/gspca/spca501.c
index e9eb59bae4fb..b742f260c7ca 100644
--- a/drivers/media/video/gspca/spca501.c
+++ b/drivers/media/video/gspca/spca501.c
@@ -1980,7 +1980,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
1980 return 0; 1980 return 0;
1981} 1981}
1982 1982
1983static void sd_start(struct gspca_dev *gspca_dev) 1983static int sd_start(struct gspca_dev *gspca_dev)
1984{ 1984{
1985 struct usb_device *dev = gspca_dev->dev; 1985 struct usb_device *dev = gspca_dev->dev;
1986 int mode; 1986 int mode;
@@ -2012,6 +2012,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
2012 setbrightness(gspca_dev); 2012 setbrightness(gspca_dev);
2013 setcontrast(gspca_dev); 2013 setcontrast(gspca_dev);
2014 setcolors(gspca_dev); 2014 setcolors(gspca_dev);
2015 return 0;
2015} 2016}
2016 2017
2017static void sd_stopN(struct gspca_dev *gspca_dev) 2018static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/spca505.c b/drivers/media/video/gspca/spca505.c
index f601daf19ebe..b345749213cf 100644
--- a/drivers/media/video/gspca/spca505.c
+++ b/drivers/media/video/gspca/spca505.c
@@ -688,7 +688,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
688 return 0; 688 return 0;
689} 689}
690 690
691static void sd_start(struct gspca_dev *gspca_dev) 691static int sd_start(struct gspca_dev *gspca_dev)
692{ 692{
693 struct usb_device *dev = gspca_dev->dev; 693 struct usb_device *dev = gspca_dev->dev;
694 int ret; 694 int ret;
@@ -733,6 +733,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
733/* reg_write(dev, 0x5, 0x0, 0x0); */ 733/* reg_write(dev, 0x5, 0x0, 0x0); */
734/* reg_write(dev, 0x5, 0x0, 0x1); */ 734/* reg_write(dev, 0x5, 0x0, 0x1); */
735/* reg_write(dev, 0x5, 0x11, 0x2); */ 735/* reg_write(dev, 0x5, 0x11, 0x2); */
736 return ret;
736} 737}
737 738
738static void sd_stopN(struct gspca_dev *gspca_dev) 739static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/spca506.c b/drivers/media/video/gspca/spca506.c
index 195dce96ef06..645ee9d44d02 100644
--- a/drivers/media/video/gspca/spca506.c
+++ b/drivers/media/video/gspca/spca506.c
@@ -422,7 +422,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
422 return 0; 422 return 0;
423} 423}
424 424
425static void sd_start(struct gspca_dev *gspca_dev) 425static int sd_start(struct gspca_dev *gspca_dev)
426{ 426{
427 struct usb_device *dev = gspca_dev->dev; 427 struct usb_device *dev = gspca_dev->dev;
428 __u16 norme; 428 __u16 norme;
@@ -549,6 +549,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
549 PDEBUG(D_STREAM, "webcam started"); 549 PDEBUG(D_STREAM, "webcam started");
550 spca506_GetNormeInput(gspca_dev, &norme, &channel); 550 spca506_GetNormeInput(gspca_dev, &norme, &channel);
551 spca506_SetNormeInput(gspca_dev, norme, channel); 551 spca506_SetNormeInput(gspca_dev, norme, channel);
552 return 0;
552} 553}
553 554
554static void sd_stopN(struct gspca_dev *gspca_dev) 555static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/spca508.c b/drivers/media/video/gspca/spca508.c
index 281ce02103a3..63ec902c895d 100644
--- a/drivers/media/video/gspca/spca508.c
+++ b/drivers/media/video/gspca/spca508.c
@@ -1528,7 +1528,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
1528 return 0; 1528 return 0;
1529} 1529}
1530 1530
1531static void sd_start(struct gspca_dev *gspca_dev) 1531static int sd_start(struct gspca_dev *gspca_dev)
1532{ 1532{
1533 int mode; 1533 int mode;
1534 1534
@@ -1546,6 +1546,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
1546 break; 1546 break;
1547 } 1547 }
1548 reg_write(gspca_dev->dev, 0x8112, 0x10 | 0x20); 1548 reg_write(gspca_dev->dev, 0x8112, 0x10 | 0x20);
1549 return 0;
1549} 1550}
1550 1551
1551static void sd_stopN(struct gspca_dev *gspca_dev) 1552static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/spca561.c b/drivers/media/video/gspca/spca561.c
index 4d8e2c0018b1..29089d9526b6 100644
--- a/drivers/media/video/gspca/spca561.c
+++ b/drivers/media/video/gspca/spca561.c
@@ -699,7 +699,7 @@ static void setautogain(struct gspca_dev *gspca_dev)
699 sd->ag_cnt = -1; 699 sd->ag_cnt = -1;
700} 700}
701 701
702static void sd_start_12a(struct gspca_dev *gspca_dev) 702static int sd_start_12a(struct gspca_dev *gspca_dev)
703{ 703{
704 struct usb_device *dev = gspca_dev->dev; 704 struct usb_device *dev = gspca_dev->dev;
705 int Clck = 0x8a; /* lower 0x8X values lead to fps > 30 */ 705 int Clck = 0x8a; /* lower 0x8X values lead to fps > 30 */
@@ -725,8 +725,9 @@ static void sd_start_12a(struct gspca_dev *gspca_dev)
725 setwhite(gspca_dev); 725 setwhite(gspca_dev);
726 setautogain(gspca_dev); 726 setautogain(gspca_dev);
727 setexposure(gspca_dev); 727 setexposure(gspca_dev);
728 return 0;
728} 729}
729static void sd_start_72a(struct gspca_dev *gspca_dev) 730static int sd_start_72a(struct gspca_dev *gspca_dev)
730{ 731{
731 struct usb_device *dev = gspca_dev->dev; 732 struct usb_device *dev = gspca_dev->dev;
732 int Clck; 733 int Clck;
@@ -750,6 +751,7 @@ static void sd_start_72a(struct gspca_dev *gspca_dev)
750 reg_w_val(dev, 0x8700, Clck); /* 0x27 clock */ 751 reg_w_val(dev, 0x8700, Clck); /* 0x27 clock */
751 reg_w_val(dev, 0x8112, 0x10 | 0x20); 752 reg_w_val(dev, 0x8112, 0x10 | 0x20);
752 setautogain(gspca_dev); 753 setautogain(gspca_dev);
754 return 0;
753} 755}
754 756
755static void sd_stopN(struct gspca_dev *gspca_dev) 757static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/stk014.c b/drivers/media/video/gspca/stk014.c
index 2f2de429e273..d9d64911f22a 100644
--- a/drivers/media/video/gspca/stk014.c
+++ b/drivers/media/video/gspca/stk014.c
@@ -324,7 +324,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
324} 324}
325 325
326/* -- start the camera -- */ 326/* -- start the camera -- */
327static void sd_start(struct gspca_dev *gspca_dev) 327static int sd_start(struct gspca_dev *gspca_dev)
328{ 328{
329 int ret, value; 329 int ret, value;
330 330
@@ -374,9 +374,10 @@ static void sd_start(struct gspca_dev *gspca_dev)
374 set_par(gspca_dev, 0x01000000); 374 set_par(gspca_dev, 0x01000000);
375 set_par(gspca_dev, 0x01000000); 375 set_par(gspca_dev, 0x01000000);
376 PDEBUG(D_STREAM, "camera started alt: 0x%02x", gspca_dev->alt); 376 PDEBUG(D_STREAM, "camera started alt: 0x%02x", gspca_dev->alt);
377 return; 377 return 0;
378out: 378out:
379 PDEBUG(D_ERR|D_STREAM, "camera start err %d", ret); 379 PDEBUG(D_ERR|D_STREAM, "camera start err %d", ret);
380 return ret;
380} 381}
381 382
382static void sd_stopN(struct gspca_dev *gspca_dev) 383static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/sunplus.c b/drivers/media/video/gspca/sunplus.c
index 1cfcc6c49558..bd9288665a80 100644
--- a/drivers/media/video/gspca/sunplus.c
+++ b/drivers/media/video/gspca/sunplus.c
@@ -961,7 +961,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
961 return 0; 961 return 0;
962} 962}
963 963
964static void sd_start(struct gspca_dev *gspca_dev) 964static int sd_start(struct gspca_dev *gspca_dev)
965{ 965{
966 struct sd *sd = (struct sd *) gspca_dev; 966 struct sd *sd = (struct sd *) gspca_dev;
967 struct usb_device *dev = gspca_dev->dev; 967 struct usb_device *dev = gspca_dev->dev;
@@ -1042,6 +1042,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
1042 break; 1042 break;
1043 } 1043 }
1044 sp5xx_initContBrigHueRegisters(gspca_dev); 1044 sp5xx_initContBrigHueRegisters(gspca_dev);
1045 return 0;
1045} 1046}
1046 1047
1047static void sd_stopN(struct gspca_dev *gspca_dev) 1048static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/t613.c b/drivers/media/video/gspca/t613.c
index f034c748fc7e..78c674297592 100644
--- a/drivers/media/video/gspca/t613.c
+++ b/drivers/media/video/gspca/t613.c
@@ -849,7 +849,7 @@ static int sd_getlowlight(struct gspca_dev *gspca_dev, __s32 *val)
849 return 0; 849 return 0;
850} 850}
851 851
852static void sd_start(struct gspca_dev *gspca_dev) 852static int sd_start(struct gspca_dev *gspca_dev)
853{ 853{
854 int mode; 854 int mode;
855 855
@@ -898,6 +898,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
898 setbrightness(gspca_dev); 898 setbrightness(gspca_dev);
899 setcontrast(gspca_dev); 899 setcontrast(gspca_dev);
900 setcolors(gspca_dev); 900 setcolors(gspca_dev);
901 return 0;
901} 902}
902 903
903static void sd_pkt_scan(struct gspca_dev *gspca_dev, 904static void sd_pkt_scan(struct gspca_dev *gspca_dev,
diff --git a/drivers/media/video/gspca/tv8532.c b/drivers/media/video/gspca/tv8532.c
index 084af05302a0..968a5911704f 100644
--- a/drivers/media/video/gspca/tv8532.c
+++ b/drivers/media/video/gspca/tv8532.c
@@ -390,7 +390,7 @@ static void setbrightness(struct gspca_dev *gspca_dev)
390} 390}
391 391
392/* -- start the camera -- */ 392/* -- start the camera -- */
393static void sd_start(struct gspca_dev *gspca_dev) 393static int sd_start(struct gspca_dev *gspca_dev)
394{ 394{
395 reg_w_1(gspca_dev, TV8532_AD_SLOPE, 0x32); 395 reg_w_1(gspca_dev, TV8532_AD_SLOPE, 0x32);
396 reg_w_1(gspca_dev, TV8532_AD_BITCTRL, 0x00); 396 reg_w_1(gspca_dev, TV8532_AD_BITCTRL, 0x00);
@@ -443,6 +443,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
443 /************************************************/ 443 /************************************************/
444 tv_8532_PollReg(gspca_dev); 444 tv_8532_PollReg(gspca_dev);
445 reg_w_1(gspca_dev, TV8532_UDP_UPDATE, 0x00); /* 0x31 */ 445 reg_w_1(gspca_dev, TV8532_UDP_UPDATE, 0x00); /* 0x31 */
446 return 0;
446} 447}
447 448
448static void sd_stopN(struct gspca_dev *gspca_dev) 449static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/vc032x.c b/drivers/media/video/gspca/vc032x.c
index 0c68f433bb9b..be46d9232540 100644
--- a/drivers/media/video/gspca/vc032x.c
+++ b/drivers/media/video/gspca/vc032x.c
@@ -1501,7 +1501,7 @@ static void setlightfreq(struct gspca_dev *gspca_dev)
1501 usb_exchange(gspca_dev, ov7660_freq_tb[sd->lightfreq]); 1501 usb_exchange(gspca_dev, ov7660_freq_tb[sd->lightfreq]);
1502} 1502}
1503 1503
1504static void sd_start(struct gspca_dev *gspca_dev) 1504static int sd_start(struct gspca_dev *gspca_dev)
1505{ 1505{
1506 struct sd *sd = (struct sd *) gspca_dev; 1506 struct sd *sd = (struct sd *) gspca_dev;
1507 const __u8 *GammaT = NULL; 1507 const __u8 *GammaT = NULL;
@@ -1585,7 +1585,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
1585 break; 1585 break;
1586 default: 1586 default:
1587 PDEBUG(D_PROBE, "Damned !! no sensor found Bye"); 1587 PDEBUG(D_PROBE, "Damned !! no sensor found Bye");
1588 return; 1588 return -EMEDIUMTYPE;
1589 } 1589 }
1590 if (GammaT && MatrixT) { 1590 if (GammaT && MatrixT) {
1591 put_tab_to_reg(gspca_dev, GammaT, 17, 0xb84a); 1591 put_tab_to_reg(gspca_dev, GammaT, 17, 0xb84a);
@@ -1621,6 +1621,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
1621 setautogain(gspca_dev); 1621 setautogain(gspca_dev);
1622 setlightfreq(gspca_dev); 1622 setlightfreq(gspca_dev);
1623 } 1623 }
1624 return 0;
1624} 1625}
1625 1626
1626static void sd_stopN(struct gspca_dev *gspca_dev) 1627static void sd_stopN(struct gspca_dev *gspca_dev)
diff --git a/drivers/media/video/gspca/zc3xx.c b/drivers/media/video/gspca/zc3xx.c
index d61ef727e0c2..d0a4451dc46f 100644
--- a/drivers/media/video/gspca/zc3xx.c
+++ b/drivers/media/video/gspca/zc3xx.c
@@ -7178,7 +7178,7 @@ static int sd_init(struct gspca_dev *gspca_dev)
7178 return 0; 7178 return 0;
7179} 7179}
7180 7180
7181static void sd_start(struct gspca_dev *gspca_dev) 7181static int sd_start(struct gspca_dev *gspca_dev)
7182{ 7182{
7183 struct sd *sd = (struct sd *) gspca_dev; 7183 struct sd *sd = (struct sd *) gspca_dev;
7184 struct usb_device *dev = gspca_dev->dev; 7184 struct usb_device *dev = gspca_dev->dev;
@@ -7331,6 +7331,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
7331 reg_w(dev, 0x02, 0x0008); 7331 reg_w(dev, 0x02, 0x0008);
7332 break; 7332 break;
7333 } 7333 }
7334 return 0;
7334} 7335}
7335 7336
7336static void sd_stop0(struct gspca_dev *gspca_dev) 7337static void sd_stop0(struct gspca_dev *gspca_dev)