diff options
Diffstat (limited to 'drivers/media/video')
110 files changed, 268 insertions, 950 deletions
diff --git a/drivers/media/video/au0828/au0828-cards.c b/drivers/media/video/au0828/au0828-cards.c index 39fc923fc46..1c6015a04f9 100644 --- a/drivers/media/video/au0828/au0828-cards.c +++ b/drivers/media/video/au0828/au0828-cards.c | |||
@@ -162,11 +162,14 @@ static void hauppauge_eeprom(struct au0828_dev *dev, u8 *eeprom_data) | |||
162 | switch (tv.model) { | 162 | switch (tv.model) { |
163 | case 72000: /* WinTV-HVR950q (Retail, IR, ATSC/QAM */ | 163 | case 72000: /* WinTV-HVR950q (Retail, IR, ATSC/QAM */ |
164 | case 72001: /* WinTV-HVR950q (Retail, IR, ATSC/QAM and analog video */ | 164 | case 72001: /* WinTV-HVR950q (Retail, IR, ATSC/QAM and analog video */ |
165 | case 72101: /* WinTV-HVR950q (Retail, IR, ATSC/QAM and analog video */ | ||
166 | case 72201: /* WinTV-HVR950q (OEM, IR, ATSC/QAM and analog video */ | ||
165 | case 72211: /* WinTV-HVR950q (OEM, IR, ATSC/QAM and analog video */ | 167 | case 72211: /* WinTV-HVR950q (OEM, IR, ATSC/QAM and analog video */ |
166 | case 72221: /* WinTV-HVR950q (OEM, IR, ATSC/QAM and analog video */ | 168 | case 72221: /* WinTV-HVR950q (OEM, IR, ATSC/QAM and analog video */ |
167 | case 72231: /* WinTV-HVR950q (OEM, IR, ATSC/QAM and analog video */ | 169 | case 72231: /* WinTV-HVR950q (OEM, IR, ATSC/QAM and analog video */ |
168 | case 72241: /* WinTV-HVR950q (OEM, No IR, ATSC/QAM and analog video */ | 170 | case 72241: /* WinTV-HVR950q (OEM, No IR, ATSC/QAM and analog video */ |
169 | case 72251: /* WinTV-HVR950q (Retail, IR, ATSC/QAM and analog video */ | 171 | case 72251: /* WinTV-HVR950q (Retail, IR, ATSC/QAM and analog video */ |
172 | case 72261: /* WinTV-HVR950q (OEM, IR, ATSC/QAM and analog video */ | ||
170 | case 72301: /* WinTV-HVR850 (Retail, IR, ATSC and analog video */ | 173 | case 72301: /* WinTV-HVR850 (Retail, IR, ATSC and analog video */ |
171 | case 72500: /* WinTV-HVR950q (OEM, No IR, ATSC/QAM */ | 174 | case 72500: /* WinTV-HVR950q (OEM, No IR, ATSC/QAM */ |
172 | break; | 175 | break; |
@@ -324,6 +327,10 @@ struct usb_device_id au0828_usb_id_table[] = { | |||
324 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, | 327 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, |
325 | { USB_DEVICE(0x2040, 0x8200), | 328 | { USB_DEVICE(0x2040, 0x8200), |
326 | .driver_info = AU0828_BOARD_HAUPPAUGE_WOODBURY }, | 329 | .driver_info = AU0828_BOARD_HAUPPAUGE_WOODBURY }, |
330 | { USB_DEVICE(0x2040, 0x7260), | ||
331 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q }, | ||
332 | { USB_DEVICE(0x2040, 0x7213), | ||
333 | .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q }, | ||
327 | { }, | 334 | { }, |
328 | }; | 335 | }; |
329 | 336 | ||
diff --git a/drivers/media/video/c-qcam.c b/drivers/media/video/c-qcam.c index cd8ff047318..fda32f52554 100644 --- a/drivers/media/video/c-qcam.c +++ b/drivers/media/video/c-qcam.c | |||
@@ -72,7 +72,7 @@ struct qcam { | |||
72 | 72 | ||
73 | static int parport[MAX_CAMS] = { [1 ... MAX_CAMS-1] = -1 }; | 73 | static int parport[MAX_CAMS] = { [1 ... MAX_CAMS-1] = -1 }; |
74 | static int probe = 2; | 74 | static int probe = 2; |
75 | static int force_rgb; | 75 | static bool force_rgb; |
76 | static int video_nr = -1; | 76 | static int video_nr = -1; |
77 | 77 | ||
78 | /* FIXME: parport=auto would never have worked, surely? --RR */ | 78 | /* FIXME: parport=auto would never have worked, surely? --RR */ |
diff --git a/drivers/media/video/cs5345.c b/drivers/media/video/cs5345.c index 5909f2557ab..1d64af9adf7 100644 --- a/drivers/media/video/cs5345.c +++ b/drivers/media/video/cs5345.c | |||
@@ -31,7 +31,7 @@ MODULE_DESCRIPTION("i2c device driver for cs5345 Audio ADC"); | |||
31 | MODULE_AUTHOR("Hans Verkuil"); | 31 | MODULE_AUTHOR("Hans Verkuil"); |
32 | MODULE_LICENSE("GPL"); | 32 | MODULE_LICENSE("GPL"); |
33 | 33 | ||
34 | static int debug; | 34 | static bool debug; |
35 | 35 | ||
36 | module_param(debug, bool, 0644); | 36 | module_param(debug, bool, 0644); |
37 | 37 | ||
diff --git a/drivers/media/video/cs53l32a.c b/drivers/media/video/cs53l32a.c index d93e5ab45fd..51c5b9ad67d 100644 --- a/drivers/media/video/cs53l32a.c +++ b/drivers/media/video/cs53l32a.c | |||
@@ -35,7 +35,7 @@ MODULE_DESCRIPTION("i2c device driver for cs53l32a Audio ADC"); | |||
35 | MODULE_AUTHOR("Martin Vaughan"); | 35 | MODULE_AUTHOR("Martin Vaughan"); |
36 | MODULE_LICENSE("GPL"); | 36 | MODULE_LICENSE("GPL"); |
37 | 37 | ||
38 | static int debug; | 38 | static bool debug; |
39 | 39 | ||
40 | module_param(debug, bool, 0644); | 40 | module_param(debug, bool, 0644); |
41 | 41 | ||
diff --git a/drivers/media/video/cx18/cx18-driver.c b/drivers/media/video/cx18/cx18-driver.c index c6ff32a6137..349bd9c2aff 100644 --- a/drivers/media/video/cx18/cx18-driver.c +++ b/drivers/media/video/cx18/cx18-driver.c | |||
@@ -75,7 +75,7 @@ static int radio[CX18_MAX_CARDS] = { -1, -1, -1, -1, -1, -1, -1, -1, | |||
75 | -1, -1, -1, -1, -1, -1, -1, -1 }; | 75 | -1, -1, -1, -1, -1, -1, -1, -1 }; |
76 | static unsigned cardtype_c = 1; | 76 | static unsigned cardtype_c = 1; |
77 | static unsigned tuner_c = 1; | 77 | static unsigned tuner_c = 1; |
78 | static unsigned radio_c = 1; | 78 | static bool radio_c = 1; |
79 | static char pal[] = "--"; | 79 | static char pal[] = "--"; |
80 | static char secam[] = "--"; | 80 | static char secam[] = "--"; |
81 | static char ntsc[] = "-"; | 81 | static char ntsc[] = "-"; |
diff --git a/drivers/media/video/cx231xx/cx231xx-cards.c b/drivers/media/video/cx231xx/cx231xx-cards.c index 53dae2a8272..60b021e7986 100644 --- a/drivers/media/video/cx231xx/cx231xx-cards.c +++ b/drivers/media/video/cx231xx/cx231xx-cards.c | |||
@@ -1385,26 +1385,4 @@ static struct usb_driver cx231xx_usb_driver = { | |||
1385 | .id_table = cx231xx_id_table, | 1385 | .id_table = cx231xx_id_table, |
1386 | }; | 1386 | }; |
1387 | 1387 | ||
1388 | static int __init cx231xx_module_init(void) | 1388 | module_usb_driver(cx231xx_usb_driver); |
1389 | { | ||
1390 | int result; | ||
1391 | |||
1392 | printk(KERN_INFO DRIVER_NAME " v4l2 driver loaded.\n"); | ||
1393 | |||
1394 | /* register this driver with the USB subsystem */ | ||
1395 | result = usb_register(&cx231xx_usb_driver); | ||
1396 | if (result) | ||
1397 | cx231xx_err(DRIVER_NAME | ||
1398 | " usb_register failed. Error number %d.\n", result); | ||
1399 | |||
1400 | return result; | ||
1401 | } | ||
1402 | |||
1403 | static void __exit cx231xx_module_exit(void) | ||
1404 | { | ||
1405 | /* deregister this driver with the USB subsystem */ | ||
1406 | usb_deregister(&cx231xx_usb_driver); | ||
1407 | } | ||
1408 | |||
1409 | module_init(cx231xx_module_init); | ||
1410 | module_exit(cx231xx_module_exit); | ||
diff --git a/drivers/media/video/cx25821/cx25821-alsa.c b/drivers/media/video/cx25821/cx25821-alsa.c index 09e99de5fd2..58be4f3bb3c 100644 --- a/drivers/media/video/cx25821/cx25821-alsa.c +++ b/drivers/media/video/cx25821/cx25821-alsa.c | |||
@@ -102,7 +102,7 @@ struct cx25821_audio_dev { | |||
102 | 102 | ||
103 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ | 103 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ |
104 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ | 104 | static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ |
105 | static int enable[SNDRV_CARDS] = { 1, [1 ... (SNDRV_CARDS - 1)] = 1 }; | 105 | static bool enable[SNDRV_CARDS] = { 1, [1 ... (SNDRV_CARDS - 1)] = 1 }; |
106 | 106 | ||
107 | module_param_array(enable, bool, NULL, 0444); | 107 | module_param_array(enable, bool, NULL, 0444); |
108 | MODULE_PARM_DESC(enable, "Enable cx25821 soundcard. default enabled."); | 108 | MODULE_PARM_DESC(enable, "Enable cx25821 soundcard. default enabled."); |
diff --git a/drivers/media/video/cx88/cx88-alsa.c b/drivers/media/video/cx88/cx88-alsa.c index 68d1240f493..04bf6627d36 100644 --- a/drivers/media/video/cx88/cx88-alsa.c +++ b/drivers/media/video/cx88/cx88-alsa.c | |||
@@ -96,7 +96,7 @@ typedef struct cx88_audio_dev snd_cx88_card_t; | |||
96 | 96 | ||
97 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ | 97 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ |
98 | static const char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ | 98 | static const char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ |
99 | static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 1}; | 99 | static bool enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 1}; |
100 | 100 | ||
101 | module_param_array(enable, bool, NULL, 0444); | 101 | module_param_array(enable, bool, NULL, 0444); |
102 | MODULE_PARM_DESC(enable, "Enable cx88x soundcard. default enabled."); | 102 | MODULE_PARM_DESC(enable, "Enable cx88x soundcard. default enabled."); |
diff --git a/drivers/media/video/davinci/vpif.h b/drivers/media/video/davinci/vpif.h index 10550bd93b0..25036cb11be 100644 --- a/drivers/media/video/davinci/vpif.h +++ b/drivers/media/video/davinci/vpif.h | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/videodev2.h> | 20 | #include <linux/videodev2.h> |
21 | #include <mach/hardware.h> | 21 | #include <mach/hardware.h> |
22 | #include <mach/dm646x.h> | 22 | #include <mach/dm646x.h> |
23 | #include <media/davinci/vpif_types.h> | ||
23 | 24 | ||
24 | /* Maximum channel allowed */ | 25 | /* Maximum channel allowed */ |
25 | #define VPIF_NUM_CHANNELS (4) | 26 | #define VPIF_NUM_CHANNELS (4) |
diff --git a/drivers/media/video/davinci/vpif_capture.h b/drivers/media/video/davinci/vpif_capture.h index 064550f5ce4..a693d4ebda5 100644 --- a/drivers/media/video/davinci/vpif_capture.h +++ b/drivers/media/video/davinci/vpif_capture.h | |||
@@ -27,7 +27,7 @@ | |||
27 | #include <media/v4l2-device.h> | 27 | #include <media/v4l2-device.h> |
28 | #include <media/videobuf-core.h> | 28 | #include <media/videobuf-core.h> |
29 | #include <media/videobuf-dma-contig.h> | 29 | #include <media/videobuf-dma-contig.h> |
30 | #include <mach/dm646x.h> | 30 | #include <media/davinci/vpif_types.h> |
31 | 31 | ||
32 | #include "vpif.h" | 32 | #include "vpif.h" |
33 | 33 | ||
diff --git a/drivers/media/video/davinci/vpif_display.h b/drivers/media/video/davinci/vpif_display.h index 5d1936dafed..56879d1a068 100644 --- a/drivers/media/video/davinci/vpif_display.h +++ b/drivers/media/video/davinci/vpif_display.h | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <media/v4l2-device.h> | 22 | #include <media/v4l2-device.h> |
23 | #include <media/videobuf-core.h> | 23 | #include <media/videobuf-core.h> |
24 | #include <media/videobuf-dma-contig.h> | 24 | #include <media/videobuf-dma-contig.h> |
25 | #include <media/davinci/vpif_types.h> | ||
25 | 26 | ||
26 | #include "vpif.h" | 27 | #include "vpif.h" |
27 | 28 | ||
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c index 9b747c266af..93807dcf944 100644 --- a/drivers/media/video/em28xx/em28xx-cards.c +++ b/drivers/media/video/em28xx/em28xx-cards.c | |||
@@ -3325,26 +3325,4 @@ static struct usb_driver em28xx_usb_driver = { | |||
3325 | .id_table = em28xx_id_table, | 3325 | .id_table = em28xx_id_table, |
3326 | }; | 3326 | }; |
3327 | 3327 | ||
3328 | static int __init em28xx_module_init(void) | 3328 | module_usb_driver(em28xx_usb_driver); |
3329 | { | ||
3330 | int result; | ||
3331 | |||
3332 | /* register this driver with the USB subsystem */ | ||
3333 | result = usb_register(&em28xx_usb_driver); | ||
3334 | if (result) | ||
3335 | em28xx_err(DRIVER_NAME | ||
3336 | " usb_register failed. Error number %d.\n", result); | ||
3337 | |||
3338 | printk(KERN_INFO DRIVER_NAME " driver loaded\n"); | ||
3339 | |||
3340 | return result; | ||
3341 | } | ||
3342 | |||
3343 | static void __exit em28xx_module_exit(void) | ||
3344 | { | ||
3345 | /* deregister this driver with the USB subsystem */ | ||
3346 | usb_deregister(&em28xx_usb_driver); | ||
3347 | } | ||
3348 | |||
3349 | module_init(em28xx_module_init); | ||
3350 | module_exit(em28xx_module_exit); | ||
diff --git a/drivers/media/video/et61x251/et61x251_core.c b/drivers/media/video/et61x251/et61x251_core.c index d3777c86e1d..5539f09440a 100644 --- a/drivers/media/video/et61x251/et61x251_core.c +++ b/drivers/media/video/et61x251/et61x251_core.c | |||
@@ -76,8 +76,8 @@ MODULE_PARM_DESC(video_nr, | |||
76 | "\none and for every other camera." | 76 | "\none and for every other camera." |
77 | "\n"); | 77 | "\n"); |
78 | 78 | ||
79 | static short force_munmap[] = {[0 ... ET61X251_MAX_DEVICES-1] = | 79 | static bool force_munmap[] = {[0 ... ET61X251_MAX_DEVICES-1] = |
80 | ET61X251_FORCE_MUNMAP}; | 80 | ET61X251_FORCE_MUNMAP}; |
81 | module_param_array(force_munmap, bool, NULL, 0444); | 81 | module_param_array(force_munmap, bool, NULL, 0444); |
82 | MODULE_PARM_DESC(force_munmap, | 82 | MODULE_PARM_DESC(force_munmap, |
83 | "\n<0|1[,...]> Force the application to unmap previously" | 83 | "\n<0|1[,...]> Force the application to unmap previously" |
@@ -2680,27 +2680,4 @@ static struct usb_driver et61x251_usb_driver = { | |||
2680 | .disconnect = et61x251_usb_disconnect, | 2680 | .disconnect = et61x251_usb_disconnect, |
2681 | }; | 2681 | }; |
2682 | 2682 | ||
2683 | /*****************************************************************************/ | 2683 | module_usb_driver(et61x251_usb_driver); |
2684 | |||
2685 | static int __init et61x251_module_init(void) | ||
2686 | { | ||
2687 | int err = 0; | ||
2688 | |||
2689 | KDBG(2, ET61X251_MODULE_NAME " v" ET61X251_MODULE_VERSION); | ||
2690 | KDBG(3, ET61X251_MODULE_AUTHOR); | ||
2691 | |||
2692 | if ((err = usb_register(&et61x251_usb_driver))) | ||
2693 | KDBG(1, "usb_register() failed"); | ||
2694 | |||
2695 | return err; | ||
2696 | } | ||
2697 | |||
2698 | |||
2699 | static void __exit et61x251_module_exit(void) | ||
2700 | { | ||
2701 | usb_deregister(&et61x251_usb_driver); | ||
2702 | } | ||
2703 | |||
2704 | |||
2705 | module_init(et61x251_module_init); | ||
2706 | module_exit(et61x251_module_exit); | ||
diff --git a/drivers/media/video/gspca/benq.c b/drivers/media/video/gspca/benq.c index 6ae26160b81..636627b57dc 100644 --- a/drivers/media/video/gspca/benq.c +++ b/drivers/media/video/gspca/benq.c | |||
@@ -288,15 +288,4 @@ static struct usb_driver sd_driver = { | |||
288 | #endif | 288 | #endif |
289 | }; | 289 | }; |
290 | 290 | ||
291 | /* -- module insert / remove -- */ | 291 | module_usb_driver(sd_driver); |
292 | static int __init sd_mod_init(void) | ||
293 | { | ||
294 | return usb_register(&sd_driver); | ||
295 | } | ||
296 | static void __exit sd_mod_exit(void) | ||
297 | { | ||
298 | usb_deregister(&sd_driver); | ||
299 | } | ||
300 | |||
301 | module_init(sd_mod_init); | ||
302 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/conex.c b/drivers/media/video/gspca/conex.c index 4c56dbef6d9..ea17b5d94ea 100644 --- a/drivers/media/video/gspca/conex.c +++ b/drivers/media/video/gspca/conex.c | |||
@@ -1067,15 +1067,4 @@ static struct usb_driver sd_driver = { | |||
1067 | #endif | 1067 | #endif |
1068 | }; | 1068 | }; |
1069 | 1069 | ||
1070 | /* -- module insert / remove -- */ | 1070 | module_usb_driver(sd_driver); |
1071 | static int __init sd_mod_init(void) | ||
1072 | { | ||
1073 | return usb_register(&sd_driver); | ||
1074 | } | ||
1075 | static void __exit sd_mod_exit(void) | ||
1076 | { | ||
1077 | usb_deregister(&sd_driver); | ||
1078 | } | ||
1079 | |||
1080 | module_init(sd_mod_init); | ||
1081 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/cpia1.c b/drivers/media/video/gspca/cpia1.c index f9b86b2484b..8f33bbd091a 100644 --- a/drivers/media/video/gspca/cpia1.c +++ b/drivers/media/video/gspca/cpia1.c | |||
@@ -2132,15 +2132,4 @@ static struct usb_driver sd_driver = { | |||
2132 | #endif | 2132 | #endif |
2133 | }; | 2133 | }; |
2134 | 2134 | ||
2135 | /* -- module insert / remove -- */ | 2135 | module_usb_driver(sd_driver); |
2136 | static int __init sd_mod_init(void) | ||
2137 | { | ||
2138 | return usb_register(&sd_driver); | ||
2139 | } | ||
2140 | static void __exit sd_mod_exit(void) | ||
2141 | { | ||
2142 | usb_deregister(&sd_driver); | ||
2143 | } | ||
2144 | |||
2145 | module_init(sd_mod_init); | ||
2146 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/etoms.c b/drivers/media/video/gspca/etoms.c index 0357d6d461d..81a4adbd9f7 100644 --- a/drivers/media/video/gspca/etoms.c +++ b/drivers/media/video/gspca/etoms.c | |||
@@ -895,16 +895,4 @@ static struct usb_driver sd_driver = { | |||
895 | #endif | 895 | #endif |
896 | }; | 896 | }; |
897 | 897 | ||
898 | /* -- module insert / remove -- */ | 898 | module_usb_driver(sd_driver); |
899 | static int __init sd_mod_init(void) | ||
900 | { | ||
901 | return usb_register(&sd_driver); | ||
902 | } | ||
903 | |||
904 | static void __exit sd_mod_exit(void) | ||
905 | { | ||
906 | usb_deregister(&sd_driver); | ||
907 | } | ||
908 | |||
909 | module_init(sd_mod_init); | ||
910 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/finepix.c b/drivers/media/video/gspca/finepix.c index ea48200fd3a..0107513cd72 100644 --- a/drivers/media/video/gspca/finepix.c +++ b/drivers/media/video/gspca/finepix.c | |||
@@ -290,16 +290,4 @@ static struct usb_driver sd_driver = { | |||
290 | #endif | 290 | #endif |
291 | }; | 291 | }; |
292 | 292 | ||
293 | /* -- module insert / remove -- */ | 293 | module_usb_driver(sd_driver); |
294 | static int __init sd_mod_init(void) | ||
295 | { | ||
296 | return usb_register(&sd_driver); | ||
297 | } | ||
298 | |||
299 | static void __exit sd_mod_exit(void) | ||
300 | { | ||
301 | usb_deregister(&sd_driver); | ||
302 | } | ||
303 | |||
304 | module_init(sd_mod_init); | ||
305 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/gl860/gl860.c b/drivers/media/video/gspca/gl860/gl860.c index 2ced3b73994..a8f54c20e58 100644 --- a/drivers/media/video/gspca/gl860/gl860.c +++ b/drivers/media/video/gspca/gl860/gl860.c | |||
@@ -524,22 +524,7 @@ static struct usb_driver sd_driver = { | |||
524 | 524 | ||
525 | /*====================== Init and Exit module functions ====================*/ | 525 | /*====================== Init and Exit module functions ====================*/ |
526 | 526 | ||
527 | static int __init sd_mod_init(void) | 527 | module_usb_driver(sd_driver); |
528 | { | ||
529 | PDEBUG(D_PROBE, "driver startup - version %s", DRIVER_VERSION); | ||
530 | |||
531 | if (usb_register(&sd_driver) < 0) | ||
532 | return -1; | ||
533 | return 0; | ||
534 | } | ||
535 | |||
536 | static void __exit sd_mod_exit(void) | ||
537 | { | ||
538 | usb_deregister(&sd_driver); | ||
539 | } | ||
540 | |||
541 | module_init(sd_mod_init); | ||
542 | module_exit(sd_mod_exit); | ||
543 | 528 | ||
544 | /*==========================================================================*/ | 529 | /*==========================================================================*/ |
545 | 530 | ||
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c index 881e04c7ffe..2ca10dfec91 100644 --- a/drivers/media/video/gspca/gspca.c +++ b/drivers/media/video/gspca/gspca.c | |||
@@ -838,13 +838,13 @@ static int gspca_init_transfer(struct gspca_dev *gspca_dev) | |||
838 | gspca_dev->usb_err = 0; | 838 | gspca_dev->usb_err = 0; |
839 | 839 | ||
840 | /* do the specific subdriver stuff before endpoint selection */ | 840 | /* do the specific subdriver stuff before endpoint selection */ |
841 | gspca_dev->alt = 0; | 841 | intf = usb_ifnum_to_if(gspca_dev->dev, gspca_dev->iface); |
842 | gspca_dev->alt = gspca_dev->cam.bulk ? intf->num_altsetting : 0; | ||
842 | if (gspca_dev->sd_desc->isoc_init) { | 843 | if (gspca_dev->sd_desc->isoc_init) { |
843 | ret = gspca_dev->sd_desc->isoc_init(gspca_dev); | 844 | ret = gspca_dev->sd_desc->isoc_init(gspca_dev); |
844 | if (ret < 0) | 845 | if (ret < 0) |
845 | goto unlock; | 846 | goto unlock; |
846 | } | 847 | } |
847 | intf = usb_ifnum_to_if(gspca_dev->dev, gspca_dev->iface); | ||
848 | xfer = gspca_dev->cam.bulk ? USB_ENDPOINT_XFER_BULK | 848 | xfer = gspca_dev->cam.bulk ? USB_ENDPOINT_XFER_BULK |
849 | : USB_ENDPOINT_XFER_ISOC; | 849 | : USB_ENDPOINT_XFER_ISOC; |
850 | 850 | ||
@@ -957,7 +957,7 @@ retry: | |||
957 | ret = -EIO; | 957 | ret = -EIO; |
958 | goto out; | 958 | goto out; |
959 | } | 959 | } |
960 | alt = ep_tb[--alt_idx].alt; | 960 | gspca_dev->alt = ep_tb[--alt_idx].alt; |
961 | } | 961 | } |
962 | } | 962 | } |
963 | out: | 963 | out: |
diff --git a/drivers/media/video/gspca/jeilinj.c b/drivers/media/video/gspca/jeilinj.c index 8e3dabe3007..5ab3f7e1276 100644 --- a/drivers/media/video/gspca/jeilinj.c +++ b/drivers/media/video/gspca/jeilinj.c | |||
@@ -582,16 +582,4 @@ static struct usb_driver sd_driver = { | |||
582 | #endif | 582 | #endif |
583 | }; | 583 | }; |
584 | 584 | ||
585 | /* -- module insert / remove -- */ | 585 | module_usb_driver(sd_driver); |
586 | static int __init sd_mod_init(void) | ||
587 | { | ||
588 | return usb_register(&sd_driver); | ||
589 | } | ||
590 | |||
591 | static void __exit sd_mod_exit(void) | ||
592 | { | ||
593 | usb_deregister(&sd_driver); | ||
594 | } | ||
595 | |||
596 | module_init(sd_mod_init); | ||
597 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/kinect.c b/drivers/media/video/gspca/kinect.c index 4fe51fda80f..e8e8f2fe916 100644 --- a/drivers/media/video/gspca/kinect.c +++ b/drivers/media/video/gspca/kinect.c | |||
@@ -413,16 +413,4 @@ static struct usb_driver sd_driver = { | |||
413 | #endif | 413 | #endif |
414 | }; | 414 | }; |
415 | 415 | ||
416 | /* -- module insert / remove -- */ | 416 | module_usb_driver(sd_driver); |
417 | static int __init sd_mod_init(void) | ||
418 | { | ||
419 | return usb_register(&sd_driver); | ||
420 | } | ||
421 | |||
422 | static void __exit sd_mod_exit(void) | ||
423 | { | ||
424 | usb_deregister(&sd_driver); | ||
425 | } | ||
426 | |||
427 | module_init(sd_mod_init); | ||
428 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/konica.c b/drivers/media/video/gspca/konica.c index f3f7fe0ec4b..b1da7f4096c 100644 --- a/drivers/media/video/gspca/konica.c +++ b/drivers/media/video/gspca/konica.c | |||
@@ -634,15 +634,4 @@ static struct usb_driver sd_driver = { | |||
634 | #endif | 634 | #endif |
635 | }; | 635 | }; |
636 | 636 | ||
637 | /* -- module insert / remove -- */ | 637 | module_usb_driver(sd_driver); |
638 | static int __init sd_mod_init(void) | ||
639 | { | ||
640 | return usb_register(&sd_driver); | ||
641 | } | ||
642 | static void __exit sd_mod_exit(void) | ||
643 | { | ||
644 | usb_deregister(&sd_driver); | ||
645 | } | ||
646 | |||
647 | module_init(sd_mod_init); | ||
648 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/m5602/m5602_core.c b/drivers/media/video/gspca/m5602/m5602_core.c index 67533e5582a..0c449367543 100644 --- a/drivers/media/video/gspca/m5602/m5602_core.c +++ b/drivers/media/video/gspca/m5602/m5602_core.c | |||
@@ -27,8 +27,8 @@ | |||
27 | 27 | ||
28 | /* Kernel module parameters */ | 28 | /* Kernel module parameters */ |
29 | int force_sensor; | 29 | int force_sensor; |
30 | static int dump_bridge; | 30 | static bool dump_bridge; |
31 | int dump_sensor; | 31 | bool dump_sensor; |
32 | 32 | ||
33 | static const struct usb_device_id m5602_table[] = { | 33 | static const struct usb_device_id m5602_table[] = { |
34 | {USB_DEVICE(0x0402, 0x5602)}, | 34 | {USB_DEVICE(0x0402, 0x5602)}, |
@@ -404,19 +404,7 @@ static struct usb_driver sd_driver = { | |||
404 | .disconnect = m5602_disconnect | 404 | .disconnect = m5602_disconnect |
405 | }; | 405 | }; |
406 | 406 | ||
407 | /* -- module insert / remove -- */ | 407 | module_usb_driver(sd_driver); |
408 | static int __init mod_m5602_init(void) | ||
409 | { | ||
410 | return usb_register(&sd_driver); | ||
411 | } | ||
412 | |||
413 | static void __exit mod_m5602_exit(void) | ||
414 | { | ||
415 | usb_deregister(&sd_driver); | ||
416 | } | ||
417 | |||
418 | module_init(mod_m5602_init); | ||
419 | module_exit(mod_m5602_exit); | ||
420 | 408 | ||
421 | MODULE_AUTHOR(DRIVER_AUTHOR); | 409 | MODULE_AUTHOR(DRIVER_AUTHOR); |
422 | MODULE_DESCRIPTION(DRIVER_DESC); | 410 | MODULE_DESCRIPTION(DRIVER_DESC); |
diff --git a/drivers/media/video/gspca/m5602/m5602_mt9m111.h b/drivers/media/video/gspca/m5602/m5602_mt9m111.h index b1f0c492036..8c672b5c8c6 100644 --- a/drivers/media/video/gspca/m5602/m5602_mt9m111.h +++ b/drivers/media/video/gspca/m5602/m5602_mt9m111.h | |||
@@ -106,7 +106,7 @@ | |||
106 | 106 | ||
107 | /* Kernel module parameters */ | 107 | /* Kernel module parameters */ |
108 | extern int force_sensor; | 108 | extern int force_sensor; |
109 | extern int dump_sensor; | 109 | extern bool dump_sensor; |
110 | 110 | ||
111 | int mt9m111_probe(struct sd *sd); | 111 | int mt9m111_probe(struct sd *sd); |
112 | int mt9m111_init(struct sd *sd); | 112 | int mt9m111_init(struct sd *sd); |
diff --git a/drivers/media/video/gspca/m5602/m5602_ov7660.h b/drivers/media/video/gspca/m5602/m5602_ov7660.h index 2efd607987e..2b6a13b508f 100644 --- a/drivers/media/video/gspca/m5602/m5602_ov7660.h +++ b/drivers/media/video/gspca/m5602/m5602_ov7660.h | |||
@@ -86,7 +86,7 @@ | |||
86 | 86 | ||
87 | /* Kernel module parameters */ | 87 | /* Kernel module parameters */ |
88 | extern int force_sensor; | 88 | extern int force_sensor; |
89 | extern int dump_sensor; | 89 | extern bool dump_sensor; |
90 | 90 | ||
91 | int ov7660_probe(struct sd *sd); | 91 | int ov7660_probe(struct sd *sd); |
92 | int ov7660_init(struct sd *sd); | 92 | int ov7660_init(struct sd *sd); |
diff --git a/drivers/media/video/gspca/m5602/m5602_ov9650.h b/drivers/media/video/gspca/m5602/m5602_ov9650.h index da9a129b739..f7aa5bf6898 100644 --- a/drivers/media/video/gspca/m5602/m5602_ov9650.h +++ b/drivers/media/video/gspca/m5602/m5602_ov9650.h | |||
@@ -135,7 +135,7 @@ | |||
135 | 135 | ||
136 | /* Kernel module parameters */ | 136 | /* Kernel module parameters */ |
137 | extern int force_sensor; | 137 | extern int force_sensor; |
138 | extern int dump_sensor; | 138 | extern bool dump_sensor; |
139 | 139 | ||
140 | int ov9650_probe(struct sd *sd); | 140 | int ov9650_probe(struct sd *sd); |
141 | int ov9650_init(struct sd *sd); | 141 | int ov9650_init(struct sd *sd); |
diff --git a/drivers/media/video/gspca/m5602/m5602_po1030.h b/drivers/media/video/gspca/m5602/m5602_po1030.h index 33835959639..81a2bcb88fe 100644 --- a/drivers/media/video/gspca/m5602/m5602_po1030.h +++ b/drivers/media/video/gspca/m5602/m5602_po1030.h | |||
@@ -147,7 +147,7 @@ | |||
147 | 147 | ||
148 | /* Kernel module parameters */ | 148 | /* Kernel module parameters */ |
149 | extern int force_sensor; | 149 | extern int force_sensor; |
150 | extern int dump_sensor; | 150 | extern bool dump_sensor; |
151 | 151 | ||
152 | int po1030_probe(struct sd *sd); | 152 | int po1030_probe(struct sd *sd); |
153 | int po1030_init(struct sd *sd); | 153 | int po1030_init(struct sd *sd); |
diff --git a/drivers/media/video/gspca/m5602/m5602_s5k4aa.h b/drivers/media/video/gspca/m5602/m5602_s5k4aa.h index 8cc7a3f6da7..8e0035e731c 100644 --- a/drivers/media/video/gspca/m5602/m5602_s5k4aa.h +++ b/drivers/media/video/gspca/m5602/m5602_s5k4aa.h | |||
@@ -65,7 +65,7 @@ | |||
65 | 65 | ||
66 | /* Kernel module parameters */ | 66 | /* Kernel module parameters */ |
67 | extern int force_sensor; | 67 | extern int force_sensor; |
68 | extern int dump_sensor; | 68 | extern bool dump_sensor; |
69 | 69 | ||
70 | int s5k4aa_probe(struct sd *sd); | 70 | int s5k4aa_probe(struct sd *sd); |
71 | int s5k4aa_init(struct sd *sd); | 71 | int s5k4aa_init(struct sd *sd); |
diff --git a/drivers/media/video/gspca/m5602/m5602_s5k83a.h b/drivers/media/video/gspca/m5602/m5602_s5k83a.h index 80a63a236e2..79952247b53 100644 --- a/drivers/media/video/gspca/m5602/m5602_s5k83a.h +++ b/drivers/media/video/gspca/m5602/m5602_s5k83a.h | |||
@@ -41,7 +41,7 @@ | |||
41 | 41 | ||
42 | /* Kernel module parameters */ | 42 | /* Kernel module parameters */ |
43 | extern int force_sensor; | 43 | extern int force_sensor; |
44 | extern int dump_sensor; | 44 | extern bool dump_sensor; |
45 | 45 | ||
46 | int s5k83a_probe(struct sd *sd); | 46 | int s5k83a_probe(struct sd *sd); |
47 | int s5k83a_init(struct sd *sd); | 47 | int s5k83a_init(struct sd *sd); |
diff --git a/drivers/media/video/gspca/mars.c b/drivers/media/video/gspca/mars.c index ef45fa57575..5c2ea05c46b 100644 --- a/drivers/media/video/gspca/mars.c +++ b/drivers/media/video/gspca/mars.c | |||
@@ -517,15 +517,4 @@ static struct usb_driver sd_driver = { | |||
517 | #endif | 517 | #endif |
518 | }; | 518 | }; |
519 | 519 | ||
520 | /* -- module insert / remove -- */ | 520 | module_usb_driver(sd_driver); |
521 | static int __init sd_mod_init(void) | ||
522 | { | ||
523 | return usb_register(&sd_driver); | ||
524 | } | ||
525 | static void __exit sd_mod_exit(void) | ||
526 | { | ||
527 | usb_deregister(&sd_driver); | ||
528 | } | ||
529 | |||
530 | module_init(sd_mod_init); | ||
531 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/mr97310a.c b/drivers/media/video/gspca/mr97310a.c index 473e813b680..d73e5bd3dbf 100644 --- a/drivers/media/video/gspca/mr97310a.c +++ b/drivers/media/video/gspca/mr97310a.c | |||
@@ -1259,15 +1259,4 @@ static struct usb_driver sd_driver = { | |||
1259 | #endif | 1259 | #endif |
1260 | }; | 1260 | }; |
1261 | 1261 | ||
1262 | /* -- module insert / remove -- */ | 1262 | module_usb_driver(sd_driver); |
1263 | static int __init sd_mod_init(void) | ||
1264 | { | ||
1265 | return usb_register(&sd_driver); | ||
1266 | } | ||
1267 | static void __exit sd_mod_exit(void) | ||
1268 | { | ||
1269 | usb_deregister(&sd_driver); | ||
1270 | } | ||
1271 | |||
1272 | module_init(sd_mod_init); | ||
1273 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/nw80x.c b/drivers/media/video/gspca/nw80x.c index 7681814e594..d4bec932177 100644 --- a/drivers/media/video/gspca/nw80x.c +++ b/drivers/media/video/gspca/nw80x.c | |||
@@ -2118,18 +2118,7 @@ static struct usb_driver sd_driver = { | |||
2118 | #endif | 2118 | #endif |
2119 | }; | 2119 | }; |
2120 | 2120 | ||
2121 | /* -- module insert / remove -- */ | 2121 | module_usb_driver(sd_driver); |
2122 | static int __init sd_mod_init(void) | ||
2123 | { | ||
2124 | return usb_register(&sd_driver); | ||
2125 | } | ||
2126 | static void __exit sd_mod_exit(void) | ||
2127 | { | ||
2128 | usb_deregister(&sd_driver); | ||
2129 | } | ||
2130 | |||
2131 | module_init(sd_mod_init); | ||
2132 | module_exit(sd_mod_exit); | ||
2133 | 2122 | ||
2134 | module_param(webcam, int, 0644); | 2123 | module_param(webcam, int, 0644); |
2135 | MODULE_PARM_DESC(webcam, | 2124 | MODULE_PARM_DESC(webcam, |
diff --git a/drivers/media/video/gspca/ov519.c b/drivers/media/video/gspca/ov519.c index 6a01b35a947..08b8ce1dee1 100644 --- a/drivers/media/video/gspca/ov519.c +++ b/drivers/media/video/gspca/ov519.c | |||
@@ -5056,18 +5056,7 @@ static struct usb_driver sd_driver = { | |||
5056 | #endif | 5056 | #endif |
5057 | }; | 5057 | }; |
5058 | 5058 | ||
5059 | /* -- module insert / remove -- */ | 5059 | module_usb_driver(sd_driver); |
5060 | static int __init sd_mod_init(void) | ||
5061 | { | ||
5062 | return usb_register(&sd_driver); | ||
5063 | } | ||
5064 | static void __exit sd_mod_exit(void) | ||
5065 | { | ||
5066 | usb_deregister(&sd_driver); | ||
5067 | } | ||
5068 | |||
5069 | module_init(sd_mod_init); | ||
5070 | module_exit(sd_mod_exit); | ||
5071 | 5060 | ||
5072 | module_param(frame_rate, int, 0644); | 5061 | module_param(frame_rate, int, 0644); |
5073 | MODULE_PARM_DESC(frame_rate, "Frame rate (5, 10, 15, 20 or 30 fps)"); | 5062 | MODULE_PARM_DESC(frame_rate, "Frame rate (5, 10, 15, 20 or 30 fps)"); |
diff --git a/drivers/media/video/gspca/ov534.c b/drivers/media/video/gspca/ov534.c index 76907eced4a..04753391de3 100644 --- a/drivers/media/video/gspca/ov534.c +++ b/drivers/media/video/gspca/ov534.c | |||
@@ -1533,16 +1533,4 @@ static struct usb_driver sd_driver = { | |||
1533 | #endif | 1533 | #endif |
1534 | }; | 1534 | }; |
1535 | 1535 | ||
1536 | /* -- module insert / remove -- */ | 1536 | module_usb_driver(sd_driver); |
1537 | static int __init sd_mod_init(void) | ||
1538 | { | ||
1539 | return usb_register(&sd_driver); | ||
1540 | } | ||
1541 | |||
1542 | static void __exit sd_mod_exit(void) | ||
1543 | { | ||
1544 | usb_deregister(&sd_driver); | ||
1545 | } | ||
1546 | |||
1547 | module_init(sd_mod_init); | ||
1548 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/ov534_9.c b/drivers/media/video/gspca/ov534_9.c index b3b1ea60a84..f30060d5063 100644 --- a/drivers/media/video/gspca/ov534_9.c +++ b/drivers/media/video/gspca/ov534_9.c | |||
@@ -1432,16 +1432,4 @@ static struct usb_driver sd_driver = { | |||
1432 | #endif | 1432 | #endif |
1433 | }; | 1433 | }; |
1434 | 1434 | ||
1435 | /* -- module insert / remove -- */ | 1435 | module_usb_driver(sd_driver); |
1436 | static int __init sd_mod_init(void) | ||
1437 | { | ||
1438 | return usb_register(&sd_driver); | ||
1439 | } | ||
1440 | |||
1441 | static void __exit sd_mod_exit(void) | ||
1442 | { | ||
1443 | usb_deregister(&sd_driver); | ||
1444 | } | ||
1445 | |||
1446 | module_init(sd_mod_init); | ||
1447 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/pac207.c b/drivers/media/video/gspca/pac207.c index 1600df152fd..ece8b1e82a1 100644 --- a/drivers/media/video/gspca/pac207.c +++ b/drivers/media/video/gspca/pac207.c | |||
@@ -569,15 +569,4 @@ static struct usb_driver sd_driver = { | |||
569 | #endif | 569 | #endif |
570 | }; | 570 | }; |
571 | 571 | ||
572 | /* -- module insert / remove -- */ | 572 | module_usb_driver(sd_driver); |
573 | static int __init sd_mod_init(void) | ||
574 | { | ||
575 | return usb_register(&sd_driver); | ||
576 | } | ||
577 | static void __exit sd_mod_exit(void) | ||
578 | { | ||
579 | usb_deregister(&sd_driver); | ||
580 | } | ||
581 | |||
582 | module_init(sd_mod_init); | ||
583 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/pac7302.c b/drivers/media/video/gspca/pac7302.c index 1c44f78ff9e..2811195258c 100644 --- a/drivers/media/video/gspca/pac7302.c +++ b/drivers/media/video/gspca/pac7302.c | |||
@@ -1220,15 +1220,4 @@ static struct usb_driver sd_driver = { | |||
1220 | #endif | 1220 | #endif |
1221 | }; | 1221 | }; |
1222 | 1222 | ||
1223 | /* -- module insert / remove -- */ | 1223 | module_usb_driver(sd_driver); |
1224 | static int __init sd_mod_init(void) | ||
1225 | { | ||
1226 | return usb_register(&sd_driver); | ||
1227 | } | ||
1228 | static void __exit sd_mod_exit(void) | ||
1229 | { | ||
1230 | usb_deregister(&sd_driver); | ||
1231 | } | ||
1232 | |||
1233 | module_init(sd_mod_init); | ||
1234 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/pac7311.c b/drivers/media/video/gspca/pac7311.c index 7509d05dc06..1ac111176ff 100644 --- a/drivers/media/video/gspca/pac7311.c +++ b/drivers/media/video/gspca/pac7311.c | |||
@@ -868,15 +868,4 @@ static struct usb_driver sd_driver = { | |||
868 | #endif | 868 | #endif |
869 | }; | 869 | }; |
870 | 870 | ||
871 | /* -- module insert / remove -- */ | 871 | module_usb_driver(sd_driver); |
872 | static int __init sd_mod_init(void) | ||
873 | { | ||
874 | return usb_register(&sd_driver); | ||
875 | } | ||
876 | static void __exit sd_mod_exit(void) | ||
877 | { | ||
878 | usb_deregister(&sd_driver); | ||
879 | } | ||
880 | |||
881 | module_init(sd_mod_init); | ||
882 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/se401.c b/drivers/media/video/gspca/se401.c index 3b71bbcd977..1494e1829d3 100644 --- a/drivers/media/video/gspca/se401.c +++ b/drivers/media/video/gspca/se401.c | |||
@@ -766,15 +766,4 @@ static struct usb_driver sd_driver = { | |||
766 | .post_reset = sd_post_reset, | 766 | .post_reset = sd_post_reset, |
767 | }; | 767 | }; |
768 | 768 | ||
769 | /* -- module insert / remove -- */ | 769 | module_usb_driver(sd_driver); |
770 | static int __init sd_mod_init(void) | ||
771 | { | ||
772 | return usb_register(&sd_driver); | ||
773 | } | ||
774 | static void __exit sd_mod_exit(void) | ||
775 | { | ||
776 | usb_deregister(&sd_driver); | ||
777 | } | ||
778 | |||
779 | module_init(sd_mod_init); | ||
780 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/sn9c2028.c b/drivers/media/video/gspca/sn9c2028.c index 48aae3926a3..478533cb115 100644 --- a/drivers/media/video/gspca/sn9c2028.c +++ b/drivers/media/video/gspca/sn9c2028.c | |||
@@ -737,16 +737,4 @@ static struct usb_driver sd_driver = { | |||
737 | #endif | 737 | #endif |
738 | }; | 738 | }; |
739 | 739 | ||
740 | /* -- module insert / remove -- */ | 740 | module_usb_driver(sd_driver); |
741 | static int __init sd_mod_init(void) | ||
742 | { | ||
743 | return usb_register(&sd_driver); | ||
744 | } | ||
745 | |||
746 | static void __exit sd_mod_exit(void) | ||
747 | { | ||
748 | usb_deregister(&sd_driver); | ||
749 | } | ||
750 | |||
751 | module_init(sd_mod_init); | ||
752 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/sn9c20x.c b/drivers/media/video/gspca/sn9c20x.c index 86e07a139a1..33cabc342dc 100644 --- a/drivers/media/video/gspca/sn9c20x.c +++ b/drivers/media/video/gspca/sn9c20x.c | |||
@@ -2554,15 +2554,4 @@ static struct usb_driver sd_driver = { | |||
2554 | #endif | 2554 | #endif |
2555 | }; | 2555 | }; |
2556 | 2556 | ||
2557 | /* -- module insert / remove -- */ | 2557 | module_usb_driver(sd_driver); |
2558 | static int __init sd_mod_init(void) | ||
2559 | { | ||
2560 | return usb_register(&sd_driver); | ||
2561 | } | ||
2562 | static void __exit sd_mod_exit(void) | ||
2563 | { | ||
2564 | usb_deregister(&sd_driver); | ||
2565 | } | ||
2566 | |||
2567 | module_init(sd_mod_init); | ||
2568 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/sonixb.c b/drivers/media/video/gspca/sonixb.c index 146b459b08d..ddb392dc4f2 100644 --- a/drivers/media/video/gspca/sonixb.c +++ b/drivers/media/video/gspca/sonixb.c | |||
@@ -1527,15 +1527,4 @@ static struct usb_driver sd_driver = { | |||
1527 | #endif | 1527 | #endif |
1528 | }; | 1528 | }; |
1529 | 1529 | ||
1530 | /* -- module insert / remove -- */ | 1530 | module_usb_driver(sd_driver); |
1531 | static int __init sd_mod_init(void) | ||
1532 | { | ||
1533 | return usb_register(&sd_driver); | ||
1534 | } | ||
1535 | static void __exit sd_mod_exit(void) | ||
1536 | { | ||
1537 | usb_deregister(&sd_driver); | ||
1538 | } | ||
1539 | |||
1540 | module_init(sd_mod_init); | ||
1541 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/sonixj.c b/drivers/media/video/gspca/sonixj.c index c746bf19ca1..afa3186b803 100644 --- a/drivers/media/video/gspca/sonixj.c +++ b/drivers/media/video/gspca/sonixj.c | |||
@@ -3104,15 +3104,4 @@ static struct usb_driver sd_driver = { | |||
3104 | #endif | 3104 | #endif |
3105 | }; | 3105 | }; |
3106 | 3106 | ||
3107 | /* -- module insert / remove -- */ | 3107 | module_usb_driver(sd_driver); |
3108 | static int __init sd_mod_init(void) | ||
3109 | { | ||
3110 | return usb_register(&sd_driver); | ||
3111 | } | ||
3112 | static void __exit sd_mod_exit(void) | ||
3113 | { | ||
3114 | usb_deregister(&sd_driver); | ||
3115 | } | ||
3116 | |||
3117 | module_init(sd_mod_init); | ||
3118 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/spca1528.c b/drivers/media/video/gspca/spca1528.c index 695673106e7..070b9c33b51 100644 --- a/drivers/media/video/gspca/spca1528.c +++ b/drivers/media/video/gspca/spca1528.c | |||
@@ -590,15 +590,4 @@ static struct usb_driver sd_driver = { | |||
590 | #endif | 590 | #endif |
591 | }; | 591 | }; |
592 | 592 | ||
593 | /* -- module insert / remove -- */ | 593 | module_usb_driver(sd_driver); |
594 | static int __init sd_mod_init(void) | ||
595 | { | ||
596 | return usb_register(&sd_driver); | ||
597 | } | ||
598 | static void __exit sd_mod_exit(void) | ||
599 | { | ||
600 | usb_deregister(&sd_driver); | ||
601 | } | ||
602 | |||
603 | module_init(sd_mod_init); | ||
604 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/spca500.c b/drivers/media/video/gspca/spca500.c index bb82c94ece1..103984708c7 100644 --- a/drivers/media/video/gspca/spca500.c +++ b/drivers/media/video/gspca/spca500.c | |||
@@ -1092,15 +1092,4 @@ static struct usb_driver sd_driver = { | |||
1092 | #endif | 1092 | #endif |
1093 | }; | 1093 | }; |
1094 | 1094 | ||
1095 | /* -- module insert / remove -- */ | 1095 | module_usb_driver(sd_driver); |
1096 | static int __init sd_mod_init(void) | ||
1097 | { | ||
1098 | return usb_register(&sd_driver); | ||
1099 | } | ||
1100 | static void __exit sd_mod_exit(void) | ||
1101 | { | ||
1102 | usb_deregister(&sd_driver); | ||
1103 | } | ||
1104 | |||
1105 | module_init(sd_mod_init); | ||
1106 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/spca501.c b/drivers/media/video/gspca/spca501.c index 7aaac72aee9..9c16821addd 100644 --- a/drivers/media/video/gspca/spca501.c +++ b/drivers/media/video/gspca/spca501.c | |||
@@ -2188,15 +2188,4 @@ static struct usb_driver sd_driver = { | |||
2188 | #endif | 2188 | #endif |
2189 | }; | 2189 | }; |
2190 | 2190 | ||
2191 | /* -- module insert / remove -- */ | 2191 | module_usb_driver(sd_driver); |
2192 | static int __init sd_mod_init(void) | ||
2193 | { | ||
2194 | return usb_register(&sd_driver); | ||
2195 | } | ||
2196 | static void __exit sd_mod_exit(void) | ||
2197 | { | ||
2198 | usb_deregister(&sd_driver); | ||
2199 | } | ||
2200 | |||
2201 | module_init(sd_mod_init); | ||
2202 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/spca505.c b/drivers/media/video/gspca/spca505.c index 16722dc6039..1320f35e39f 100644 --- a/drivers/media/video/gspca/spca505.c +++ b/drivers/media/video/gspca/spca505.c | |||
@@ -815,15 +815,4 @@ static struct usb_driver sd_driver = { | |||
815 | #endif | 815 | #endif |
816 | }; | 816 | }; |
817 | 817 | ||
818 | /* -- module insert / remove -- */ | 818 | module_usb_driver(sd_driver); |
819 | static int __init sd_mod_init(void) | ||
820 | { | ||
821 | return usb_register(&sd_driver); | ||
822 | } | ||
823 | static void __exit sd_mod_exit(void) | ||
824 | { | ||
825 | usb_deregister(&sd_driver); | ||
826 | } | ||
827 | |||
828 | module_init(sd_mod_init); | ||
829 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/spca506.c b/drivers/media/video/gspca/spca506.c index 89fec4c500a..54eed87672d 100644 --- a/drivers/media/video/gspca/spca506.c +++ b/drivers/media/video/gspca/spca506.c | |||
@@ -714,21 +714,4 @@ static struct usb_driver sd_driver = { | |||
714 | #endif | 714 | #endif |
715 | }; | 715 | }; |
716 | 716 | ||
717 | /* -- module insert / remove -- */ | 717 | module_usb_driver(sd_driver); |
718 | static int __init sd_mod_init(void) | ||
719 | { | ||
720 | int ret; | ||
721 | ret = usb_register(&sd_driver); | ||
722 | if (ret < 0) | ||
723 | return ret; | ||
724 | PDEBUG(D_PROBE, "registered"); | ||
725 | return 0; | ||
726 | } | ||
727 | static void __exit sd_mod_exit(void) | ||
728 | { | ||
729 | usb_deregister(&sd_driver); | ||
730 | PDEBUG(D_PROBE, "deregistered"); | ||
731 | } | ||
732 | |||
733 | module_init(sd_mod_init); | ||
734 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/spca508.c b/drivers/media/video/gspca/spca508.c index a44fe3d2596..df4e1699646 100644 --- a/drivers/media/video/gspca/spca508.c +++ b/drivers/media/video/gspca/spca508.c | |||
@@ -1544,15 +1544,4 @@ static struct usb_driver sd_driver = { | |||
1544 | #endif | 1544 | #endif |
1545 | }; | 1545 | }; |
1546 | 1546 | ||
1547 | /* -- module insert / remove -- */ | 1547 | module_usb_driver(sd_driver); |
1548 | static int __init sd_mod_init(void) | ||
1549 | { | ||
1550 | return usb_register(&sd_driver); | ||
1551 | } | ||
1552 | static void __exit sd_mod_exit(void) | ||
1553 | { | ||
1554 | usb_deregister(&sd_driver); | ||
1555 | } | ||
1556 | |||
1557 | module_init(sd_mod_init); | ||
1558 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/spca561.c b/drivers/media/video/gspca/spca561.c index c82fd53cef9..259a0c73c66 100644 --- a/drivers/media/video/gspca/spca561.c +++ b/drivers/media/video/gspca/spca561.c | |||
@@ -1106,15 +1106,4 @@ static struct usb_driver sd_driver = { | |||
1106 | #endif | 1106 | #endif |
1107 | }; | 1107 | }; |
1108 | 1108 | ||
1109 | /* -- module insert / remove -- */ | 1109 | module_usb_driver(sd_driver); |
1110 | static int __init sd_mod_init(void) | ||
1111 | { | ||
1112 | return usb_register(&sd_driver); | ||
1113 | } | ||
1114 | static void __exit sd_mod_exit(void) | ||
1115 | { | ||
1116 | usb_deregister(&sd_driver); | ||
1117 | } | ||
1118 | |||
1119 | module_init(sd_mod_init); | ||
1120 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/sq905.c b/drivers/media/video/gspca/sq905.c index df805f79828..2fe3c29bd6b 100644 --- a/drivers/media/video/gspca/sq905.c +++ b/drivers/media/video/gspca/sq905.c | |||
@@ -432,16 +432,4 @@ static struct usb_driver sd_driver = { | |||
432 | #endif | 432 | #endif |
433 | }; | 433 | }; |
434 | 434 | ||
435 | /* -- module insert / remove -- */ | 435 | module_usb_driver(sd_driver); |
436 | static int __init sd_mod_init(void) | ||
437 | { | ||
438 | return usb_register(&sd_driver); | ||
439 | } | ||
440 | |||
441 | static void __exit sd_mod_exit(void) | ||
442 | { | ||
443 | usb_deregister(&sd_driver); | ||
444 | } | ||
445 | |||
446 | module_init(sd_mod_init); | ||
447 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/sq905c.c b/drivers/media/video/gspca/sq905c.c index c2c056056e0..ae783634712 100644 --- a/drivers/media/video/gspca/sq905c.c +++ b/drivers/media/video/gspca/sq905c.c | |||
@@ -339,16 +339,4 @@ static struct usb_driver sd_driver = { | |||
339 | #endif | 339 | #endif |
340 | }; | 340 | }; |
341 | 341 | ||
342 | /* -- module insert / remove -- */ | 342 | module_usb_driver(sd_driver); |
343 | static int __init sd_mod_init(void) | ||
344 | { | ||
345 | return usb_register(&sd_driver); | ||
346 | } | ||
347 | |||
348 | static void __exit sd_mod_exit(void) | ||
349 | { | ||
350 | usb_deregister(&sd_driver); | ||
351 | } | ||
352 | |||
353 | module_init(sd_mod_init); | ||
354 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/sq930x.c b/drivers/media/video/gspca/sq930x.c index e4255b4905e..1a8ba9b3550 100644 --- a/drivers/media/video/gspca/sq930x.c +++ b/drivers/media/video/gspca/sq930x.c | |||
@@ -1197,15 +1197,4 @@ static struct usb_driver sd_driver = { | |||
1197 | #endif | 1197 | #endif |
1198 | }; | 1198 | }; |
1199 | 1199 | ||
1200 | /* -- module insert / remove -- */ | 1200 | module_usb_driver(sd_driver); |
1201 | static int __init sd_mod_init(void) | ||
1202 | { | ||
1203 | return usb_register(&sd_driver); | ||
1204 | } | ||
1205 | static void __exit sd_mod_exit(void) | ||
1206 | { | ||
1207 | usb_deregister(&sd_driver); | ||
1208 | } | ||
1209 | |||
1210 | module_init(sd_mod_init); | ||
1211 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/stk014.c b/drivers/media/video/gspca/stk014.c index 42a7a28a6c8..4ae7cc8f463 100644 --- a/drivers/media/video/gspca/stk014.c +++ b/drivers/media/video/gspca/stk014.c | |||
@@ -519,15 +519,4 @@ static struct usb_driver sd_driver = { | |||
519 | #endif | 519 | #endif |
520 | }; | 520 | }; |
521 | 521 | ||
522 | /* -- module insert / remove -- */ | 522 | module_usb_driver(sd_driver); |
523 | static int __init sd_mod_init(void) | ||
524 | { | ||
525 | return usb_register(&sd_driver); | ||
526 | } | ||
527 | static void __exit sd_mod_exit(void) | ||
528 | { | ||
529 | usb_deregister(&sd_driver); | ||
530 | } | ||
531 | |||
532 | module_init(sd_mod_init); | ||
533 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/stv0680.c b/drivers/media/video/gspca/stv0680.c index 4dcc7e37f9f..461ed645f30 100644 --- a/drivers/media/video/gspca/stv0680.c +++ b/drivers/media/video/gspca/stv0680.c | |||
@@ -355,15 +355,4 @@ static struct usb_driver sd_driver = { | |||
355 | #endif | 355 | #endif |
356 | }; | 356 | }; |
357 | 357 | ||
358 | /* -- module insert / remove -- */ | 358 | module_usb_driver(sd_driver); |
359 | static int __init sd_mod_init(void) | ||
360 | { | ||
361 | return usb_register(&sd_driver); | ||
362 | } | ||
363 | static void __exit sd_mod_exit(void) | ||
364 | { | ||
365 | usb_deregister(&sd_driver); | ||
366 | } | ||
367 | |||
368 | module_init(sd_mod_init); | ||
369 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/stv06xx/stv06xx.c b/drivers/media/video/gspca/stv06xx/stv06xx.c index b1fca7db101..6f878f6c6e9 100644 --- a/drivers/media/video/gspca/stv06xx/stv06xx.c +++ b/drivers/media/video/gspca/stv06xx/stv06xx.c | |||
@@ -36,8 +36,8 @@ MODULE_AUTHOR("Erik Andrén"); | |||
36 | MODULE_DESCRIPTION("STV06XX USB Camera Driver"); | 36 | MODULE_DESCRIPTION("STV06XX USB Camera Driver"); |
37 | MODULE_LICENSE("GPL"); | 37 | MODULE_LICENSE("GPL"); |
38 | 38 | ||
39 | static int dump_bridge; | 39 | static bool dump_bridge; |
40 | static int dump_sensor; | 40 | static bool dump_sensor; |
41 | 41 | ||
42 | int stv06xx_write_bridge(struct sd *sd, u16 address, u16 i2c_data) | 42 | int stv06xx_write_bridge(struct sd *sd, u16 address, u16 i2c_data) |
43 | { | 43 | { |
@@ -612,18 +612,7 @@ static struct usb_driver sd_driver = { | |||
612 | #endif | 612 | #endif |
613 | }; | 613 | }; |
614 | 614 | ||
615 | /* -- module insert / remove -- */ | 615 | module_usb_driver(sd_driver); |
616 | static int __init sd_mod_init(void) | ||
617 | { | ||
618 | return usb_register(&sd_driver); | ||
619 | } | ||
620 | static void __exit sd_mod_exit(void) | ||
621 | { | ||
622 | usb_deregister(&sd_driver); | ||
623 | } | ||
624 | |||
625 | module_init(sd_mod_init); | ||
626 | module_exit(sd_mod_exit); | ||
627 | 616 | ||
628 | module_param(dump_bridge, bool, S_IRUGO | S_IWUSR); | 617 | module_param(dump_bridge, bool, S_IRUGO | S_IWUSR); |
629 | MODULE_PARM_DESC(dump_bridge, "Dumps all usb bridge registers at startup"); | 618 | MODULE_PARM_DESC(dump_bridge, "Dumps all usb bridge registers at startup"); |
diff --git a/drivers/media/video/gspca/sunplus.c b/drivers/media/video/gspca/sunplus.c index c8909772435..c80f0c0c75b 100644 --- a/drivers/media/video/gspca/sunplus.c +++ b/drivers/media/video/gspca/sunplus.c | |||
@@ -1211,15 +1211,4 @@ static struct usb_driver sd_driver = { | |||
1211 | #endif | 1211 | #endif |
1212 | }; | 1212 | }; |
1213 | 1213 | ||
1214 | /* -- module insert / remove -- */ | 1214 | module_usb_driver(sd_driver); |
1215 | static int __init sd_mod_init(void) | ||
1216 | { | ||
1217 | return usb_register(&sd_driver); | ||
1218 | } | ||
1219 | static void __exit sd_mod_exit(void) | ||
1220 | { | ||
1221 | usb_deregister(&sd_driver); | ||
1222 | } | ||
1223 | |||
1224 | module_init(sd_mod_init); | ||
1225 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/t613.c b/drivers/media/video/gspca/t613.c index 90f0877eb59..ea44deb66af 100644 --- a/drivers/media/video/gspca/t613.c +++ b/drivers/media/video/gspca/t613.c | |||
@@ -1438,15 +1438,4 @@ static struct usb_driver sd_driver = { | |||
1438 | #endif | 1438 | #endif |
1439 | }; | 1439 | }; |
1440 | 1440 | ||
1441 | /* -- module insert / remove -- */ | 1441 | module_usb_driver(sd_driver); |
1442 | static int __init sd_mod_init(void) | ||
1443 | { | ||
1444 | return usb_register(&sd_driver); | ||
1445 | } | ||
1446 | static void __exit sd_mod_exit(void) | ||
1447 | { | ||
1448 | usb_deregister(&sd_driver); | ||
1449 | } | ||
1450 | |||
1451 | module_init(sd_mod_init); | ||
1452 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/topro.c b/drivers/media/video/gspca/topro.c index 29596c59837..b2695b1dc60 100644 --- a/drivers/media/video/gspca/topro.c +++ b/drivers/media/video/gspca/topro.c | |||
@@ -4971,18 +4971,7 @@ static struct usb_driver sd_driver = { | |||
4971 | #endif | 4971 | #endif |
4972 | }; | 4972 | }; |
4973 | 4973 | ||
4974 | /* -- module insert / remove -- */ | 4974 | module_usb_driver(sd_driver); |
4975 | static int __init sd_mod_init(void) | ||
4976 | { | ||
4977 | return usb_register(&sd_driver); | ||
4978 | } | ||
4979 | static void __exit sd_mod_exit(void) | ||
4980 | { | ||
4981 | usb_deregister(&sd_driver); | ||
4982 | } | ||
4983 | |||
4984 | module_init(sd_mod_init); | ||
4985 | module_exit(sd_mod_exit); | ||
4986 | 4975 | ||
4987 | module_param(force_sensor, int, 0644); | 4976 | module_param(force_sensor, int, 0644); |
4988 | MODULE_PARM_DESC(force_sensor, | 4977 | MODULE_PARM_DESC(force_sensor, |
diff --git a/drivers/media/video/gspca/tv8532.c b/drivers/media/video/gspca/tv8532.c index 933ef2ca658..c8922c5ffbf 100644 --- a/drivers/media/video/gspca/tv8532.c +++ b/drivers/media/video/gspca/tv8532.c | |||
@@ -418,16 +418,4 @@ static struct usb_driver sd_driver = { | |||
418 | #endif | 418 | #endif |
419 | }; | 419 | }; |
420 | 420 | ||
421 | /* -- module insert / remove -- */ | 421 | module_usb_driver(sd_driver); |
422 | static int __init sd_mod_init(void) | ||
423 | { | ||
424 | return usb_register(&sd_driver); | ||
425 | } | ||
426 | |||
427 | static void __exit sd_mod_exit(void) | ||
428 | { | ||
429 | usb_deregister(&sd_driver); | ||
430 | } | ||
431 | |||
432 | module_init(sd_mod_init); | ||
433 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/vc032x.c b/drivers/media/video/gspca/vc032x.c index 7ee2c8271dc..208f6b2d512 100644 --- a/drivers/media/video/gspca/vc032x.c +++ b/drivers/media/video/gspca/vc032x.c | |||
@@ -4230,15 +4230,4 @@ static struct usb_driver sd_driver = { | |||
4230 | #endif | 4230 | #endif |
4231 | }; | 4231 | }; |
4232 | 4232 | ||
4233 | /* -- module insert / remove -- */ | 4233 | module_usb_driver(sd_driver); |
4234 | static int __init sd_mod_init(void) | ||
4235 | { | ||
4236 | return usb_register(&sd_driver); | ||
4237 | } | ||
4238 | static void __exit sd_mod_exit(void) | ||
4239 | { | ||
4240 | usb_deregister(&sd_driver); | ||
4241 | } | ||
4242 | |||
4243 | module_init(sd_mod_init); | ||
4244 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/vicam.c b/drivers/media/video/gspca/vicam.c index 81dd4c99d02..d12ea1518ac 100644 --- a/drivers/media/video/gspca/vicam.c +++ b/drivers/media/video/gspca/vicam.c | |||
@@ -368,16 +368,4 @@ static struct usb_driver sd_driver = { | |||
368 | #endif | 368 | #endif |
369 | }; | 369 | }; |
370 | 370 | ||
371 | /* -- module insert / remove -- */ | 371 | module_usb_driver(sd_driver); |
372 | static int __init sd_mod_init(void) | ||
373 | { | ||
374 | return usb_register(&sd_driver); | ||
375 | } | ||
376 | |||
377 | static void __exit sd_mod_exit(void) | ||
378 | { | ||
379 | usb_deregister(&sd_driver); | ||
380 | } | ||
381 | |||
382 | module_init(sd_mod_init); | ||
383 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/xirlink_cit.c b/drivers/media/video/gspca/xirlink_cit.c index 3aed42acdb5..fbb6ed25ec3 100644 --- a/drivers/media/video/gspca/xirlink_cit.c +++ b/drivers/media/video/gspca/xirlink_cit.c | |||
@@ -3325,15 +3325,4 @@ static struct usb_driver sd_driver = { | |||
3325 | #endif | 3325 | #endif |
3326 | }; | 3326 | }; |
3327 | 3327 | ||
3328 | /* -- module insert / remove -- */ | 3328 | module_usb_driver(sd_driver); |
3329 | static int __init sd_mod_init(void) | ||
3330 | { | ||
3331 | return usb_register(&sd_driver); | ||
3332 | } | ||
3333 | static void __exit sd_mod_exit(void) | ||
3334 | { | ||
3335 | usb_deregister(&sd_driver); | ||
3336 | } | ||
3337 | |||
3338 | module_init(sd_mod_init); | ||
3339 | module_exit(sd_mod_exit); | ||
diff --git a/drivers/media/video/gspca/zc3xx.c b/drivers/media/video/gspca/zc3xx.c index 30ea1e47949..0202fead6b9 100644 --- a/drivers/media/video/gspca/zc3xx.c +++ b/drivers/media/video/gspca/zc3xx.c | |||
@@ -7050,18 +7050,7 @@ static struct usb_driver sd_driver = { | |||
7050 | #endif | 7050 | #endif |
7051 | }; | 7051 | }; |
7052 | 7052 | ||
7053 | static int __init sd_mod_init(void) | 7053 | module_usb_driver(sd_driver); |
7054 | { | ||
7055 | return usb_register(&sd_driver); | ||
7056 | } | ||
7057 | |||
7058 | static void __exit sd_mod_exit(void) | ||
7059 | { | ||
7060 | usb_deregister(&sd_driver); | ||
7061 | } | ||
7062 | |||
7063 | module_init(sd_mod_init); | ||
7064 | module_exit(sd_mod_exit); | ||
7065 | 7054 | ||
7066 | module_param(force_sensor, int, 0644); | 7055 | module_param(force_sensor, int, 0644); |
7067 | MODULE_PARM_DESC(force_sensor, | 7056 | MODULE_PARM_DESC(force_sensor, |
diff --git a/drivers/media/video/hdpvr/hdpvr-core.c b/drivers/media/video/hdpvr/hdpvr-core.c index 441dacf642b..e5eb56a5b61 100644 --- a/drivers/media/video/hdpvr/hdpvr-core.c +++ b/drivers/media/video/hdpvr/hdpvr-core.c | |||
@@ -49,7 +49,7 @@ module_param(default_audio_input, uint, S_IRUGO|S_IWUSR); | |||
49 | MODULE_PARM_DESC(default_audio_input, "default audio input: 0=RCA back / " | 49 | MODULE_PARM_DESC(default_audio_input, "default audio input: 0=RCA back / " |
50 | "1=RCA front / 2=S/PDIF"); | 50 | "1=RCA front / 2=S/PDIF"); |
51 | 51 | ||
52 | static int boost_audio; | 52 | static bool boost_audio; |
53 | module_param(boost_audio, bool, S_IRUGO|S_IWUSR); | 53 | module_param(boost_audio, bool, S_IRUGO|S_IWUSR); |
54 | MODULE_PARM_DESC(boost_audio, "boost the audio signal"); | 54 | MODULE_PARM_DESC(boost_audio, "boost the audio signal"); |
55 | 55 | ||
@@ -452,26 +452,7 @@ static struct usb_driver hdpvr_usb_driver = { | |||
452 | .id_table = hdpvr_table, | 452 | .id_table = hdpvr_table, |
453 | }; | 453 | }; |
454 | 454 | ||
455 | static int __init hdpvr_init(void) | 455 | module_usb_driver(hdpvr_usb_driver); |
456 | { | ||
457 | int result; | ||
458 | |||
459 | /* register this driver with the USB subsystem */ | ||
460 | result = usb_register(&hdpvr_usb_driver); | ||
461 | if (result) | ||
462 | err("usb_register failed. Error number %d", result); | ||
463 | |||
464 | return result; | ||
465 | } | ||
466 | |||
467 | static void __exit hdpvr_exit(void) | ||
468 | { | ||
469 | /* deregister this driver with the USB subsystem */ | ||
470 | usb_deregister(&hdpvr_usb_driver); | ||
471 | } | ||
472 | |||
473 | module_init(hdpvr_init); | ||
474 | module_exit(hdpvr_exit); | ||
475 | 456 | ||
476 | MODULE_LICENSE("GPL"); | 457 | MODULE_LICENSE("GPL"); |
477 | MODULE_VERSION("0.2.1"); | 458 | MODULE_VERSION("0.2.1"); |
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c index 41108a9a195..544af91cbdc 100644 --- a/drivers/media/video/ivtv/ivtv-driver.c +++ b/drivers/media/video/ivtv/ivtv-driver.c | |||
@@ -99,7 +99,7 @@ static int i2c_clock_period[IVTV_MAX_CARDS] = { -1, -1, -1, -1, -1, -1, -1, -1, | |||
99 | 99 | ||
100 | static unsigned int cardtype_c = 1; | 100 | static unsigned int cardtype_c = 1; |
101 | static unsigned int tuner_c = 1; | 101 | static unsigned int tuner_c = 1; |
102 | static unsigned int radio_c = 1; | 102 | static bool radio_c = 1; |
103 | static unsigned int i2c_clock_period_c = 1; | 103 | static unsigned int i2c_clock_period_c = 1; |
104 | static char pal[] = "---"; | 104 | static char pal[] = "---"; |
105 | static char secam[] = "--"; | 105 | static char secam[] = "--"; |
diff --git a/drivers/media/video/ivtv/ivtvfb.c b/drivers/media/video/ivtv/ivtvfb.c index 6b7c9c82333..d0fbfcf7133 100644 --- a/drivers/media/video/ivtv/ivtvfb.c +++ b/drivers/media/video/ivtv/ivtvfb.c | |||
@@ -58,7 +58,7 @@ | |||
58 | /* card parameters */ | 58 | /* card parameters */ |
59 | static int ivtvfb_card_id = -1; | 59 | static int ivtvfb_card_id = -1; |
60 | static int ivtvfb_debug = 0; | 60 | static int ivtvfb_debug = 0; |
61 | static int osd_laced; | 61 | static bool osd_laced; |
62 | static int osd_depth; | 62 | static int osd_depth; |
63 | static int osd_upper; | 63 | static int osd_upper; |
64 | static int osd_left; | 64 | static int osd_left; |
diff --git a/drivers/media/video/m5mols/m5mols.h b/drivers/media/video/m5mols/m5mols.h index 89d09a8914f..82c8817bd32 100644 --- a/drivers/media/video/m5mols/m5mols.h +++ b/drivers/media/video/m5mols/m5mols.h | |||
@@ -162,7 +162,6 @@ struct m5mols_version { | |||
162 | * @pad: media pad | 162 | * @pad: media pad |
163 | * @ffmt: current fmt according to resolution type | 163 | * @ffmt: current fmt according to resolution type |
164 | * @res_type: current resolution type | 164 | * @res_type: current resolution type |
165 | * @code: current code | ||
166 | * @irq_waitq: waitqueue for the capture | 165 | * @irq_waitq: waitqueue for the capture |
167 | * @work_irq: workqueue for the IRQ | 166 | * @work_irq: workqueue for the IRQ |
168 | * @flags: state variable for the interrupt handler | 167 | * @flags: state variable for the interrupt handler |
@@ -192,7 +191,6 @@ struct m5mols_info { | |||
192 | struct media_pad pad; | 191 | struct media_pad pad; |
193 | struct v4l2_mbus_framefmt ffmt[M5MOLS_RESTYPE_MAX]; | 192 | struct v4l2_mbus_framefmt ffmt[M5MOLS_RESTYPE_MAX]; |
194 | int res_type; | 193 | int res_type; |
195 | enum v4l2_mbus_pixelcode code; | ||
196 | wait_queue_head_t irq_waitq; | 194 | wait_queue_head_t irq_waitq; |
197 | struct work_struct work_irq; | 195 | struct work_struct work_irq; |
198 | unsigned long flags; | 196 | unsigned long flags; |
diff --git a/drivers/media/video/m5mols/m5mols_core.c b/drivers/media/video/m5mols/m5mols_core.c index 05ab3700647..e0f09e53180 100644 --- a/drivers/media/video/m5mols/m5mols_core.c +++ b/drivers/media/video/m5mols/m5mols_core.c | |||
@@ -334,7 +334,7 @@ int m5mols_mode(struct m5mols_info *info, u8 mode) | |||
334 | int ret = -EINVAL; | 334 | int ret = -EINVAL; |
335 | u8 reg; | 335 | u8 reg; |
336 | 336 | ||
337 | if (mode < REG_PARAMETER && mode > REG_CAPTURE) | 337 | if (mode < REG_PARAMETER || mode > REG_CAPTURE) |
338 | return ret; | 338 | return ret; |
339 | 339 | ||
340 | ret = m5mols_read_u8(sd, SYSTEM_SYSMODE, ®); | 340 | ret = m5mols_read_u8(sd, SYSTEM_SYSMODE, ®); |
@@ -511,9 +511,6 @@ static int m5mols_get_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, | |||
511 | struct m5mols_info *info = to_m5mols(sd); | 511 | struct m5mols_info *info = to_m5mols(sd); |
512 | struct v4l2_mbus_framefmt *format; | 512 | struct v4l2_mbus_framefmt *format; |
513 | 513 | ||
514 | if (fmt->pad != 0) | ||
515 | return -EINVAL; | ||
516 | |||
517 | format = __find_format(info, fh, fmt->which, info->res_type); | 514 | format = __find_format(info, fh, fmt->which, info->res_type); |
518 | if (!format) | 515 | if (!format) |
519 | return -EINVAL; | 516 | return -EINVAL; |
@@ -532,9 +529,6 @@ static int m5mols_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, | |||
532 | u32 resolution = 0; | 529 | u32 resolution = 0; |
533 | int ret; | 530 | int ret; |
534 | 531 | ||
535 | if (fmt->pad != 0) | ||
536 | return -EINVAL; | ||
537 | |||
538 | ret = __find_resolution(sd, format, &type, &resolution); | 532 | ret = __find_resolution(sd, format, &type, &resolution); |
539 | if (ret < 0) | 533 | if (ret < 0) |
540 | return ret; | 534 | return ret; |
@@ -543,13 +537,14 @@ static int m5mols_set_fmt(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh, | |||
543 | if (!sfmt) | 537 | if (!sfmt) |
544 | return 0; | 538 | return 0; |
545 | 539 | ||
546 | *sfmt = m5mols_default_ffmt[type]; | 540 | |
547 | sfmt->width = format->width; | 541 | format->code = m5mols_default_ffmt[type].code; |
548 | sfmt->height = format->height; | 542 | format->colorspace = V4L2_COLORSPACE_JPEG; |
543 | format->field = V4L2_FIELD_NONE; | ||
549 | 544 | ||
550 | if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) { | 545 | if (fmt->which == V4L2_SUBDEV_FORMAT_ACTIVE) { |
546 | *sfmt = *format; | ||
551 | info->resolution = resolution; | 547 | info->resolution = resolution; |
552 | info->code = format->code; | ||
553 | info->res_type = type; | 548 | info->res_type = type; |
554 | } | 549 | } |
555 | 550 | ||
@@ -626,13 +621,14 @@ static int m5mols_start_monitor(struct m5mols_info *info) | |||
626 | static int m5mols_s_stream(struct v4l2_subdev *sd, int enable) | 621 | static int m5mols_s_stream(struct v4l2_subdev *sd, int enable) |
627 | { | 622 | { |
628 | struct m5mols_info *info = to_m5mols(sd); | 623 | struct m5mols_info *info = to_m5mols(sd); |
624 | u32 code = info->ffmt[info->res_type].code; | ||
629 | 625 | ||
630 | if (enable) { | 626 | if (enable) { |
631 | int ret = -EINVAL; | 627 | int ret = -EINVAL; |
632 | 628 | ||
633 | if (is_code(info->code, M5MOLS_RESTYPE_MONITOR)) | 629 | if (is_code(code, M5MOLS_RESTYPE_MONITOR)) |
634 | ret = m5mols_start_monitor(info); | 630 | ret = m5mols_start_monitor(info); |
635 | if (is_code(info->code, M5MOLS_RESTYPE_CAPTURE)) | 631 | if (is_code(code, M5MOLS_RESTYPE_CAPTURE)) |
636 | ret = m5mols_start_capture(info); | 632 | ret = m5mols_start_capture(info); |
637 | 633 | ||
638 | return ret; | 634 | return ret; |
diff --git a/drivers/media/video/marvell-ccic/mcam-core.c b/drivers/media/video/marvell-ccic/mcam-core.c index 80ec64d2d6d..2c8fc0f6d69 100644 --- a/drivers/media/video/marvell-ccic/mcam-core.c +++ b/drivers/media/video/marvell-ccic/mcam-core.c | |||
@@ -51,7 +51,7 @@ static int delivered; | |||
51 | * sense. | 51 | * sense. |
52 | */ | 52 | */ |
53 | 53 | ||
54 | static int alloc_bufs_at_read; | 54 | static bool alloc_bufs_at_read; |
55 | module_param(alloc_bufs_at_read, bool, 0444); | 55 | module_param(alloc_bufs_at_read, bool, 0444); |
56 | MODULE_PARM_DESC(alloc_bufs_at_read, | 56 | MODULE_PARM_DESC(alloc_bufs_at_read, |
57 | "Non-zero value causes DMA buffers to be allocated when the " | 57 | "Non-zero value causes DMA buffers to be allocated when the " |
@@ -73,11 +73,11 @@ MODULE_PARM_DESC(dma_buf_size, | |||
73 | "parameters require larger buffers, an attempt to reallocate " | 73 | "parameters require larger buffers, an attempt to reallocate " |
74 | "will be made."); | 74 | "will be made."); |
75 | #else /* MCAM_MODE_VMALLOC */ | 75 | #else /* MCAM_MODE_VMALLOC */ |
76 | static const int alloc_bufs_at_read = 0; | 76 | static const bool alloc_bufs_at_read = 0; |
77 | static const int n_dma_bufs = 3; /* Used by S/G_PARM */ | 77 | static const int n_dma_bufs = 3; /* Used by S/G_PARM */ |
78 | #endif /* MCAM_MODE_VMALLOC */ | 78 | #endif /* MCAM_MODE_VMALLOC */ |
79 | 79 | ||
80 | static int flip; | 80 | static bool flip; |
81 | module_param(flip, bool, 0444); | 81 | module_param(flip, bool, 0444); |
82 | MODULE_PARM_DESC(flip, | 82 | MODULE_PARM_DESC(flip, |
83 | "If set, the sensor will be instructed to flip the image " | 83 | "If set, the sensor will be instructed to flip the image " |
diff --git a/drivers/media/video/msp3400-driver.c b/drivers/media/video/msp3400-driver.c index d0f53885728..d7cd0f633f6 100644 --- a/drivers/media/video/msp3400-driver.c +++ b/drivers/media/video/msp3400-driver.c | |||
@@ -69,12 +69,12 @@ MODULE_LICENSE("GPL"); | |||
69 | /* module parameters */ | 69 | /* module parameters */ |
70 | static int opmode = OPMODE_AUTO; | 70 | static int opmode = OPMODE_AUTO; |
71 | int msp_debug; /* msp_debug output */ | 71 | int msp_debug; /* msp_debug output */ |
72 | int msp_once; /* no continuous stereo monitoring */ | 72 | bool msp_once; /* no continuous stereo monitoring */ |
73 | int msp_amsound; /* hard-wire AM sound at 6.5 Hz (france), | 73 | bool msp_amsound; /* hard-wire AM sound at 6.5 Hz (france), |
74 | the autoscan seems work well only with FM... */ | 74 | the autoscan seems work well only with FM... */ |
75 | int msp_standard = 1; /* Override auto detect of audio msp_standard, | 75 | int msp_standard = 1; /* Override auto detect of audio msp_standard, |
76 | if needed. */ | 76 | if needed. */ |
77 | int msp_dolby; | 77 | bool msp_dolby; |
78 | 78 | ||
79 | int msp_stereo_thresh = 0x190; /* a2 threshold for stereo/bilingual | 79 | int msp_stereo_thresh = 0x190; /* a2 threshold for stereo/bilingual |
80 | (msp34xxg only) 0x00a0-0x03c0 */ | 80 | (msp34xxg only) 0x00a0-0x03c0 */ |
diff --git a/drivers/media/video/msp3400-driver.h b/drivers/media/video/msp3400-driver.h index 831e8db4368..fbe5e0715f9 100644 --- a/drivers/media/video/msp3400-driver.h +++ b/drivers/media/video/msp3400-driver.h | |||
@@ -44,10 +44,10 @@ | |||
44 | 44 | ||
45 | /* module parameters */ | 45 | /* module parameters */ |
46 | extern int msp_debug; | 46 | extern int msp_debug; |
47 | extern int msp_once; | 47 | extern bool msp_once; |
48 | extern int msp_amsound; | 48 | extern bool msp_amsound; |
49 | extern int msp_standard; | 49 | extern int msp_standard; |
50 | extern int msp_dolby; | 50 | extern bool msp_dolby; |
51 | extern int msp_stereo_thresh; | 51 | extern int msp_stereo_thresh; |
52 | 52 | ||
53 | struct msp_state { | 53 | struct msp_state { |
diff --git a/drivers/media/video/mt9m111.c b/drivers/media/video/mt9m111.c index cf2c0fb95f2..398f96ffd35 100644 --- a/drivers/media/video/mt9m111.c +++ b/drivers/media/video/mt9m111.c | |||
@@ -955,6 +955,7 @@ static int mt9m111_probe(struct i2c_client *client, | |||
955 | mt9m111->rect.height = MT9M111_MAX_HEIGHT; | 955 | mt9m111->rect.height = MT9M111_MAX_HEIGHT; |
956 | mt9m111->fmt = &mt9m111_colour_fmts[0]; | 956 | mt9m111->fmt = &mt9m111_colour_fmts[0]; |
957 | mt9m111->lastpage = -1; | 957 | mt9m111->lastpage = -1; |
958 | mutex_init(&mt9m111->power_lock); | ||
958 | 959 | ||
959 | ret = mt9m111_video_probe(client); | 960 | ret = mt9m111_video_probe(client); |
960 | if (ret) { | 961 | if (ret) { |
diff --git a/drivers/media/video/mt9t112.c b/drivers/media/video/mt9t112.c index 32114a3c0ca..7b34b11daf2 100644 --- a/drivers/media/video/mt9t112.c +++ b/drivers/media/video/mt9t112.c | |||
@@ -1083,8 +1083,10 @@ static int mt9t112_probe(struct i2c_client *client, | |||
1083 | v4l2_i2c_subdev_init(&priv->subdev, client, &mt9t112_subdev_ops); | 1083 | v4l2_i2c_subdev_init(&priv->subdev, client, &mt9t112_subdev_ops); |
1084 | 1084 | ||
1085 | ret = mt9t112_camera_probe(client); | 1085 | ret = mt9t112_camera_probe(client); |
1086 | if (ret) | 1086 | if (ret) { |
1087 | kfree(priv); | 1087 | kfree(priv); |
1088 | return ret; | ||
1089 | } | ||
1088 | 1090 | ||
1089 | /* Cannot fail: using the default supported pixel code */ | 1091 | /* Cannot fail: using the default supported pixel code */ |
1090 | mt9t112_set_params(priv, &rect, V4L2_MBUS_FMT_UYVY8_2X8); | 1092 | mt9t112_set_params(priv, &rect, V4L2_MBUS_FMT_UYVY8_2X8); |
diff --git a/drivers/media/video/omap/omap_vout.c b/drivers/media/video/omap/omap_vout.c index 9c5c19f142d..a378c2ce127 100644 --- a/drivers/media/video/omap/omap_vout.c +++ b/drivers/media/video/omap/omap_vout.c | |||
@@ -38,6 +38,7 @@ | |||
38 | #include <linux/irq.h> | 38 | #include <linux/irq.h> |
39 | #include <linux/videodev2.h> | 39 | #include <linux/videodev2.h> |
40 | #include <linux/dma-mapping.h> | 40 | #include <linux/dma-mapping.h> |
41 | #include <linux/slab.h> | ||
41 | 42 | ||
42 | #include <media/videobuf-dma-contig.h> | 43 | #include <media/videobuf-dma-contig.h> |
43 | #include <media/v4l2-device.h> | 44 | #include <media/v4l2-device.h> |
@@ -69,9 +70,9 @@ static u32 video1_numbuffers = 3; | |||
69 | static u32 video2_numbuffers = 3; | 70 | static u32 video2_numbuffers = 3; |
70 | static u32 video1_bufsize = OMAP_VOUT_MAX_BUF_SIZE; | 71 | static u32 video1_bufsize = OMAP_VOUT_MAX_BUF_SIZE; |
71 | static u32 video2_bufsize = OMAP_VOUT_MAX_BUF_SIZE; | 72 | static u32 video2_bufsize = OMAP_VOUT_MAX_BUF_SIZE; |
72 | static u32 vid1_static_vrfb_alloc; | 73 | static bool vid1_static_vrfb_alloc; |
73 | static u32 vid2_static_vrfb_alloc; | 74 | static bool vid2_static_vrfb_alloc; |
74 | static int debug; | 75 | static bool debug; |
75 | 76 | ||
76 | /* Module parameters */ | 77 | /* Module parameters */ |
77 | module_param(video1_numbuffers, uint, S_IRUGO); | 78 | module_param(video1_numbuffers, uint, S_IRUGO); |
@@ -423,7 +424,7 @@ static int omapvid_setup_overlay(struct omap_vout_device *vout, | |||
423 | "%s enable=%d addr=%x width=%d\n height=%d color_mode=%d\n" | 424 | "%s enable=%d addr=%x width=%d\n height=%d color_mode=%d\n" |
424 | "rotation=%d mirror=%d posx=%d posy=%d out_width = %d \n" | 425 | "rotation=%d mirror=%d posx=%d posy=%d out_width = %d \n" |
425 | "out_height=%d rotation_type=%d screen_width=%d\n", | 426 | "out_height=%d rotation_type=%d screen_width=%d\n", |
426 | __func__, info.enabled, info.paddr, info.width, info.height, | 427 | __func__, ovl->is_enabled(ovl), info.paddr, info.width, info.height, |
427 | info.color_mode, info.rotation, info.mirror, info.pos_x, | 428 | info.color_mode, info.rotation, info.mirror, info.pos_x, |
428 | info.pos_y, info.out_width, info.out_height, info.rotation_type, | 429 | info.pos_y, info.out_width, info.out_height, info.rotation_type, |
429 | info.screen_width); | 430 | info.screen_width); |
@@ -942,12 +943,8 @@ static int omap_vout_release(struct file *file) | |||
942 | /* Disable all the overlay managers connected with this interface */ | 943 | /* Disable all the overlay managers connected with this interface */ |
943 | for (i = 0; i < ovid->num_overlays; i++) { | 944 | for (i = 0; i < ovid->num_overlays; i++) { |
944 | struct omap_overlay *ovl = ovid->overlays[i]; | 945 | struct omap_overlay *ovl = ovid->overlays[i]; |
945 | if (ovl->manager && ovl->manager->device) { | 946 | if (ovl->manager && ovl->manager->device) |
946 | struct omap_overlay_info info; | 947 | ovl->disable(ovl); |
947 | ovl->get_overlay_info(ovl, &info); | ||
948 | info.enabled = 0; | ||
949 | ovl->set_overlay_info(ovl, &info); | ||
950 | } | ||
951 | } | 948 | } |
952 | /* Turn off the pipeline */ | 949 | /* Turn off the pipeline */ |
953 | ret = omapvid_apply_changes(vout); | 950 | ret = omapvid_apply_changes(vout); |
@@ -1667,7 +1664,6 @@ static int vidioc_streamon(struct file *file, void *fh, enum v4l2_buf_type i) | |||
1667 | if (ovl->manager && ovl->manager->device) { | 1664 | if (ovl->manager && ovl->manager->device) { |
1668 | struct omap_overlay_info info; | 1665 | struct omap_overlay_info info; |
1669 | ovl->get_overlay_info(ovl, &info); | 1666 | ovl->get_overlay_info(ovl, &info); |
1670 | info.enabled = 1; | ||
1671 | info.paddr = addr; | 1667 | info.paddr = addr; |
1672 | if (ovl->set_overlay_info(ovl, &info)) { | 1668 | if (ovl->set_overlay_info(ovl, &info)) { |
1673 | ret = -EINVAL; | 1669 | ret = -EINVAL; |
@@ -1686,6 +1682,16 @@ static int vidioc_streamon(struct file *file, void *fh, enum v4l2_buf_type i) | |||
1686 | if (ret) | 1682 | if (ret) |
1687 | v4l2_err(&vout->vid_dev->v4l2_dev, "failed to change mode\n"); | 1683 | v4l2_err(&vout->vid_dev->v4l2_dev, "failed to change mode\n"); |
1688 | 1684 | ||
1685 | for (j = 0; j < ovid->num_overlays; j++) { | ||
1686 | struct omap_overlay *ovl = ovid->overlays[j]; | ||
1687 | |||
1688 | if (ovl->manager && ovl->manager->device) { | ||
1689 | ret = ovl->enable(ovl); | ||
1690 | if (ret) | ||
1691 | goto streamon_err1; | ||
1692 | } | ||
1693 | } | ||
1694 | |||
1689 | ret = 0; | 1695 | ret = 0; |
1690 | 1696 | ||
1691 | streamon_err1: | 1697 | streamon_err1: |
@@ -1715,16 +1721,8 @@ static int vidioc_streamoff(struct file *file, void *fh, enum v4l2_buf_type i) | |||
1715 | for (j = 0; j < ovid->num_overlays; j++) { | 1721 | for (j = 0; j < ovid->num_overlays; j++) { |
1716 | struct omap_overlay *ovl = ovid->overlays[j]; | 1722 | struct omap_overlay *ovl = ovid->overlays[j]; |
1717 | 1723 | ||
1718 | if (ovl->manager && ovl->manager->device) { | 1724 | if (ovl->manager && ovl->manager->device) |
1719 | struct omap_overlay_info info; | 1725 | ovl->disable(ovl); |
1720 | |||
1721 | ovl->get_overlay_info(ovl, &info); | ||
1722 | info.enabled = 0; | ||
1723 | ret = ovl->set_overlay_info(ovl, &info); | ||
1724 | if (ret) | ||
1725 | v4l2_err(&vout->vid_dev->v4l2_dev, | ||
1726 | "failed to update overlay info in streamoff\n"); | ||
1727 | } | ||
1728 | } | 1726 | } |
1729 | 1727 | ||
1730 | /* Turn of the pipeline */ | 1728 | /* Turn of the pipeline */ |
@@ -2169,6 +2167,14 @@ static int __init omap_vout_probe(struct platform_device *pdev) | |||
2169 | vid_dev->num_displays = 0; | 2167 | vid_dev->num_displays = 0; |
2170 | for_each_dss_dev(dssdev) { | 2168 | for_each_dss_dev(dssdev) { |
2171 | omap_dss_get_device(dssdev); | 2169 | omap_dss_get_device(dssdev); |
2170 | |||
2171 | if (!dssdev->driver) { | ||
2172 | dev_warn(&pdev->dev, "no driver for display: %s\n", | ||
2173 | dssdev->name); | ||
2174 | omap_dss_put_device(dssdev); | ||
2175 | continue; | ||
2176 | } | ||
2177 | |||
2172 | vid_dev->displays[vid_dev->num_displays++] = dssdev; | 2178 | vid_dev->displays[vid_dev->num_displays++] = dssdev; |
2173 | } | 2179 | } |
2174 | 2180 | ||
diff --git a/drivers/media/video/omap/omap_vout_vrfb.c b/drivers/media/video/omap/omap_vout_vrfb.c index ebebcac4922..4be26abf6ce 100644 --- a/drivers/media/video/omap/omap_vout_vrfb.c +++ b/drivers/media/video/omap/omap_vout_vrfb.c | |||
@@ -84,7 +84,7 @@ void omap_vout_free_vrfb_buffers(struct omap_vout_device *vout) | |||
84 | } | 84 | } |
85 | 85 | ||
86 | int omap_vout_setup_vrfb_bufs(struct platform_device *pdev, int vid_num, | 86 | int omap_vout_setup_vrfb_bufs(struct platform_device *pdev, int vid_num, |
87 | u32 static_vrfb_allocation) | 87 | bool static_vrfb_allocation) |
88 | { | 88 | { |
89 | int ret = 0, i, j; | 89 | int ret = 0, i, j; |
90 | struct omap_vout_device *vout; | 90 | struct omap_vout_device *vout; |
diff --git a/drivers/media/video/omap1_camera.c b/drivers/media/video/omap1_camera.c index e87ae2f634b..6a6cf388bae 100644 --- a/drivers/media/video/omap1_camera.c +++ b/drivers/media/video/omap1_camera.c | |||
@@ -24,6 +24,7 @@ | |||
24 | #include <linux/clk.h> | 24 | #include <linux/clk.h> |
25 | #include <linux/dma-mapping.h> | 25 | #include <linux/dma-mapping.h> |
26 | #include <linux/interrupt.h> | 26 | #include <linux/interrupt.h> |
27 | #include <linux/module.h> | ||
27 | #include <linux/platform_device.h> | 28 | #include <linux/platform_device.h> |
28 | #include <linux/slab.h> | 29 | #include <linux/slab.h> |
29 | 30 | ||
diff --git a/drivers/media/video/omap24xxcam-dma.c b/drivers/media/video/omap24xxcam-dma.c index 1d54b86c936..3ea38a8def8 100644 --- a/drivers/media/video/omap24xxcam-dma.c +++ b/drivers/media/video/omap24xxcam-dma.c | |||
@@ -506,7 +506,7 @@ int omap24xxcam_sgdma_queue(struct omap24xxcam_sgdma *sgdma, | |||
506 | unsigned long flags; | 506 | unsigned long flags; |
507 | struct sgdma_state *sg_state; | 507 | struct sgdma_state *sg_state; |
508 | 508 | ||
509 | if ((sglen < 0) || ((sglen > 0) & !sglist)) | 509 | if ((sglen < 0) || ((sglen > 0) && !sglist)) |
510 | return -EINVAL; | 510 | return -EINVAL; |
511 | 511 | ||
512 | spin_lock_irqsave(&sgdma->lock, flags); | 512 | spin_lock_irqsave(&sgdma->lock, flags); |
diff --git a/drivers/media/video/omap3isp/isp.c b/drivers/media/video/omap3isp/isp.c index b818cacf420..d4c48ef227f 100644 --- a/drivers/media/video/omap3isp/isp.c +++ b/drivers/media/video/omap3isp/isp.c | |||
@@ -80,13 +80,6 @@ | |||
80 | #include "isph3a.h" | 80 | #include "isph3a.h" |
81 | #include "isphist.h" | 81 | #include "isphist.h" |
82 | 82 | ||
83 | /* | ||
84 | * this is provided as an interim solution until omap3isp doesn't need | ||
85 | * any omap-specific iommu API | ||
86 | */ | ||
87 | #define to_iommu(dev) \ | ||
88 | (struct omap_iommu *)platform_get_drvdata(to_platform_device(dev)) | ||
89 | |||
90 | static unsigned int autoidle; | 83 | static unsigned int autoidle; |
91 | module_param(autoidle, int, 0444); | 84 | module_param(autoidle, int, 0444); |
92 | MODULE_PARM_DESC(autoidle, "Enable OMAP3ISP AUTOIDLE support"); | 85 | MODULE_PARM_DESC(autoidle, "Enable OMAP3ISP AUTOIDLE support"); |
@@ -1114,8 +1107,7 @@ isp_restore_context(struct isp_device *isp, struct isp_reg *reg_list) | |||
1114 | static void isp_save_ctx(struct isp_device *isp) | 1107 | static void isp_save_ctx(struct isp_device *isp) |
1115 | { | 1108 | { |
1116 | isp_save_context(isp, isp_reg_list); | 1109 | isp_save_context(isp, isp_reg_list); |
1117 | if (isp->iommu) | 1110 | omap_iommu_save_ctx(isp->dev); |
1118 | omap_iommu_save_ctx(isp->iommu); | ||
1119 | } | 1111 | } |
1120 | 1112 | ||
1121 | /* | 1113 | /* |
@@ -1128,8 +1120,7 @@ static void isp_save_ctx(struct isp_device *isp) | |||
1128 | static void isp_restore_ctx(struct isp_device *isp) | 1120 | static void isp_restore_ctx(struct isp_device *isp) |
1129 | { | 1121 | { |
1130 | isp_restore_context(isp, isp_reg_list); | 1122 | isp_restore_context(isp, isp_reg_list); |
1131 | if (isp->iommu) | 1123 | omap_iommu_restore_ctx(isp->dev); |
1132 | omap_iommu_restore_ctx(isp->iommu); | ||
1133 | omap3isp_ccdc_restore_context(isp); | 1124 | omap3isp_ccdc_restore_context(isp); |
1134 | omap3isp_preview_restore_context(isp); | 1125 | omap3isp_preview_restore_context(isp); |
1135 | } | 1126 | } |
@@ -1983,7 +1974,7 @@ static int isp_remove(struct platform_device *pdev) | |||
1983 | isp_cleanup_modules(isp); | 1974 | isp_cleanup_modules(isp); |
1984 | 1975 | ||
1985 | omap3isp_get(isp); | 1976 | omap3isp_get(isp); |
1986 | iommu_detach_device(isp->domain, isp->iommu_dev); | 1977 | iommu_detach_device(isp->domain, &pdev->dev); |
1987 | iommu_domain_free(isp->domain); | 1978 | iommu_domain_free(isp->domain); |
1988 | omap3isp_put(isp); | 1979 | omap3isp_put(isp); |
1989 | 1980 | ||
@@ -2131,17 +2122,6 @@ static int isp_probe(struct platform_device *pdev) | |||
2131 | } | 2122 | } |
2132 | } | 2123 | } |
2133 | 2124 | ||
2134 | /* IOMMU */ | ||
2135 | isp->iommu_dev = omap_find_iommu_device("isp"); | ||
2136 | if (!isp->iommu_dev) { | ||
2137 | dev_err(isp->dev, "omap_find_iommu_device failed\n"); | ||
2138 | ret = -ENODEV; | ||
2139 | goto error_isp; | ||
2140 | } | ||
2141 | |||
2142 | /* to be removed once iommu migration is complete */ | ||
2143 | isp->iommu = to_iommu(isp->iommu_dev); | ||
2144 | |||
2145 | isp->domain = iommu_domain_alloc(pdev->dev.bus); | 2125 | isp->domain = iommu_domain_alloc(pdev->dev.bus); |
2146 | if (!isp->domain) { | 2126 | if (!isp->domain) { |
2147 | dev_err(isp->dev, "can't alloc iommu domain\n"); | 2127 | dev_err(isp->dev, "can't alloc iommu domain\n"); |
@@ -2149,7 +2129,7 @@ static int isp_probe(struct platform_device *pdev) | |||
2149 | goto error_isp; | 2129 | goto error_isp; |
2150 | } | 2130 | } |
2151 | 2131 | ||
2152 | ret = iommu_attach_device(isp->domain, isp->iommu_dev); | 2132 | ret = iommu_attach_device(isp->domain, &pdev->dev); |
2153 | if (ret) { | 2133 | if (ret) { |
2154 | dev_err(&pdev->dev, "can't attach iommu device: %d\n", ret); | 2134 | dev_err(&pdev->dev, "can't attach iommu device: %d\n", ret); |
2155 | goto free_domain; | 2135 | goto free_domain; |
@@ -2188,7 +2168,7 @@ error_modules: | |||
2188 | error_irq: | 2168 | error_irq: |
2189 | free_irq(isp->irq_num, isp); | 2169 | free_irq(isp->irq_num, isp); |
2190 | detach_dev: | 2170 | detach_dev: |
2191 | iommu_detach_device(isp->domain, isp->iommu_dev); | 2171 | iommu_detach_device(isp->domain, &pdev->dev); |
2192 | free_domain: | 2172 | free_domain: |
2193 | iommu_domain_free(isp->domain); | 2173 | iommu_domain_free(isp->domain); |
2194 | error_isp: | 2174 | error_isp: |
diff --git a/drivers/media/video/omap3isp/isp.h b/drivers/media/video/omap3isp/isp.h index 705946ef4d6..d96603eb0d1 100644 --- a/drivers/media/video/omap3isp/isp.h +++ b/drivers/media/video/omap3isp/isp.h | |||
@@ -212,9 +212,7 @@ struct isp_device { | |||
212 | unsigned int sbl_resources; | 212 | unsigned int sbl_resources; |
213 | unsigned int subclk_resources; | 213 | unsigned int subclk_resources; |
214 | 214 | ||
215 | struct omap_iommu *iommu; | ||
216 | struct iommu_domain *domain; | 215 | struct iommu_domain *domain; |
217 | struct device *iommu_dev; | ||
218 | 216 | ||
219 | struct isp_platform_callback platform_cb; | 217 | struct isp_platform_callback platform_cb; |
220 | }; | 218 | }; |
diff --git a/drivers/media/video/omap3isp/ispccdc.c b/drivers/media/video/omap3isp/ispccdc.c index b0b0fa5a357..d341ba12593 100644 --- a/drivers/media/video/omap3isp/ispccdc.c +++ b/drivers/media/video/omap3isp/ispccdc.c | |||
@@ -366,7 +366,7 @@ static void ccdc_lsc_free_request(struct isp_ccdc_device *ccdc, | |||
366 | dma_unmap_sg(isp->dev, req->iovm->sgt->sgl, | 366 | dma_unmap_sg(isp->dev, req->iovm->sgt->sgl, |
367 | req->iovm->sgt->nents, DMA_TO_DEVICE); | 367 | req->iovm->sgt->nents, DMA_TO_DEVICE); |
368 | if (req->table) | 368 | if (req->table) |
369 | omap_iommu_vfree(isp->domain, isp->iommu, req->table); | 369 | omap_iommu_vfree(isp->domain, isp->dev, req->table); |
370 | kfree(req); | 370 | kfree(req); |
371 | } | 371 | } |
372 | 372 | ||
@@ -438,7 +438,7 @@ static int ccdc_lsc_config(struct isp_ccdc_device *ccdc, | |||
438 | 438 | ||
439 | req->enable = 1; | 439 | req->enable = 1; |
440 | 440 | ||
441 | req->table = omap_iommu_vmalloc(isp->domain, isp->iommu, 0, | 441 | req->table = omap_iommu_vmalloc(isp->domain, isp->dev, 0, |
442 | req->config.size, IOMMU_FLAG); | 442 | req->config.size, IOMMU_FLAG); |
443 | if (IS_ERR_VALUE(req->table)) { | 443 | if (IS_ERR_VALUE(req->table)) { |
444 | req->table = 0; | 444 | req->table = 0; |
@@ -446,7 +446,7 @@ static int ccdc_lsc_config(struct isp_ccdc_device *ccdc, | |||
446 | goto done; | 446 | goto done; |
447 | } | 447 | } |
448 | 448 | ||
449 | req->iovm = omap_find_iovm_area(isp->iommu, req->table); | 449 | req->iovm = omap_find_iovm_area(isp->dev, req->table); |
450 | if (req->iovm == NULL) { | 450 | if (req->iovm == NULL) { |
451 | ret = -ENOMEM; | 451 | ret = -ENOMEM; |
452 | goto done; | 452 | goto done; |
@@ -462,7 +462,7 @@ static int ccdc_lsc_config(struct isp_ccdc_device *ccdc, | |||
462 | dma_sync_sg_for_cpu(isp->dev, req->iovm->sgt->sgl, | 462 | dma_sync_sg_for_cpu(isp->dev, req->iovm->sgt->sgl, |
463 | req->iovm->sgt->nents, DMA_TO_DEVICE); | 463 | req->iovm->sgt->nents, DMA_TO_DEVICE); |
464 | 464 | ||
465 | table = omap_da_to_va(isp->iommu, req->table); | 465 | table = omap_da_to_va(isp->dev, req->table); |
466 | if (copy_from_user(table, config->lsc, req->config.size)) { | 466 | if (copy_from_user(table, config->lsc, req->config.size)) { |
467 | ret = -EFAULT; | 467 | ret = -EFAULT; |
468 | goto done; | 468 | goto done; |
@@ -734,15 +734,15 @@ static int ccdc_config(struct isp_ccdc_device *ccdc, | |||
734 | * already done by omap_iommu_vmalloc(). | 734 | * already done by omap_iommu_vmalloc(). |
735 | */ | 735 | */ |
736 | size = ccdc->fpc.fpnum * 4; | 736 | size = ccdc->fpc.fpnum * 4; |
737 | table_new = omap_iommu_vmalloc(isp->domain, isp->iommu, | 737 | table_new = omap_iommu_vmalloc(isp->domain, isp->dev, |
738 | 0, size, IOMMU_FLAG); | 738 | 0, size, IOMMU_FLAG); |
739 | if (IS_ERR_VALUE(table_new)) | 739 | if (IS_ERR_VALUE(table_new)) |
740 | return -ENOMEM; | 740 | return -ENOMEM; |
741 | 741 | ||
742 | if (copy_from_user(omap_da_to_va(isp->iommu, table_new), | 742 | if (copy_from_user(omap_da_to_va(isp->dev, table_new), |
743 | (__force void __user *) | 743 | (__force void __user *) |
744 | ccdc->fpc.fpcaddr, size)) { | 744 | ccdc->fpc.fpcaddr, size)) { |
745 | omap_iommu_vfree(isp->domain, isp->iommu, | 745 | omap_iommu_vfree(isp->domain, isp->dev, |
746 | table_new); | 746 | table_new); |
747 | return -EFAULT; | 747 | return -EFAULT; |
748 | } | 748 | } |
@@ -753,7 +753,7 @@ static int ccdc_config(struct isp_ccdc_device *ccdc, | |||
753 | 753 | ||
754 | ccdc_configure_fpc(ccdc); | 754 | ccdc_configure_fpc(ccdc); |
755 | if (table_old != 0) | 755 | if (table_old != 0) |
756 | omap_iommu_vfree(isp->domain, isp->iommu, table_old); | 756 | omap_iommu_vfree(isp->domain, isp->dev, table_old); |
757 | } | 757 | } |
758 | 758 | ||
759 | return ccdc_lsc_config(ccdc, ccdc_struct); | 759 | return ccdc_lsc_config(ccdc, ccdc_struct); |
@@ -1408,7 +1408,7 @@ static void ccdc_hs_vs_isr(struct isp_ccdc_device *ccdc) | |||
1408 | { | 1408 | { |
1409 | struct isp_pipeline *pipe = | 1409 | struct isp_pipeline *pipe = |
1410 | to_isp_pipeline(&ccdc->video_out.video.entity); | 1410 | to_isp_pipeline(&ccdc->video_out.video.entity); |
1411 | struct video_device *vdev = &ccdc->subdev.devnode; | 1411 | struct video_device *vdev = ccdc->subdev.devnode; |
1412 | struct v4l2_event event; | 1412 | struct v4l2_event event; |
1413 | 1413 | ||
1414 | memset(&event, 0, sizeof(event)); | 1414 | memset(&event, 0, sizeof(event)); |
@@ -2309,7 +2309,7 @@ void omap3isp_ccdc_cleanup(struct isp_device *isp) | |||
2309 | ccdc_lsc_free_queue(ccdc, &ccdc->lsc.free_queue); | 2309 | ccdc_lsc_free_queue(ccdc, &ccdc->lsc.free_queue); |
2310 | 2310 | ||
2311 | if (ccdc->fpc.fpcaddr != 0) | 2311 | if (ccdc->fpc.fpcaddr != 0) |
2312 | omap_iommu_vfree(isp->domain, isp->iommu, ccdc->fpc.fpcaddr); | 2312 | omap_iommu_vfree(isp->domain, isp->dev, ccdc->fpc.fpcaddr); |
2313 | 2313 | ||
2314 | mutex_destroy(&ccdc->ioctl_lock); | 2314 | mutex_destroy(&ccdc->ioctl_lock); |
2315 | } | 2315 | } |
diff --git a/drivers/media/video/omap3isp/ispstat.c b/drivers/media/video/omap3isp/ispstat.c index 68d539456c5..11871ecc6d2 100644 --- a/drivers/media/video/omap3isp/ispstat.c +++ b/drivers/media/video/omap3isp/ispstat.c | |||
@@ -366,7 +366,7 @@ static void isp_stat_bufs_free(struct ispstat *stat) | |||
366 | dma_unmap_sg(isp->dev, buf->iovm->sgt->sgl, | 366 | dma_unmap_sg(isp->dev, buf->iovm->sgt->sgl, |
367 | buf->iovm->sgt->nents, | 367 | buf->iovm->sgt->nents, |
368 | DMA_FROM_DEVICE); | 368 | DMA_FROM_DEVICE); |
369 | omap_iommu_vfree(isp->domain, isp->iommu, | 369 | omap_iommu_vfree(isp->domain, isp->dev, |
370 | buf->iommu_addr); | 370 | buf->iommu_addr); |
371 | } else { | 371 | } else { |
372 | if (!buf->virt_addr) | 372 | if (!buf->virt_addr) |
@@ -400,7 +400,7 @@ static int isp_stat_bufs_alloc_iommu(struct ispstat *stat, unsigned int size) | |||
400 | struct iovm_struct *iovm; | 400 | struct iovm_struct *iovm; |
401 | 401 | ||
402 | WARN_ON(buf->dma_addr); | 402 | WARN_ON(buf->dma_addr); |
403 | buf->iommu_addr = omap_iommu_vmalloc(isp->domain, isp->iommu, 0, | 403 | buf->iommu_addr = omap_iommu_vmalloc(isp->domain, isp->dev, 0, |
404 | size, IOMMU_FLAG); | 404 | size, IOMMU_FLAG); |
405 | if (IS_ERR((void *)buf->iommu_addr)) { | 405 | if (IS_ERR((void *)buf->iommu_addr)) { |
406 | dev_err(stat->isp->dev, | 406 | dev_err(stat->isp->dev, |
@@ -410,7 +410,7 @@ static int isp_stat_bufs_alloc_iommu(struct ispstat *stat, unsigned int size) | |||
410 | return -ENOMEM; | 410 | return -ENOMEM; |
411 | } | 411 | } |
412 | 412 | ||
413 | iovm = omap_find_iovm_area(isp->iommu, buf->iommu_addr); | 413 | iovm = omap_find_iovm_area(isp->dev, buf->iommu_addr); |
414 | if (!iovm || | 414 | if (!iovm || |
415 | !dma_map_sg(isp->dev, iovm->sgt->sgl, iovm->sgt->nents, | 415 | !dma_map_sg(isp->dev, iovm->sgt->sgl, iovm->sgt->nents, |
416 | DMA_FROM_DEVICE)) { | 416 | DMA_FROM_DEVICE)) { |
@@ -419,7 +419,7 @@ static int isp_stat_bufs_alloc_iommu(struct ispstat *stat, unsigned int size) | |||
419 | } | 419 | } |
420 | buf->iovm = iovm; | 420 | buf->iovm = iovm; |
421 | 421 | ||
422 | buf->virt_addr = omap_da_to_va(stat->isp->iommu, | 422 | buf->virt_addr = omap_da_to_va(stat->isp->dev, |
423 | (u32)buf->iommu_addr); | 423 | (u32)buf->iommu_addr); |
424 | buf->empty = 1; | 424 | buf->empty = 1; |
425 | dev_dbg(stat->isp->dev, "%s: buffer[%d] allocated." | 425 | dev_dbg(stat->isp->dev, "%s: buffer[%d] allocated." |
@@ -496,7 +496,7 @@ static int isp_stat_bufs_alloc(struct ispstat *stat, u32 size) | |||
496 | 496 | ||
497 | static void isp_stat_queue_event(struct ispstat *stat, int err) | 497 | static void isp_stat_queue_event(struct ispstat *stat, int err) |
498 | { | 498 | { |
499 | struct video_device *vdev = &stat->subdev.devnode; | 499 | struct video_device *vdev = stat->subdev.devnode; |
500 | struct v4l2_event event; | 500 | struct v4l2_event event; |
501 | struct omap3isp_stat_event_status *status = (void *)event.u.data; | 501 | struct omap3isp_stat_event_status *status = (void *)event.u.data; |
502 | 502 | ||
diff --git a/drivers/media/video/omap3isp/ispvideo.c b/drivers/media/video/omap3isp/ispvideo.c index d1000723c5a..bd3aebafafa 100644 --- a/drivers/media/video/omap3isp/ispvideo.c +++ b/drivers/media/video/omap3isp/ispvideo.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <asm/cacheflush.h> | 26 | #include <asm/cacheflush.h> |
27 | #include <linux/clk.h> | 27 | #include <linux/clk.h> |
28 | #include <linux/mm.h> | 28 | #include <linux/mm.h> |
29 | #include <linux/module.h> | ||
29 | #include <linux/pagemap.h> | 30 | #include <linux/pagemap.h> |
30 | #include <linux/scatterlist.h> | 31 | #include <linux/scatterlist.h> |
31 | #include <linux/sched.h> | 32 | #include <linux/sched.h> |
@@ -452,7 +453,7 @@ ispmmu_vmap(struct isp_device *isp, const struct scatterlist *sglist, int sglen) | |||
452 | sgt->nents = sglen; | 453 | sgt->nents = sglen; |
453 | sgt->orig_nents = sglen; | 454 | sgt->orig_nents = sglen; |
454 | 455 | ||
455 | da = omap_iommu_vmap(isp->domain, isp->iommu, 0, sgt, IOMMU_FLAG); | 456 | da = omap_iommu_vmap(isp->domain, isp->dev, 0, sgt, IOMMU_FLAG); |
456 | if (IS_ERR_VALUE(da)) | 457 | if (IS_ERR_VALUE(da)) |
457 | kfree(sgt); | 458 | kfree(sgt); |
458 | 459 | ||
@@ -468,7 +469,7 @@ static void ispmmu_vunmap(struct isp_device *isp, dma_addr_t da) | |||
468 | { | 469 | { |
469 | struct sg_table *sgt; | 470 | struct sg_table *sgt; |
470 | 471 | ||
471 | sgt = omap_iommu_vunmap(isp->domain, isp->iommu, (u32)da); | 472 | sgt = omap_iommu_vunmap(isp->domain, isp->dev, (u32)da); |
472 | kfree(sgt); | 473 | kfree(sgt); |
473 | } | 474 | } |
474 | 475 | ||
diff --git a/drivers/media/video/ov6650.c b/drivers/media/video/ov6650.c index 9f2d26b1d4c..6806345ec2f 100644 --- a/drivers/media/video/ov6650.c +++ b/drivers/media/video/ov6650.c | |||
@@ -540,7 +540,7 @@ static u8 to_clkrc(struct v4l2_fract *timeperframe, | |||
540 | static int ov6650_s_fmt(struct v4l2_subdev *sd, struct v4l2_mbus_framefmt *mf) | 540 | static int ov6650_s_fmt(struct v4l2_subdev *sd, struct v4l2_mbus_framefmt *mf) |
541 | { | 541 | { |
542 | struct i2c_client *client = v4l2_get_subdevdata(sd); | 542 | struct i2c_client *client = v4l2_get_subdevdata(sd); |
543 | struct soc_camera_device *icd = (struct soc_camera_device *)sd->grp_id; | 543 | struct soc_camera_device *icd = v4l2_get_subdev_hostdata(sd); |
544 | struct soc_camera_sense *sense = icd->sense; | 544 | struct soc_camera_sense *sense = icd->sense; |
545 | struct ov6650 *priv = to_ov6650(client); | 545 | struct ov6650 *priv = to_ov6650(client); |
546 | bool half_scale = !is_unscaled_ok(mf->width, mf->height, &priv->rect); | 546 | bool half_scale = !is_unscaled_ok(mf->width, mf->height, &priv->rect); |
diff --git a/drivers/media/video/ov7670.c b/drivers/media/video/ov7670.c index 8aa05853128..6a564964853 100644 --- a/drivers/media/video/ov7670.c +++ b/drivers/media/video/ov7670.c | |||
@@ -25,7 +25,7 @@ MODULE_AUTHOR("Jonathan Corbet <corbet@lwn.net>"); | |||
25 | MODULE_DESCRIPTION("A low-level driver for OmniVision ov7670 sensors"); | 25 | MODULE_DESCRIPTION("A low-level driver for OmniVision ov7670 sensors"); |
26 | MODULE_LICENSE("GPL"); | 26 | MODULE_LICENSE("GPL"); |
27 | 27 | ||
28 | static int debug; | 28 | static bool debug; |
29 | module_param(debug, bool, 0644); | 29 | module_param(debug, bool, 0644); |
30 | MODULE_PARM_DESC(debug, "Debug level (0-1)"); | 30 | MODULE_PARM_DESC(debug, "Debug level (0-1)"); |
31 | 31 | ||
diff --git a/drivers/media/video/s2255drv.c b/drivers/media/video/s2255drv.c index 803c9c82e49..c1bef618766 100644 --- a/drivers/media/video/s2255drv.c +++ b/drivers/media/video/s2255drv.c | |||
@@ -2682,25 +2682,7 @@ static struct usb_driver s2255_driver = { | |||
2682 | .id_table = s2255_table, | 2682 | .id_table = s2255_table, |
2683 | }; | 2683 | }; |
2684 | 2684 | ||
2685 | static int __init usb_s2255_init(void) | 2685 | module_usb_driver(s2255_driver); |
2686 | { | ||
2687 | int result; | ||
2688 | /* register this driver with the USB subsystem */ | ||
2689 | result = usb_register(&s2255_driver); | ||
2690 | if (result) | ||
2691 | pr_err(KBUILD_MODNAME | ||
2692 | ": usb_register failed. Error number %d\n", result); | ||
2693 | dprintk(2, "%s\n", __func__); | ||
2694 | return result; | ||
2695 | } | ||
2696 | |||
2697 | static void __exit usb_s2255_exit(void) | ||
2698 | { | ||
2699 | usb_deregister(&s2255_driver); | ||
2700 | } | ||
2701 | |||
2702 | module_init(usb_s2255_init); | ||
2703 | module_exit(usb_s2255_exit); | ||
2704 | 2686 | ||
2705 | MODULE_DESCRIPTION("Sensoray 2255 Video for Linux driver"); | 2687 | MODULE_DESCRIPTION("Sensoray 2255 Video for Linux driver"); |
2706 | MODULE_AUTHOR("Dean Anderson (Sensoray Company Inc.)"); | 2688 | MODULE_AUTHOR("Dean Anderson (Sensoray Company Inc.)"); |
diff --git a/drivers/media/video/s5p-fimc/fimc-capture.c b/drivers/media/video/s5p-fimc/fimc-capture.c index c8d91b0cd9b..2cc3b916672 100644 --- a/drivers/media/video/s5p-fimc/fimc-capture.c +++ b/drivers/media/video/s5p-fimc/fimc-capture.c | |||
@@ -98,6 +98,10 @@ static int fimc_capture_state_cleanup(struct fimc_dev *fimc, bool suspend) | |||
98 | vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR); | 98 | vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR); |
99 | } | 99 | } |
100 | set_bit(ST_CAPT_SUSPENDED, &fimc->state); | 100 | set_bit(ST_CAPT_SUSPENDED, &fimc->state); |
101 | |||
102 | fimc_hw_reset(fimc); | ||
103 | cap->buf_index = 0; | ||
104 | |||
101 | spin_unlock_irqrestore(&fimc->slock, flags); | 105 | spin_unlock_irqrestore(&fimc->slock, flags); |
102 | 106 | ||
103 | if (streaming) | 107 | if (streaming) |
@@ -137,7 +141,7 @@ int fimc_capture_config_update(struct fimc_ctx *ctx) | |||
137 | struct fimc_dev *fimc = ctx->fimc_dev; | 141 | struct fimc_dev *fimc = ctx->fimc_dev; |
138 | int ret; | 142 | int ret; |
139 | 143 | ||
140 | if (test_bit(ST_CAPT_APPLY_CFG, &fimc->state)) | 144 | if (!test_bit(ST_CAPT_APPLY_CFG, &fimc->state)) |
141 | return 0; | 145 | return 0; |
142 | 146 | ||
143 | spin_lock(&ctx->slock); | 147 | spin_lock(&ctx->slock); |
@@ -150,7 +154,7 @@ int fimc_capture_config_update(struct fimc_ctx *ctx) | |||
150 | fimc_hw_set_rotation(ctx); | 154 | fimc_hw_set_rotation(ctx); |
151 | fimc_prepare_dma_offset(ctx, &ctx->d_frame); | 155 | fimc_prepare_dma_offset(ctx, &ctx->d_frame); |
152 | fimc_hw_set_out_dma(ctx); | 156 | fimc_hw_set_out_dma(ctx); |
153 | set_bit(ST_CAPT_APPLY_CFG, &fimc->state); | 157 | clear_bit(ST_CAPT_APPLY_CFG, &fimc->state); |
154 | } | 158 | } |
155 | spin_unlock(&ctx->slock); | 159 | spin_unlock(&ctx->slock); |
156 | return ret; | 160 | return ret; |
@@ -164,7 +168,6 @@ static int start_streaming(struct vb2_queue *q, unsigned int count) | |||
164 | int min_bufs; | 168 | int min_bufs; |
165 | int ret; | 169 | int ret; |
166 | 170 | ||
167 | fimc_hw_reset(fimc); | ||
168 | vid_cap->frame_count = 0; | 171 | vid_cap->frame_count = 0; |
169 | 172 | ||
170 | ret = fimc_init_capture(fimc); | 173 | ret = fimc_init_capture(fimc); |
@@ -523,7 +526,7 @@ static struct fimc_fmt *fimc_capture_try_format(struct fimc_ctx *ctx, | |||
523 | max_w = rotation ? pl->out_rot_en_w : pl->out_rot_dis_w; | 526 | max_w = rotation ? pl->out_rot_en_w : pl->out_rot_dis_w; |
524 | min_w = ctx->state & FIMC_DST_CROP ? dst->width : var->min_out_pixsize; | 527 | min_w = ctx->state & FIMC_DST_CROP ? dst->width : var->min_out_pixsize; |
525 | min_h = ctx->state & FIMC_DST_CROP ? dst->height : var->min_out_pixsize; | 528 | min_h = ctx->state & FIMC_DST_CROP ? dst->height : var->min_out_pixsize; |
526 | if (fimc->id == 1 && var->pix_hoff) | 529 | if (var->min_vsize_align == 1 && !rotation) |
527 | align_h = fimc_fmt_is_rgb(ffmt->color) ? 0 : 1; | 530 | align_h = fimc_fmt_is_rgb(ffmt->color) ? 0 : 1; |
528 | 531 | ||
529 | depth = fimc_get_format_depth(ffmt); | 532 | depth = fimc_get_format_depth(ffmt); |
@@ -1239,6 +1242,7 @@ static int fimc_subdev_set_fmt(struct v4l2_subdev *sd, | |||
1239 | 1242 | ||
1240 | mutex_lock(&fimc->lock); | 1243 | mutex_lock(&fimc->lock); |
1241 | set_frame_bounds(ff, mf->width, mf->height); | 1244 | set_frame_bounds(ff, mf->width, mf->height); |
1245 | fimc->vid_cap.mf = *mf; | ||
1242 | ff->fmt = ffmt; | 1246 | ff->fmt = ffmt; |
1243 | 1247 | ||
1244 | /* Reset the crop rectangle if required. */ | 1248 | /* Reset the crop rectangle if required. */ |
@@ -1375,7 +1379,7 @@ static void fimc_destroy_capture_subdev(struct fimc_dev *fimc) | |||
1375 | media_entity_cleanup(&sd->entity); | 1379 | media_entity_cleanup(&sd->entity); |
1376 | v4l2_device_unregister_subdev(sd); | 1380 | v4l2_device_unregister_subdev(sd); |
1377 | kfree(sd); | 1381 | kfree(sd); |
1378 | sd = NULL; | 1382 | fimc->vid_cap.subdev = NULL; |
1379 | } | 1383 | } |
1380 | 1384 | ||
1381 | /* Set default format at the sensor and host interface */ | 1385 | /* Set default format at the sensor and host interface */ |
diff --git a/drivers/media/video/s5p-fimc/fimc-core.c b/drivers/media/video/s5p-fimc/fimc-core.c index 19ca6db38b2..07c6254faee 100644 --- a/drivers/media/video/s5p-fimc/fimc-core.c +++ b/drivers/media/video/s5p-fimc/fimc-core.c | |||
@@ -37,7 +37,7 @@ static char *fimc_clocks[MAX_FIMC_CLOCKS] = { | |||
37 | static struct fimc_fmt fimc_formats[] = { | 37 | static struct fimc_fmt fimc_formats[] = { |
38 | { | 38 | { |
39 | .name = "RGB565", | 39 | .name = "RGB565", |
40 | .fourcc = V4L2_PIX_FMT_RGB565X, | 40 | .fourcc = V4L2_PIX_FMT_RGB565, |
41 | .depth = { 16 }, | 41 | .depth = { 16 }, |
42 | .color = S5P_FIMC_RGB565, | 42 | .color = S5P_FIMC_RGB565, |
43 | .memplanes = 1, | 43 | .memplanes = 1, |
@@ -1038,12 +1038,11 @@ static int fimc_try_fmt_mplane(struct fimc_ctx *ctx, struct v4l2_format *f) | |||
1038 | mod_x = 6; /* 64 x 32 pixels tile */ | 1038 | mod_x = 6; /* 64 x 32 pixels tile */ |
1039 | mod_y = 5; | 1039 | mod_y = 5; |
1040 | } else { | 1040 | } else { |
1041 | if (fimc->id == 1 && variant->pix_hoff) | 1041 | if (variant->min_vsize_align == 1) |
1042 | mod_y = fimc_fmt_is_rgb(fmt->color) ? 0 : 1; | 1042 | mod_y = fimc_fmt_is_rgb(fmt->color) ? 0 : 1; |
1043 | else | 1043 | else |
1044 | mod_y = mod_x; | 1044 | mod_y = ffs(variant->min_vsize_align) - 1; |
1045 | } | 1045 | } |
1046 | dbg("mod_x: %d, mod_y: %d, max_w: %d", mod_x, mod_y, max_w); | ||
1047 | 1046 | ||
1048 | v4l_bound_align_image(&pix->width, 16, max_w, mod_x, | 1047 | v4l_bound_align_image(&pix->width, 16, max_w, mod_x, |
1049 | &pix->height, 8, variant->pix_limit->scaler_dis_w, mod_y, 0); | 1048 | &pix->height, 8, variant->pix_limit->scaler_dis_w, mod_y, 0); |
@@ -1226,10 +1225,10 @@ static int fimc_m2m_try_crop(struct fimc_ctx *ctx, struct v4l2_crop *cr) | |||
1226 | fimc->variant->min_inp_pixsize : fimc->variant->min_out_pixsize; | 1225 | fimc->variant->min_inp_pixsize : fimc->variant->min_out_pixsize; |
1227 | 1226 | ||
1228 | /* Get pixel alignment constraints. */ | 1227 | /* Get pixel alignment constraints. */ |
1229 | if (fimc->id == 1 && fimc->variant->pix_hoff) | 1228 | if (fimc->variant->min_vsize_align == 1) |
1230 | halign = fimc_fmt_is_rgb(f->fmt->color) ? 0 : 1; | 1229 | halign = fimc_fmt_is_rgb(f->fmt->color) ? 0 : 1; |
1231 | else | 1230 | else |
1232 | halign = ffs(min_size) - 1; | 1231 | halign = ffs(fimc->variant->min_vsize_align) - 1; |
1233 | 1232 | ||
1234 | for (i = 0; i < f->fmt->colplanes; i++) | 1233 | for (i = 0; i < f->fmt->colplanes; i++) |
1235 | depth += f->fmt->depth[i]; | 1234 | depth += f->fmt->depth[i]; |
@@ -1615,7 +1614,6 @@ static int fimc_probe(struct platform_device *pdev) | |||
1615 | pdata = pdev->dev.platform_data; | 1614 | pdata = pdev->dev.platform_data; |
1616 | fimc->pdata = pdata; | 1615 | fimc->pdata = pdata; |
1617 | 1616 | ||
1618 | set_bit(ST_LPM, &fimc->state); | ||
1619 | 1617 | ||
1620 | init_waitqueue_head(&fimc->irq_queue); | 1618 | init_waitqueue_head(&fimc->irq_queue); |
1621 | spin_lock_init(&fimc->slock); | 1619 | spin_lock_init(&fimc->slock); |
@@ -1707,8 +1705,6 @@ static int fimc_runtime_resume(struct device *dev) | |||
1707 | /* Enable clocks and perform basic initalization */ | 1705 | /* Enable clocks and perform basic initalization */ |
1708 | clk_enable(fimc->clock[CLK_GATE]); | 1706 | clk_enable(fimc->clock[CLK_GATE]); |
1709 | fimc_hw_reset(fimc); | 1707 | fimc_hw_reset(fimc); |
1710 | if (fimc->variant->out_buf_count > 4) | ||
1711 | fimc_hw_set_dma_seq(fimc, 0xF); | ||
1712 | 1708 | ||
1713 | /* Resume the capture or mem-to-mem device */ | 1709 | /* Resume the capture or mem-to-mem device */ |
1714 | if (fimc_capture_busy(fimc)) | 1710 | if (fimc_capture_busy(fimc)) |
@@ -1750,8 +1746,6 @@ static int fimc_resume(struct device *dev) | |||
1750 | return 0; | 1746 | return 0; |
1751 | } | 1747 | } |
1752 | fimc_hw_reset(fimc); | 1748 | fimc_hw_reset(fimc); |
1753 | if (fimc->variant->out_buf_count > 4) | ||
1754 | fimc_hw_set_dma_seq(fimc, 0xF); | ||
1755 | spin_unlock_irqrestore(&fimc->slock, flags); | 1749 | spin_unlock_irqrestore(&fimc->slock, flags); |
1756 | 1750 | ||
1757 | if (fimc_capture_busy(fimc)) | 1751 | if (fimc_capture_busy(fimc)) |
@@ -1780,7 +1774,6 @@ static int __devexit fimc_remove(struct platform_device *pdev) | |||
1780 | struct fimc_dev *fimc = platform_get_drvdata(pdev); | 1774 | struct fimc_dev *fimc = platform_get_drvdata(pdev); |
1781 | 1775 | ||
1782 | pm_runtime_disable(&pdev->dev); | 1776 | pm_runtime_disable(&pdev->dev); |
1783 | fimc_runtime_suspend(&pdev->dev); | ||
1784 | pm_runtime_set_suspended(&pdev->dev); | 1777 | pm_runtime_set_suspended(&pdev->dev); |
1785 | 1778 | ||
1786 | vb2_dma_contig_cleanup_ctx(fimc->alloc_ctx); | 1779 | vb2_dma_contig_cleanup_ctx(fimc->alloc_ctx); |
@@ -1840,6 +1833,7 @@ static struct samsung_fimc_variant fimc0_variant_s5p = { | |||
1840 | .min_inp_pixsize = 16, | 1833 | .min_inp_pixsize = 16, |
1841 | .min_out_pixsize = 16, | 1834 | .min_out_pixsize = 16, |
1842 | .hor_offs_align = 8, | 1835 | .hor_offs_align = 8, |
1836 | .min_vsize_align = 16, | ||
1843 | .out_buf_count = 4, | 1837 | .out_buf_count = 4, |
1844 | .pix_limit = &s5p_pix_limit[0], | 1838 | .pix_limit = &s5p_pix_limit[0], |
1845 | }; | 1839 | }; |
@@ -1849,6 +1843,7 @@ static struct samsung_fimc_variant fimc2_variant_s5p = { | |||
1849 | .min_inp_pixsize = 16, | 1843 | .min_inp_pixsize = 16, |
1850 | .min_out_pixsize = 16, | 1844 | .min_out_pixsize = 16, |
1851 | .hor_offs_align = 8, | 1845 | .hor_offs_align = 8, |
1846 | .min_vsize_align = 16, | ||
1852 | .out_buf_count = 4, | 1847 | .out_buf_count = 4, |
1853 | .pix_limit = &s5p_pix_limit[1], | 1848 | .pix_limit = &s5p_pix_limit[1], |
1854 | }; | 1849 | }; |
@@ -1861,6 +1856,7 @@ static struct samsung_fimc_variant fimc0_variant_s5pv210 = { | |||
1861 | .min_inp_pixsize = 16, | 1856 | .min_inp_pixsize = 16, |
1862 | .min_out_pixsize = 16, | 1857 | .min_out_pixsize = 16, |
1863 | .hor_offs_align = 8, | 1858 | .hor_offs_align = 8, |
1859 | .min_vsize_align = 16, | ||
1864 | .out_buf_count = 4, | 1860 | .out_buf_count = 4, |
1865 | .pix_limit = &s5p_pix_limit[1], | 1861 | .pix_limit = &s5p_pix_limit[1], |
1866 | }; | 1862 | }; |
@@ -1874,6 +1870,7 @@ static struct samsung_fimc_variant fimc1_variant_s5pv210 = { | |||
1874 | .min_inp_pixsize = 16, | 1870 | .min_inp_pixsize = 16, |
1875 | .min_out_pixsize = 16, | 1871 | .min_out_pixsize = 16, |
1876 | .hor_offs_align = 1, | 1872 | .hor_offs_align = 1, |
1873 | .min_vsize_align = 1, | ||
1877 | .out_buf_count = 4, | 1874 | .out_buf_count = 4, |
1878 | .pix_limit = &s5p_pix_limit[2], | 1875 | .pix_limit = &s5p_pix_limit[2], |
1879 | }; | 1876 | }; |
@@ -1884,6 +1881,7 @@ static struct samsung_fimc_variant fimc2_variant_s5pv210 = { | |||
1884 | .min_inp_pixsize = 16, | 1881 | .min_inp_pixsize = 16, |
1885 | .min_out_pixsize = 16, | 1882 | .min_out_pixsize = 16, |
1886 | .hor_offs_align = 8, | 1883 | .hor_offs_align = 8, |
1884 | .min_vsize_align = 16, | ||
1887 | .out_buf_count = 4, | 1885 | .out_buf_count = 4, |
1888 | .pix_limit = &s5p_pix_limit[2], | 1886 | .pix_limit = &s5p_pix_limit[2], |
1889 | }; | 1887 | }; |
@@ -1898,6 +1896,7 @@ static struct samsung_fimc_variant fimc0_variant_exynos4 = { | |||
1898 | .min_inp_pixsize = 16, | 1896 | .min_inp_pixsize = 16, |
1899 | .min_out_pixsize = 16, | 1897 | .min_out_pixsize = 16, |
1900 | .hor_offs_align = 2, | 1898 | .hor_offs_align = 2, |
1899 | .min_vsize_align = 1, | ||
1901 | .out_buf_count = 32, | 1900 | .out_buf_count = 32, |
1902 | .pix_limit = &s5p_pix_limit[1], | 1901 | .pix_limit = &s5p_pix_limit[1], |
1903 | }; | 1902 | }; |
@@ -1910,6 +1909,7 @@ static struct samsung_fimc_variant fimc3_variant_exynos4 = { | |||
1910 | .min_inp_pixsize = 16, | 1909 | .min_inp_pixsize = 16, |
1911 | .min_out_pixsize = 16, | 1910 | .min_out_pixsize = 16, |
1912 | .hor_offs_align = 2, | 1911 | .hor_offs_align = 2, |
1912 | .min_vsize_align = 1, | ||
1913 | .out_buf_count = 32, | 1913 | .out_buf_count = 32, |
1914 | .pix_limit = &s5p_pix_limit[3], | 1914 | .pix_limit = &s5p_pix_limit[3], |
1915 | }; | 1915 | }; |
diff --git a/drivers/media/video/s5p-fimc/fimc-core.h b/drivers/media/video/s5p-fimc/fimc-core.h index a6936dad5b1..c7f01c47b20 100644 --- a/drivers/media/video/s5p-fimc/fimc-core.h +++ b/drivers/media/video/s5p-fimc/fimc-core.h | |||
@@ -377,6 +377,7 @@ struct fimc_pix_limit { | |||
377 | * @min_inp_pixsize: minimum input pixel size | 377 | * @min_inp_pixsize: minimum input pixel size |
378 | * @min_out_pixsize: minimum output pixel size | 378 | * @min_out_pixsize: minimum output pixel size |
379 | * @hor_offs_align: horizontal pixel offset aligment | 379 | * @hor_offs_align: horizontal pixel offset aligment |
380 | * @min_vsize_align: minimum vertical pixel size alignment | ||
380 | * @out_buf_count: the number of buffers in output DMA sequence | 381 | * @out_buf_count: the number of buffers in output DMA sequence |
381 | */ | 382 | */ |
382 | struct samsung_fimc_variant { | 383 | struct samsung_fimc_variant { |
@@ -390,6 +391,7 @@ struct samsung_fimc_variant { | |||
390 | u16 min_inp_pixsize; | 391 | u16 min_inp_pixsize; |
391 | u16 min_out_pixsize; | 392 | u16 min_out_pixsize; |
392 | u16 hor_offs_align; | 393 | u16 hor_offs_align; |
394 | u16 min_vsize_align; | ||
393 | u16 out_buf_count; | 395 | u16 out_buf_count; |
394 | }; | 396 | }; |
395 | 397 | ||
diff --git a/drivers/media/video/s5p-fimc/fimc-mdevice.c b/drivers/media/video/s5p-fimc/fimc-mdevice.c index cc337b1de91..615c862f036 100644 --- a/drivers/media/video/s5p-fimc/fimc-mdevice.c +++ b/drivers/media/video/s5p-fimc/fimc-mdevice.c | |||
@@ -220,6 +220,7 @@ static struct v4l2_subdev *fimc_md_register_sensor(struct fimc_md *fmd, | |||
220 | sd = v4l2_i2c_new_subdev_board(&fmd->v4l2_dev, adapter, | 220 | sd = v4l2_i2c_new_subdev_board(&fmd->v4l2_dev, adapter, |
221 | s_info->pdata->board_info, NULL); | 221 | s_info->pdata->board_info, NULL); |
222 | if (IS_ERR_OR_NULL(sd)) { | 222 | if (IS_ERR_OR_NULL(sd)) { |
223 | i2c_put_adapter(adapter); | ||
223 | v4l2_err(&fmd->v4l2_dev, "Failed to acquire subdev\n"); | 224 | v4l2_err(&fmd->v4l2_dev, "Failed to acquire subdev\n"); |
224 | return NULL; | 225 | return NULL; |
225 | } | 226 | } |
@@ -234,12 +235,15 @@ static struct v4l2_subdev *fimc_md_register_sensor(struct fimc_md *fmd, | |||
234 | static void fimc_md_unregister_sensor(struct v4l2_subdev *sd) | 235 | static void fimc_md_unregister_sensor(struct v4l2_subdev *sd) |
235 | { | 236 | { |
236 | struct i2c_client *client = v4l2_get_subdevdata(sd); | 237 | struct i2c_client *client = v4l2_get_subdevdata(sd); |
238 | struct i2c_adapter *adapter; | ||
237 | 239 | ||
238 | if (!client) | 240 | if (!client) |
239 | return; | 241 | return; |
240 | v4l2_device_unregister_subdev(sd); | 242 | v4l2_device_unregister_subdev(sd); |
243 | adapter = client->adapter; | ||
241 | i2c_unregister_device(client); | 244 | i2c_unregister_device(client); |
242 | i2c_put_adapter(client->adapter); | 245 | if (adapter) |
246 | i2c_put_adapter(adapter); | ||
243 | } | 247 | } |
244 | 248 | ||
245 | static int fimc_md_register_sensor_entities(struct fimc_md *fmd) | 249 | static int fimc_md_register_sensor_entities(struct fimc_md *fmd) |
@@ -381,20 +385,28 @@ static void fimc_md_unregister_entities(struct fimc_md *fmd) | |||
381 | 385 | ||
382 | static int fimc_md_register_video_nodes(struct fimc_md *fmd) | 386 | static int fimc_md_register_video_nodes(struct fimc_md *fmd) |
383 | { | 387 | { |
388 | struct video_device *vdev; | ||
384 | int i, ret = 0; | 389 | int i, ret = 0; |
385 | 390 | ||
386 | for (i = 0; i < FIMC_MAX_DEVS && !ret; i++) { | 391 | for (i = 0; i < FIMC_MAX_DEVS && !ret; i++) { |
387 | if (!fmd->fimc[i]) | 392 | if (!fmd->fimc[i]) |
388 | continue; | 393 | continue; |
389 | 394 | ||
390 | if (fmd->fimc[i]->m2m.vfd) | 395 | vdev = fmd->fimc[i]->m2m.vfd; |
391 | ret = video_register_device(fmd->fimc[i]->m2m.vfd, | 396 | if (vdev) { |
392 | VFL_TYPE_GRABBER, -1); | 397 | ret = video_register_device(vdev, VFL_TYPE_GRABBER, -1); |
393 | if (ret) | 398 | if (ret) |
394 | break; | 399 | break; |
395 | if (fmd->fimc[i]->vid_cap.vfd) | 400 | v4l2_info(&fmd->v4l2_dev, "Registered %s as /dev/%s\n", |
396 | ret = video_register_device(fmd->fimc[i]->vid_cap.vfd, | 401 | vdev->name, video_device_node_name(vdev)); |
397 | VFL_TYPE_GRABBER, -1); | 402 | } |
403 | |||
404 | vdev = fmd->fimc[i]->vid_cap.vfd; | ||
405 | if (vdev == NULL) | ||
406 | continue; | ||
407 | ret = video_register_device(vdev, VFL_TYPE_GRABBER, -1); | ||
408 | v4l2_info(&fmd->v4l2_dev, "Registered %s as /dev/%s\n", | ||
409 | vdev->name, video_device_node_name(vdev)); | ||
398 | } | 410 | } |
399 | 411 | ||
400 | return ret; | 412 | return ret; |
@@ -502,7 +514,7 @@ static int fimc_md_create_links(struct fimc_md *fmd) | |||
502 | if (WARN(csis == NULL, | 514 | if (WARN(csis == NULL, |
503 | "MIPI-CSI interface specified " | 515 | "MIPI-CSI interface specified " |
504 | "but s5p-csis module is not loaded!\n")) | 516 | "but s5p-csis module is not loaded!\n")) |
505 | continue; | 517 | return -EINVAL; |
506 | 518 | ||
507 | ret = media_entity_create_link(&sensor->entity, 0, | 519 | ret = media_entity_create_link(&sensor->entity, 0, |
508 | &csis->entity, CSIS_PAD_SINK, | 520 | &csis->entity, CSIS_PAD_SINK, |
@@ -742,9 +754,6 @@ static int __devinit fimc_md_probe(struct platform_device *pdev) | |||
742 | struct fimc_md *fmd; | 754 | struct fimc_md *fmd; |
743 | int ret; | 755 | int ret; |
744 | 756 | ||
745 | if (WARN(!pdev->dev.platform_data, "Platform data not specified!\n")) | ||
746 | return -EINVAL; | ||
747 | |||
748 | fmd = kzalloc(sizeof(struct fimc_md), GFP_KERNEL); | 757 | fmd = kzalloc(sizeof(struct fimc_md), GFP_KERNEL); |
749 | if (!fmd) | 758 | if (!fmd) |
750 | return -ENOMEM; | 759 | return -ENOMEM; |
@@ -782,9 +791,11 @@ static int __devinit fimc_md_probe(struct platform_device *pdev) | |||
782 | if (ret) | 791 | if (ret) |
783 | goto err3; | 792 | goto err3; |
784 | 793 | ||
785 | ret = fimc_md_register_sensor_entities(fmd); | 794 | if (pdev->dev.platform_data) { |
786 | if (ret) | 795 | ret = fimc_md_register_sensor_entities(fmd); |
787 | goto err3; | 796 | if (ret) |
797 | goto err3; | ||
798 | } | ||
788 | ret = fimc_md_create_links(fmd); | 799 | ret = fimc_md_create_links(fmd); |
789 | if (ret) | 800 | if (ret) |
790 | goto err3; | 801 | goto err3; |
diff --git a/drivers/media/video/s5p-fimc/fimc-reg.c b/drivers/media/video/s5p-fimc/fimc-reg.c index 20e664e3416..44f5c2d1920 100644 --- a/drivers/media/video/s5p-fimc/fimc-reg.c +++ b/drivers/media/video/s5p-fimc/fimc-reg.c | |||
@@ -35,6 +35,9 @@ void fimc_hw_reset(struct fimc_dev *dev) | |||
35 | cfg = readl(dev->regs + S5P_CIGCTRL); | 35 | cfg = readl(dev->regs + S5P_CIGCTRL); |
36 | cfg &= ~S5P_CIGCTRL_SWRST; | 36 | cfg &= ~S5P_CIGCTRL_SWRST; |
37 | writel(cfg, dev->regs + S5P_CIGCTRL); | 37 | writel(cfg, dev->regs + S5P_CIGCTRL); |
38 | |||
39 | if (dev->variant->out_buf_count > 4) | ||
40 | fimc_hw_set_dma_seq(dev, 0xF); | ||
38 | } | 41 | } |
39 | 42 | ||
40 | static u32 fimc_hw_get_in_flip(struct fimc_ctx *ctx) | 43 | static u32 fimc_hw_get_in_flip(struct fimc_ctx *ctx) |
@@ -251,7 +254,14 @@ static void fimc_hw_set_scaler(struct fimc_ctx *ctx) | |||
251 | struct fimc_scaler *sc = &ctx->scaler; | 254 | struct fimc_scaler *sc = &ctx->scaler; |
252 | struct fimc_frame *src_frame = &ctx->s_frame; | 255 | struct fimc_frame *src_frame = &ctx->s_frame; |
253 | struct fimc_frame *dst_frame = &ctx->d_frame; | 256 | struct fimc_frame *dst_frame = &ctx->d_frame; |
254 | u32 cfg = 0; | 257 | |
258 | u32 cfg = readl(dev->regs + S5P_CISCCTRL); | ||
259 | |||
260 | cfg &= ~(S5P_CISCCTRL_CSCR2Y_WIDE | S5P_CISCCTRL_CSCY2R_WIDE | | ||
261 | S5P_CISCCTRL_SCALEUP_H | S5P_CISCCTRL_SCALEUP_V | | ||
262 | S5P_CISCCTRL_SCALERBYPASS | S5P_CISCCTRL_ONE2ONE | | ||
263 | S5P_CISCCTRL_INRGB_FMT_MASK | S5P_CISCCTRL_OUTRGB_FMT_MASK | | ||
264 | S5P_CISCCTRL_INTERLACE | S5P_CISCCTRL_RGB_EXT); | ||
255 | 265 | ||
256 | if (!(ctx->flags & FIMC_COLOR_RANGE_NARROW)) | 266 | if (!(ctx->flags & FIMC_COLOR_RANGE_NARROW)) |
257 | cfg |= (S5P_CISCCTRL_CSCR2Y_WIDE | S5P_CISCCTRL_CSCY2R_WIDE); | 267 | cfg |= (S5P_CISCCTRL_CSCR2Y_WIDE | S5P_CISCCTRL_CSCY2R_WIDE); |
@@ -308,9 +318,9 @@ void fimc_hw_set_mainscaler(struct fimc_ctx *ctx) | |||
308 | fimc_hw_set_scaler(ctx); | 318 | fimc_hw_set_scaler(ctx); |
309 | 319 | ||
310 | cfg = readl(dev->regs + S5P_CISCCTRL); | 320 | cfg = readl(dev->regs + S5P_CISCCTRL); |
321 | cfg &= ~(S5P_CISCCTRL_MHRATIO_MASK | S5P_CISCCTRL_MVRATIO_MASK); | ||
311 | 322 | ||
312 | if (variant->has_mainscaler_ext) { | 323 | if (variant->has_mainscaler_ext) { |
313 | cfg &= ~(S5P_CISCCTRL_MHRATIO_MASK | S5P_CISCCTRL_MVRATIO_MASK); | ||
314 | cfg |= S5P_CISCCTRL_MHRATIO_EXT(sc->main_hratio); | 324 | cfg |= S5P_CISCCTRL_MHRATIO_EXT(sc->main_hratio); |
315 | cfg |= S5P_CISCCTRL_MVRATIO_EXT(sc->main_vratio); | 325 | cfg |= S5P_CISCCTRL_MVRATIO_EXT(sc->main_vratio); |
316 | writel(cfg, dev->regs + S5P_CISCCTRL); | 326 | writel(cfg, dev->regs + S5P_CISCCTRL); |
@@ -323,7 +333,6 @@ void fimc_hw_set_mainscaler(struct fimc_ctx *ctx) | |||
323 | cfg |= S5P_CIEXTEN_MVRATIO_EXT(sc->main_vratio); | 333 | cfg |= S5P_CIEXTEN_MVRATIO_EXT(sc->main_vratio); |
324 | writel(cfg, dev->regs + S5P_CIEXTEN); | 334 | writel(cfg, dev->regs + S5P_CIEXTEN); |
325 | } else { | 335 | } else { |
326 | cfg &= ~(S5P_CISCCTRL_MHRATIO_MASK | S5P_CISCCTRL_MVRATIO_MASK); | ||
327 | cfg |= S5P_CISCCTRL_MHRATIO(sc->main_hratio); | 336 | cfg |= S5P_CISCCTRL_MHRATIO(sc->main_hratio); |
328 | cfg |= S5P_CISCCTRL_MVRATIO(sc->main_vratio); | 337 | cfg |= S5P_CISCCTRL_MVRATIO(sc->main_vratio); |
329 | writel(cfg, dev->regs + S5P_CISCCTRL); | 338 | writel(cfg, dev->regs + S5P_CISCCTRL); |
diff --git a/drivers/media/video/s5p-mfc/s5p_mfc_enc.c b/drivers/media/video/s5p-mfc/s5p_mfc_enc.c index 1e8cdb77d4b..dff9dc79879 100644 --- a/drivers/media/video/s5p-mfc/s5p_mfc_enc.c +++ b/drivers/media/video/s5p-mfc/s5p_mfc_enc.c | |||
@@ -61,7 +61,7 @@ static struct s5p_mfc_fmt formats[] = { | |||
61 | .num_planes = 1, | 61 | .num_planes = 1, |
62 | }, | 62 | }, |
63 | { | 63 | { |
64 | .name = "H264 Encoded Stream", | 64 | .name = "H263 Encoded Stream", |
65 | .fourcc = V4L2_PIX_FMT_H263, | 65 | .fourcc = V4L2_PIX_FMT_H263, |
66 | .codec_mode = S5P_FIMV_CODEC_H263_ENC, | 66 | .codec_mode = S5P_FIMV_CODEC_H263_ENC, |
67 | .type = MFC_FMT_ENC, | 67 | .type = MFC_FMT_ENC, |
diff --git a/drivers/media/video/s5p-tv/mixer_video.c b/drivers/media/video/s5p-tv/mixer_video.c index e16d3a4bc1d..b47d0c06ecf 100644 --- a/drivers/media/video/s5p-tv/mixer_video.c +++ b/drivers/media/video/s5p-tv/mixer_video.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <media/v4l2-ioctl.h> | 16 | #include <media/v4l2-ioctl.h> |
17 | #include <linux/videodev2.h> | 17 | #include <linux/videodev2.h> |
18 | #include <linux/mm.h> | 18 | #include <linux/mm.h> |
19 | #include <linux/module.h> | ||
19 | #include <linux/version.h> | 20 | #include <linux/version.h> |
20 | #include <linux/timer.h> | 21 | #include <linux/timer.h> |
21 | #include <media/videobuf2-dma-contig.h> | 22 | #include <media/videobuf2-dma-contig.h> |
diff --git a/drivers/media/video/saa7115.c b/drivers/media/video/saa7115.c index 5cfdbc78b91..0ef5484696b 100644 --- a/drivers/media/video/saa7115.c +++ b/drivers/media/video/saa7115.c | |||
@@ -57,7 +57,7 @@ MODULE_AUTHOR( "Maxim Yevtyushkin, Kevin Thayer, Chris Kennedy, " | |||
57 | "Hans Verkuil, Mauro Carvalho Chehab"); | 57 | "Hans Verkuil, Mauro Carvalho Chehab"); |
58 | MODULE_LICENSE("GPL"); | 58 | MODULE_LICENSE("GPL"); |
59 | 59 | ||
60 | static int debug; | 60 | static bool debug; |
61 | module_param(debug, bool, 0644); | 61 | module_param(debug, bool, 0644); |
62 | 62 | ||
63 | MODULE_PARM_DESC(debug, "Debug level (0-1)"); | 63 | MODULE_PARM_DESC(debug, "Debug level (0-1)"); |
diff --git a/drivers/media/video/sh_mobile_ceu_camera.c b/drivers/media/video/sh_mobile_ceu_camera.c index f390682629c..c51decfcae1 100644 --- a/drivers/media/video/sh_mobile_ceu_camera.c +++ b/drivers/media/video/sh_mobile_ceu_camera.c | |||
@@ -566,8 +566,10 @@ static int sh_mobile_ceu_add_device(struct soc_camera_device *icd) | |||
566 | ret = sh_mobile_ceu_soft_reset(pcdev); | 566 | ret = sh_mobile_ceu_soft_reset(pcdev); |
567 | 567 | ||
568 | csi2_sd = find_csi2(pcdev); | 568 | csi2_sd = find_csi2(pcdev); |
569 | if (csi2_sd) | 569 | if (csi2_sd) { |
570 | csi2_sd->grp_id = (long)icd; | 570 | csi2_sd->grp_id = soc_camera_grp_id(icd); |
571 | v4l2_set_subdev_hostdata(csi2_sd, icd); | ||
572 | } | ||
571 | 573 | ||
572 | ret = v4l2_subdev_call(csi2_sd, core, s_power, 1); | 574 | ret = v4l2_subdev_call(csi2_sd, core, s_power, 1); |
573 | if (ret < 0 && ret != -ENOIOCTLCMD && ret != -ENODEV) { | 575 | if (ret < 0 && ret != -ENOIOCTLCMD && ret != -ENODEV) { |
@@ -768,7 +770,7 @@ static struct v4l2_subdev *find_bus_subdev(struct sh_mobile_ceu_dev *pcdev, | |||
768 | { | 770 | { |
769 | if (pcdev->csi2_pdev) { | 771 | if (pcdev->csi2_pdev) { |
770 | struct v4l2_subdev *csi2_sd = find_csi2(pcdev); | 772 | struct v4l2_subdev *csi2_sd = find_csi2(pcdev); |
771 | if (csi2_sd && csi2_sd->grp_id == (u32)icd) | 773 | if (csi2_sd && csi2_sd->grp_id == soc_camera_grp_id(icd)) |
772 | return csi2_sd; | 774 | return csi2_sd; |
773 | } | 775 | } |
774 | 776 | ||
@@ -1089,8 +1091,9 @@ static int sh_mobile_ceu_get_formats(struct soc_camera_device *icd, unsigned int | |||
1089 | /* Try 2560x1920, 1280x960, 640x480, 320x240 */ | 1091 | /* Try 2560x1920, 1280x960, 640x480, 320x240 */ |
1090 | mf.width = 2560 >> shift; | 1092 | mf.width = 2560 >> shift; |
1091 | mf.height = 1920 >> shift; | 1093 | mf.height = 1920 >> shift; |
1092 | ret = v4l2_device_call_until_err(sd->v4l2_dev, (long)icd, video, | 1094 | ret = v4l2_device_call_until_err(sd->v4l2_dev, |
1093 | s_mbus_fmt, &mf); | 1095 | soc_camera_grp_id(icd), video, |
1096 | s_mbus_fmt, &mf); | ||
1094 | if (ret < 0) | 1097 | if (ret < 0) |
1095 | return ret; | 1098 | return ret; |
1096 | shift++; | 1099 | shift++; |
@@ -1389,7 +1392,8 @@ static int client_s_fmt(struct soc_camera_device *icd, | |||
1389 | bool ceu_1to1; | 1392 | bool ceu_1to1; |
1390 | int ret; | 1393 | int ret; |
1391 | 1394 | ||
1392 | ret = v4l2_device_call_until_err(sd->v4l2_dev, (long)icd, video, | 1395 | ret = v4l2_device_call_until_err(sd->v4l2_dev, |
1396 | soc_camera_grp_id(icd), video, | ||
1393 | s_mbus_fmt, mf); | 1397 | s_mbus_fmt, mf); |
1394 | if (ret < 0) | 1398 | if (ret < 0) |
1395 | return ret; | 1399 | return ret; |
@@ -1426,8 +1430,9 @@ static int client_s_fmt(struct soc_camera_device *icd, | |||
1426 | tmp_h = min(2 * tmp_h, max_height); | 1430 | tmp_h = min(2 * tmp_h, max_height); |
1427 | mf->width = tmp_w; | 1431 | mf->width = tmp_w; |
1428 | mf->height = tmp_h; | 1432 | mf->height = tmp_h; |
1429 | ret = v4l2_device_call_until_err(sd->v4l2_dev, (long)icd, video, | 1433 | ret = v4l2_device_call_until_err(sd->v4l2_dev, |
1430 | s_mbus_fmt, mf); | 1434 | soc_camera_grp_id(icd), video, |
1435 | s_mbus_fmt, mf); | ||
1431 | dev_geo(dev, "Camera scaled to %ux%u\n", | 1436 | dev_geo(dev, "Camera scaled to %ux%u\n", |
1432 | mf->width, mf->height); | 1437 | mf->width, mf->height); |
1433 | if (ret < 0) { | 1438 | if (ret < 0) { |
@@ -1580,8 +1585,9 @@ static int sh_mobile_ceu_set_crop(struct soc_camera_device *icd, | |||
1580 | } | 1585 | } |
1581 | 1586 | ||
1582 | if (interm_width < icd->user_width || interm_height < icd->user_height) { | 1587 | if (interm_width < icd->user_width || interm_height < icd->user_height) { |
1583 | ret = v4l2_device_call_until_err(sd->v4l2_dev, (int)icd, video, | 1588 | ret = v4l2_device_call_until_err(sd->v4l2_dev, |
1584 | s_mbus_fmt, &mf); | 1589 | soc_camera_grp_id(icd), video, |
1590 | s_mbus_fmt, &mf); | ||
1585 | if (ret < 0) | 1591 | if (ret < 0) |
1586 | return ret; | 1592 | return ret; |
1587 | 1593 | ||
@@ -1867,7 +1873,8 @@ static int sh_mobile_ceu_try_fmt(struct soc_camera_device *icd, | |||
1867 | mf.code = xlate->code; | 1873 | mf.code = xlate->code; |
1868 | mf.colorspace = pix->colorspace; | 1874 | mf.colorspace = pix->colorspace; |
1869 | 1875 | ||
1870 | ret = v4l2_device_call_until_err(sd->v4l2_dev, (long)icd, video, try_mbus_fmt, &mf); | 1876 | ret = v4l2_device_call_until_err(sd->v4l2_dev, soc_camera_grp_id(icd), |
1877 | video, try_mbus_fmt, &mf); | ||
1871 | if (ret < 0) | 1878 | if (ret < 0) |
1872 | return ret; | 1879 | return ret; |
1873 | 1880 | ||
@@ -1891,8 +1898,9 @@ static int sh_mobile_ceu_try_fmt(struct soc_camera_device *icd, | |||
1891 | */ | 1898 | */ |
1892 | mf.width = 2560; | 1899 | mf.width = 2560; |
1893 | mf.height = 1920; | 1900 | mf.height = 1920; |
1894 | ret = v4l2_device_call_until_err(sd->v4l2_dev, (long)icd, video, | 1901 | ret = v4l2_device_call_until_err(sd->v4l2_dev, |
1895 | try_mbus_fmt, &mf); | 1902 | soc_camera_grp_id(icd), video, |
1903 | try_mbus_fmt, &mf); | ||
1896 | if (ret < 0) { | 1904 | if (ret < 0) { |
1897 | /* Shouldn't actually happen... */ | 1905 | /* Shouldn't actually happen... */ |
1898 | dev_err(icd->parent, | 1906 | dev_err(icd->parent, |
diff --git a/drivers/media/video/sh_mobile_csi2.c b/drivers/media/video/sh_mobile_csi2.c index ea4f0473ed3..8a652b53ff7 100644 --- a/drivers/media/video/sh_mobile_csi2.c +++ b/drivers/media/video/sh_mobile_csi2.c | |||
@@ -143,7 +143,7 @@ static int sh_csi2_s_mbus_config(struct v4l2_subdev *sd, | |||
143 | const struct v4l2_mbus_config *cfg) | 143 | const struct v4l2_mbus_config *cfg) |
144 | { | 144 | { |
145 | struct sh_csi2 *priv = container_of(sd, struct sh_csi2, subdev); | 145 | struct sh_csi2 *priv = container_of(sd, struct sh_csi2, subdev); |
146 | struct soc_camera_device *icd = (struct soc_camera_device *)sd->grp_id; | 146 | struct soc_camera_device *icd = v4l2_get_subdev_hostdata(sd); |
147 | struct v4l2_subdev *client_sd = soc_camera_to_subdev(icd); | 147 | struct v4l2_subdev *client_sd = soc_camera_to_subdev(icd); |
148 | struct v4l2_mbus_config client_cfg = {.type = V4L2_MBUS_CSI2, | 148 | struct v4l2_mbus_config client_cfg = {.type = V4L2_MBUS_CSI2, |
149 | .flags = priv->mipi_flags}; | 149 | .flags = priv->mipi_flags}; |
@@ -202,7 +202,7 @@ static void sh_csi2_hwinit(struct sh_csi2 *priv) | |||
202 | static int sh_csi2_client_connect(struct sh_csi2 *priv) | 202 | static int sh_csi2_client_connect(struct sh_csi2 *priv) |
203 | { | 203 | { |
204 | struct sh_csi2_pdata *pdata = priv->pdev->dev.platform_data; | 204 | struct sh_csi2_pdata *pdata = priv->pdev->dev.platform_data; |
205 | struct soc_camera_device *icd = (struct soc_camera_device *)priv->subdev.grp_id; | 205 | struct soc_camera_device *icd = v4l2_get_subdev_hostdata(&priv->subdev); |
206 | struct v4l2_subdev *client_sd = soc_camera_to_subdev(icd); | 206 | struct v4l2_subdev *client_sd = soc_camera_to_subdev(icd); |
207 | struct device *dev = v4l2_get_subdevdata(&priv->subdev); | 207 | struct device *dev = v4l2_get_subdevdata(&priv->subdev); |
208 | struct v4l2_mbus_config cfg; | 208 | struct v4l2_mbus_config cfg; |
diff --git a/drivers/media/video/sn9c102/sn9c102_core.c b/drivers/media/video/sn9c102/sn9c102_core.c index 16cb07c5c27..c2882fa5be8 100644 --- a/drivers/media/video/sn9c102/sn9c102_core.c +++ b/drivers/media/video/sn9c102/sn9c102_core.c | |||
@@ -75,8 +75,8 @@ MODULE_PARM_DESC(video_nr, | |||
75 | "\none and for every other camera." | 75 | "\none and for every other camera." |
76 | "\n"); | 76 | "\n"); |
77 | 77 | ||
78 | static short force_munmap[] = {[0 ... SN9C102_MAX_DEVICES-1] = | 78 | static bool force_munmap[] = {[0 ... SN9C102_MAX_DEVICES-1] = |
79 | SN9C102_FORCE_MUNMAP}; | 79 | SN9C102_FORCE_MUNMAP}; |
80 | module_param_array(force_munmap, bool, NULL, 0444); | 80 | module_param_array(force_munmap, bool, NULL, 0444); |
81 | MODULE_PARM_DESC(force_munmap, | 81 | MODULE_PARM_DESC(force_munmap, |
82 | " <0|1[,...]>" | 82 | " <0|1[,...]>" |
@@ -3420,27 +3420,4 @@ static struct usb_driver sn9c102_usb_driver = { | |||
3420 | .disconnect = sn9c102_usb_disconnect, | 3420 | .disconnect = sn9c102_usb_disconnect, |
3421 | }; | 3421 | }; |
3422 | 3422 | ||
3423 | /*****************************************************************************/ | 3423 | module_usb_driver(sn9c102_usb_driver); |
3424 | |||
3425 | static int __init sn9c102_module_init(void) | ||
3426 | { | ||
3427 | int err = 0; | ||
3428 | |||
3429 | KDBG(2, SN9C102_MODULE_NAME " v" SN9C102_MODULE_VERSION); | ||
3430 | KDBG(3, SN9C102_MODULE_AUTHOR); | ||
3431 | |||
3432 | if ((err = usb_register(&sn9c102_usb_driver))) | ||
3433 | KDBG(1, "usb_register() failed"); | ||
3434 | |||
3435 | return err; | ||
3436 | } | ||
3437 | |||
3438 | |||
3439 | static void __exit sn9c102_module_exit(void) | ||
3440 | { | ||
3441 | usb_deregister(&sn9c102_usb_driver); | ||
3442 | } | ||
3443 | |||
3444 | |||
3445 | module_init(sn9c102_module_init); | ||
3446 | module_exit(sn9c102_module_exit); | ||
diff --git a/drivers/media/video/soc_camera.c b/drivers/media/video/soc_camera.c index b72580c3895..62e4312515c 100644 --- a/drivers/media/video/soc_camera.c +++ b/drivers/media/video/soc_camera.c | |||
@@ -1103,7 +1103,8 @@ static int soc_camera_probe(struct soc_camera_device *icd) | |||
1103 | } | 1103 | } |
1104 | 1104 | ||
1105 | sd = soc_camera_to_subdev(icd); | 1105 | sd = soc_camera_to_subdev(icd); |
1106 | sd->grp_id = (long)icd; | 1106 | sd->grp_id = soc_camera_grp_id(icd); |
1107 | v4l2_set_subdev_hostdata(sd, icd); | ||
1107 | 1108 | ||
1108 | if (v4l2_ctrl_add_handler(&icd->ctrl_handler, sd->ctrl_handler)) | 1109 | if (v4l2_ctrl_add_handler(&icd->ctrl_handler, sd->ctrl_handler)) |
1109 | goto ectrl; | 1110 | goto ectrl; |
diff --git a/drivers/media/video/stk-webcam.c b/drivers/media/video/stk-webcam.c index cbc105f975d..3c61aec517a 100644 --- a/drivers/media/video/stk-webcam.c +++ b/drivers/media/video/stk-webcam.c | |||
@@ -38,11 +38,11 @@ | |||
38 | #include "stk-webcam.h" | 38 | #include "stk-webcam.h" |
39 | 39 | ||
40 | 40 | ||
41 | static int hflip = 1; | 41 | static bool hflip = 1; |
42 | module_param(hflip, bool, 0444); | 42 | module_param(hflip, bool, 0444); |
43 | MODULE_PARM_DESC(hflip, "Horizontal image flip (mirror). Defaults to 1"); | 43 | MODULE_PARM_DESC(hflip, "Horizontal image flip (mirror). Defaults to 1"); |
44 | 44 | ||
45 | static int vflip = 1; | 45 | static bool vflip = 1; |
46 | module_param(vflip, bool, 0444); | 46 | module_param(vflip, bool, 0444); |
47 | MODULE_PARM_DESC(vflip, "Vertical image flip. Defaults to 1"); | 47 | MODULE_PARM_DESC(vflip, "Vertical image flip. Defaults to 1"); |
48 | 48 | ||
@@ -1377,25 +1377,4 @@ static struct usb_driver stk_camera_driver = { | |||
1377 | #endif | 1377 | #endif |
1378 | }; | 1378 | }; |
1379 | 1379 | ||
1380 | 1380 | module_usb_driver(stk_camera_driver); | |
1381 | static int __init stk_camera_init(void) | ||
1382 | { | ||
1383 | int result; | ||
1384 | |||
1385 | result = usb_register(&stk_camera_driver); | ||
1386 | if (result) | ||
1387 | STK_ERROR("usb_register failed ! Error number %d\n", result); | ||
1388 | |||
1389 | |||
1390 | return result; | ||
1391 | } | ||
1392 | |||
1393 | static void __exit stk_camera_exit(void) | ||
1394 | { | ||
1395 | usb_deregister(&stk_camera_driver); | ||
1396 | } | ||
1397 | |||
1398 | module_init(stk_camera_init); | ||
1399 | module_exit(stk_camera_exit); | ||
1400 | |||
1401 | |||
diff --git a/drivers/media/video/tm6000/tm6000-alsa.c b/drivers/media/video/tm6000/tm6000-alsa.c index 7d675c72fd4..bb2047c1035 100644 --- a/drivers/media/video/tm6000/tm6000-alsa.c +++ b/drivers/media/video/tm6000/tm6000-alsa.c | |||
@@ -42,7 +42,7 @@ | |||
42 | 42 | ||
43 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ | 43 | static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ |
44 | 44 | ||
45 | static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 1}; | 45 | static bool enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 1}; |
46 | 46 | ||
47 | module_param_array(enable, bool, NULL, 0444); | 47 | module_param_array(enable, bool, NULL, 0444); |
48 | MODULE_PARM_DESC(enable, "Enable tm6000x soundcard. default enabled."); | 48 | MODULE_PARM_DESC(enable, "Enable tm6000x soundcard. default enabled."); |
diff --git a/drivers/media/video/tm6000/tm6000-cards.c b/drivers/media/video/tm6000/tm6000-cards.c index ec2578a0fdf..ff939bc0e0b 100644 --- a/drivers/media/video/tm6000/tm6000-cards.c +++ b/drivers/media/video/tm6000/tm6000-cards.c | |||
@@ -1371,31 +1371,7 @@ static struct usb_driver tm6000_usb_driver = { | |||
1371 | .id_table = tm6000_id_table, | 1371 | .id_table = tm6000_id_table, |
1372 | }; | 1372 | }; |
1373 | 1373 | ||
1374 | static int __init tm6000_module_init(void) | 1374 | module_usb_driver(tm6000_usb_driver); |
1375 | { | ||
1376 | int result; | ||
1377 | |||
1378 | printk(KERN_INFO "tm6000" " v4l2 driver version %d.%d.%d loaded\n", | ||
1379 | (TM6000_VERSION >> 16) & 0xff, | ||
1380 | (TM6000_VERSION >> 8) & 0xff, TM6000_VERSION & 0xff); | ||
1381 | |||
1382 | /* register this driver with the USB subsystem */ | ||
1383 | result = usb_register(&tm6000_usb_driver); | ||
1384 | if (result) | ||
1385 | printk(KERN_ERR "tm6000" | ||
1386 | " usb_register failed. Error number %d.\n", result); | ||
1387 | |||
1388 | return result; | ||
1389 | } | ||
1390 | |||
1391 | static void __exit tm6000_module_exit(void) | ||
1392 | { | ||
1393 | /* deregister at USB subsystem */ | ||
1394 | usb_deregister(&tm6000_usb_driver); | ||
1395 | } | ||
1396 | |||
1397 | module_init(tm6000_module_init); | ||
1398 | module_exit(tm6000_module_exit); | ||
1399 | 1375 | ||
1400 | MODULE_DESCRIPTION("Trident TVMaster TM5600/TM6000/TM6010 USB2 adapter"); | 1376 | MODULE_DESCRIPTION("Trident TVMaster TM5600/TM6000/TM6010 USB2 adapter"); |
1401 | MODULE_AUTHOR("Mauro Carvalho Chehab"); | 1377 | MODULE_AUTHOR("Mauro Carvalho Chehab"); |
diff --git a/drivers/media/video/tvp514x.c b/drivers/media/video/tvp514x.c index 926f0393115..dd26cacd055 100644 --- a/drivers/media/video/tvp514x.c +++ b/drivers/media/video/tvp514x.c | |||
@@ -52,7 +52,7 @@ | |||
52 | #define LOCK_RETRY_DELAY (200) | 52 | #define LOCK_RETRY_DELAY (200) |
53 | 53 | ||
54 | /* Debug functions */ | 54 | /* Debug functions */ |
55 | static int debug; | 55 | static bool debug; |
56 | module_param(debug, bool, 0644); | 56 | module_param(debug, bool, 0644); |
57 | MODULE_PARM_DESC(debug, "Debug level (0-1)"); | 57 | MODULE_PARM_DESC(debug, "Debug level (0-1)"); |
58 | 58 | ||
diff --git a/drivers/media/video/tvp7002.c b/drivers/media/video/tvp7002.c index 7875e80cb2f..236c559d5f5 100644 --- a/drivers/media/video/tvp7002.c +++ b/drivers/media/video/tvp7002.c | |||
@@ -63,7 +63,7 @@ MODULE_LICENSE("GPL"); | |||
63 | #define TVP7002_CL_MASK 0x0f | 63 | #define TVP7002_CL_MASK 0x0f |
64 | 64 | ||
65 | /* Debug functions */ | 65 | /* Debug functions */ |
66 | static int debug; | 66 | static bool debug; |
67 | module_param(debug, bool, 0644); | 67 | module_param(debug, bool, 0644); |
68 | MODULE_PARM_DESC(debug, "Debug level (0-2)"); | 68 | MODULE_PARM_DESC(debug, "Debug level (0-2)"); |
69 | 69 | ||
diff --git a/drivers/media/video/upd64083.c b/drivers/media/video/upd64083.c index 9bbe61700fd..65d065aa609 100644 --- a/drivers/media/video/upd64083.c +++ b/drivers/media/video/upd64083.c | |||
@@ -34,7 +34,7 @@ MODULE_DESCRIPTION("uPD64083 driver"); | |||
34 | MODULE_AUTHOR("T. Adachi, Takeru KOMORIYA, Hans Verkuil"); | 34 | MODULE_AUTHOR("T. Adachi, Takeru KOMORIYA, Hans Verkuil"); |
35 | MODULE_LICENSE("GPL"); | 35 | MODULE_LICENSE("GPL"); |
36 | 36 | ||
37 | static int debug; | 37 | static bool debug; |
38 | module_param(debug, bool, 0644); | 38 | module_param(debug, bool, 0644); |
39 | 39 | ||
40 | MODULE_PARM_DESC(debug, "Debug level (0-1)"); | 40 | MODULE_PARM_DESC(debug, "Debug level (0-1)"); |
diff --git a/drivers/media/video/via-camera.c b/drivers/media/video/via-camera.c index cbf13d09b4a..bfae41ba53c 100644 --- a/drivers/media/video/via-camera.c +++ b/drivers/media/video/via-camera.c | |||
@@ -34,13 +34,13 @@ MODULE_AUTHOR("Jonathan Corbet <corbet@lwn.net>"); | |||
34 | MODULE_DESCRIPTION("VIA framebuffer-based camera controller driver"); | 34 | MODULE_DESCRIPTION("VIA framebuffer-based camera controller driver"); |
35 | MODULE_LICENSE("GPL"); | 35 | MODULE_LICENSE("GPL"); |
36 | 36 | ||
37 | static int flip_image; | 37 | static bool flip_image; |
38 | module_param(flip_image, bool, 0444); | 38 | module_param(flip_image, bool, 0444); |
39 | MODULE_PARM_DESC(flip_image, | 39 | MODULE_PARM_DESC(flip_image, |
40 | "If set, the sensor will be instructed to flip the image " | 40 | "If set, the sensor will be instructed to flip the image " |
41 | "vertically."); | 41 | "vertically."); |
42 | 42 | ||
43 | static int override_serial; | 43 | static bool override_serial; |
44 | module_param(override_serial, bool, 0444); | 44 | module_param(override_serial, bool, 0444); |
45 | MODULE_PARM_DESC(override_serial, | 45 | MODULE_PARM_DESC(override_serial, |
46 | "The camera driver will normally refuse to load if " | 46 | "The camera driver will normally refuse to load if " |
diff --git a/drivers/media/video/zoran/zoran_device.c b/drivers/media/video/zoran/zoran_device.c index e8a27844bf3..e86173bd132 100644 --- a/drivers/media/video/zoran/zoran_device.c +++ b/drivers/media/video/zoran/zoran_device.c | |||
@@ -57,7 +57,7 @@ | |||
57 | ZR36057_ISR_GIRQ1 | \ | 57 | ZR36057_ISR_GIRQ1 | \ |
58 | ZR36057_ISR_JPEGRepIRQ ) | 58 | ZR36057_ISR_JPEGRepIRQ ) |
59 | 59 | ||
60 | static int lml33dpath; /* default = 0 | 60 | static bool lml33dpath; /* default = 0 |
61 | * 1 will use digital path in capture | 61 | * 1 will use digital path in capture |
62 | * mode instead of analog. It can be | 62 | * mode instead of analog. It can be |
63 | * used for picture adjustments using | 63 | * used for picture adjustments using |
diff --git a/drivers/media/video/zoran/zoran_driver.c b/drivers/media/video/zoran/zoran_driver.c index d4d05d2ace6..f6d26419445 100644 --- a/drivers/media/video/zoran/zoran_driver.c +++ b/drivers/media/video/zoran/zoran_driver.c | |||
@@ -1550,7 +1550,7 @@ static int zoran_enum_fmt(struct zoran *zr, struct v4l2_fmtdesc *fmt, int flag) | |||
1550 | if (zoran_formats[i].flags & flag && num++ == fmt->index) { | 1550 | if (zoran_formats[i].flags & flag && num++ == fmt->index) { |
1551 | strncpy(fmt->description, zoran_formats[i].name, | 1551 | strncpy(fmt->description, zoran_formats[i].name, |
1552 | sizeof(fmt->description) - 1); | 1552 | sizeof(fmt->description) - 1); |
1553 | /* fmt struct pre-zeroed, so adding '\0' not neeed */ | 1553 | /* fmt struct pre-zeroed, so adding '\0' not needed */ |
1554 | fmt->pixelformat = zoran_formats[i].fourcc; | 1554 | fmt->pixelformat = zoran_formats[i].fourcc; |
1555 | if (zoran_formats[i].flags & ZORAN_FORMAT_COMPRESSED) | 1555 | if (zoran_formats[i].flags & ZORAN_FORMAT_COMPRESSED) |
1556 | fmt->flags |= V4L2_FMT_FLAG_COMPRESSED; | 1556 | fmt->flags |= V4L2_FMT_FLAG_COMPRESSED; |
diff --git a/drivers/media/video/zoran/zr36060.c b/drivers/media/video/zoran/zr36060.c index 5e4f57cbf31..f08546fe223 100644 --- a/drivers/media/video/zoran/zr36060.c +++ b/drivers/media/video/zoran/zr36060.c | |||
@@ -50,7 +50,7 @@ | |||
50 | /* amount of chips attached via this driver */ | 50 | /* amount of chips attached via this driver */ |
51 | static int zr36060_codecs; | 51 | static int zr36060_codecs; |
52 | 52 | ||
53 | static int low_bitrate; | 53 | static bool low_bitrate; |
54 | module_param(low_bitrate, bool, 0); | 54 | module_param(low_bitrate, bool, 0); |
55 | MODULE_PARM_DESC(low_bitrate, "Buz compatibility option, halves bitrate"); | 55 | MODULE_PARM_DESC(low_bitrate, "Buz compatibility option, halves bitrate"); |
56 | 56 | ||
diff --git a/drivers/media/video/zr364xx.c b/drivers/media/video/zr364xx.c index e78cf94f491..cd2e39fc4bf 100644 --- a/drivers/media/video/zr364xx.c +++ b/drivers/media/video/zr364xx.c | |||
@@ -1695,28 +1695,7 @@ static struct usb_driver zr364xx_driver = { | |||
1695 | .id_table = device_table | 1695 | .id_table = device_table |
1696 | }; | 1696 | }; |
1697 | 1697 | ||
1698 | 1698 | module_usb_driver(zr364xx_driver); | |
1699 | static int __init zr364xx_init(void) | ||
1700 | { | ||
1701 | int retval; | ||
1702 | retval = usb_register(&zr364xx_driver); | ||
1703 | if (retval) | ||
1704 | printk(KERN_ERR KBUILD_MODNAME ": usb_register failed!\n"); | ||
1705 | else | ||
1706 | printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_DESC "\n"); | ||
1707 | return retval; | ||
1708 | } | ||
1709 | |||
1710 | |||
1711 | static void __exit zr364xx_exit(void) | ||
1712 | { | ||
1713 | printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_DESC " module unloaded\n"); | ||
1714 | usb_deregister(&zr364xx_driver); | ||
1715 | } | ||
1716 | |||
1717 | |||
1718 | module_init(zr364xx_init); | ||
1719 | module_exit(zr364xx_exit); | ||
1720 | 1699 | ||
1721 | MODULE_AUTHOR(DRIVER_AUTHOR); | 1700 | MODULE_AUTHOR(DRIVER_AUTHOR); |
1722 | MODULE_DESCRIPTION(DRIVER_DESC); | 1701 | MODULE_DESCRIPTION(DRIVER_DESC); |