aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media')
-rw-r--r--drivers/media/common/tuners/mxl5007t.c3
-rw-r--r--drivers/media/common/tuners/tda18218.c2
-rw-r--r--drivers/media/dvb/b2c2/flexcop-usb.c20
-rw-r--r--drivers/media/dvb/ddbridge/ddbridge-core.c2
-rw-r--r--drivers/media/dvb/dvb-core/dvbdev.c2
-rw-r--r--drivers/media/dvb/dvb-usb/a800.c21
-rw-r--r--drivers/media/dvb/dvb-usb/af9005.c2
-rw-r--r--drivers/media/dvb/dvb-usb/af9005.h2
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.c20
-rw-r--r--drivers/media/dvb/dvb-usb/anysee.c21
-rw-r--r--drivers/media/dvb/dvb-usb/au6610.c21
-rw-r--r--drivers/media/dvb/dvb-usb/az6027.c23
-rw-r--r--drivers/media/dvb/dvb-usb/ce6230.c22
-rw-r--r--drivers/media/dvb/dvb-usb/cinergyT2-core.c20
-rw-r--r--drivers/media/dvb/dvb-usb/cxusb.c21
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700_core.c22
-rw-r--r--drivers/media/dvb/dvb-usb/dibusb-mb.c21
-rw-r--r--drivers/media/dvb/dvb-usb/dibusb-mc.c21
-rw-r--r--drivers/media/dvb/dvb-usb/digitv.c21
-rw-r--r--drivers/media/dvb/dvb-usb/dtt200u.c21
-rw-r--r--drivers/media/dvb/dvb-usb/dtv5100.c21
-rw-r--r--drivers/media/dvb/dvb-usb/dw2102.c17
-rw-r--r--drivers/media/dvb/dvb-usb/ec168.c22
-rw-r--r--drivers/media/dvb/dvb-usb/friio.c23
-rw-r--r--drivers/media/dvb/dvb-usb/gl861.c21
-rw-r--r--drivers/media/dvb/dvb-usb/gp8psk.c21
-rw-r--r--drivers/media/dvb/dvb-usb/it913x.c21
-rw-r--r--drivers/media/dvb/dvb-usb/lmedm04.c21
-rw-r--r--drivers/media/dvb/dvb-usb/m920x.c22
-rw-r--r--drivers/media/dvb/dvb-usb/mxl111sf.c19
-rw-r--r--drivers/media/dvb/dvb-usb/nova-t-usb2.c21
-rw-r--r--drivers/media/dvb/dvb-usb/opera1.c17
-rw-r--r--drivers/media/dvb/dvb-usb/pctv452e.c17
-rw-r--r--drivers/media/dvb/dvb-usb/technisat-usb2.c20
-rw-r--r--drivers/media/dvb/dvb-usb/ttusb2.c21
-rw-r--r--drivers/media/dvb/dvb-usb/umt-010.c21
-rw-r--r--drivers/media/dvb/dvb-usb/vp702x.c21
-rw-r--r--drivers/media/dvb/dvb-usb/vp7045.c21
-rw-r--r--drivers/media/dvb/siano/smsusb.c21
-rw-r--r--drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c21
-rw-r--r--drivers/media/dvb/ttusb-dec/ttusb_dec.c21
-rw-r--r--drivers/media/radio/dsbr100.c16
-rw-r--r--drivers/media/radio/radio-gemtek.c10
-rw-r--r--drivers/media/radio/radio-miropcm20.c2
-rw-r--r--drivers/media/radio/radio-mr800.c23
-rw-r--r--drivers/media/radio/si470x/radio-si470x-usb.c28
-rw-r--r--drivers/media/rc/ati_remote.c144
-rw-r--r--drivers/media/rc/ene_ir.c2
-rw-r--r--drivers/media/rc/ene_ir.h2
-rw-r--r--drivers/media/rc/imon.c21
-rw-r--r--drivers/media/rc/keymaps/rc-ati-x10.c96
-rw-r--r--drivers/media/rc/keymaps/rc-medion-x10.c128
-rw-r--r--drivers/media/rc/keymaps/rc-snapstream-firefly.c114
-rw-r--r--drivers/media/rc/lirc_dev.c2
-rw-r--r--drivers/media/rc/mceusb.c24
-rw-r--r--drivers/media/rc/rc-main.c2
-rw-r--r--drivers/media/rc/redrat3.c20
-rw-r--r--drivers/media/rc/streamzap.c32
-rw-r--r--drivers/media/rc/winbond-cir.c6
-rw-r--r--drivers/media/video/au0828/au0828-cards.c7
-rw-r--r--drivers/media/video/c-qcam.c2
-rw-r--r--drivers/media/video/cs5345.c2
-rw-r--r--drivers/media/video/cs53l32a.c2
-rw-r--r--drivers/media/video/cx18/cx18-driver.c2
-rw-r--r--drivers/media/video/cx231xx/cx231xx-cards.c24
-rw-r--r--drivers/media/video/cx25821/cx25821-alsa.c2
-rw-r--r--drivers/media/video/cx88/cx88-alsa.c2
-rw-r--r--drivers/media/video/davinci/vpif.h1
-rw-r--r--drivers/media/video/davinci/vpif_capture.h2
-rw-r--r--drivers/media/video/davinci/vpif_display.h1
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c24
-rw-r--r--drivers/media/video/et61x251/et61x251_core.c29
-rw-r--r--drivers/media/video/gspca/benq.c13
-rw-r--r--drivers/media/video/gspca/conex.c13
-rw-r--r--drivers/media/video/gspca/cpia1.c13
-rw-r--r--drivers/media/video/gspca/etoms.c14
-rw-r--r--drivers/media/video/gspca/finepix.c14
-rw-r--r--drivers/media/video/gspca/gl860/gl860.c17
-rw-r--r--drivers/media/video/gspca/gspca.c6
-rw-r--r--drivers/media/video/gspca/jeilinj.c14
-rw-r--r--drivers/media/video/gspca/kinect.c14
-rw-r--r--drivers/media/video/gspca/konica.c13
-rw-r--r--drivers/media/video/gspca/m5602/m5602_core.c18
-rw-r--r--drivers/media/video/gspca/m5602/m5602_mt9m111.h2
-rw-r--r--drivers/media/video/gspca/m5602/m5602_ov7660.h2
-rw-r--r--drivers/media/video/gspca/m5602/m5602_ov9650.h2
-rw-r--r--drivers/media/video/gspca/m5602/m5602_po1030.h2
-rw-r--r--drivers/media/video/gspca/m5602/m5602_s5k4aa.h2
-rw-r--r--drivers/media/video/gspca/m5602/m5602_s5k83a.h2
-rw-r--r--drivers/media/video/gspca/mars.c13
-rw-r--r--drivers/media/video/gspca/mr97310a.c13
-rw-r--r--drivers/media/video/gspca/nw80x.c13
-rw-r--r--drivers/media/video/gspca/ov519.c13
-rw-r--r--drivers/media/video/gspca/ov534.c14
-rw-r--r--drivers/media/video/gspca/ov534_9.c14
-rw-r--r--drivers/media/video/gspca/pac207.c13
-rw-r--r--drivers/media/video/gspca/pac7302.c13
-rw-r--r--drivers/media/video/gspca/pac7311.c13
-rw-r--r--drivers/media/video/gspca/se401.c13
-rw-r--r--drivers/media/video/gspca/sn9c2028.c14
-rw-r--r--drivers/media/video/gspca/sn9c20x.c13
-rw-r--r--drivers/media/video/gspca/sonixb.c13
-rw-r--r--drivers/media/video/gspca/sonixj.c13
-rw-r--r--drivers/media/video/gspca/spca1528.c13
-rw-r--r--drivers/media/video/gspca/spca500.c13
-rw-r--r--drivers/media/video/gspca/spca501.c13
-rw-r--r--drivers/media/video/gspca/spca505.c13
-rw-r--r--drivers/media/video/gspca/spca506.c19
-rw-r--r--drivers/media/video/gspca/spca508.c13
-rw-r--r--drivers/media/video/gspca/spca561.c13
-rw-r--r--drivers/media/video/gspca/sq905.c14
-rw-r--r--drivers/media/video/gspca/sq905c.c14
-rw-r--r--drivers/media/video/gspca/sq930x.c13
-rw-r--r--drivers/media/video/gspca/stk014.c13
-rw-r--r--drivers/media/video/gspca/stv0680.c13
-rw-r--r--drivers/media/video/gspca/stv06xx/stv06xx.c17
-rw-r--r--drivers/media/video/gspca/sunplus.c13
-rw-r--r--drivers/media/video/gspca/t613.c13
-rw-r--r--drivers/media/video/gspca/topro.c13
-rw-r--r--drivers/media/video/gspca/tv8532.c14
-rw-r--r--drivers/media/video/gspca/vc032x.c13
-rw-r--r--drivers/media/video/gspca/vicam.c14
-rw-r--r--drivers/media/video/gspca/xirlink_cit.c13
-rw-r--r--drivers/media/video/gspca/zc3xx.c13
-rw-r--r--drivers/media/video/hdpvr/hdpvr-core.c23
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.c2
-rw-r--r--drivers/media/video/ivtv/ivtvfb.c2
-rw-r--r--drivers/media/video/m5mols/m5mols.h2
-rw-r--r--drivers/media/video/m5mols/m5mols_core.c22
-rw-r--r--drivers/media/video/marvell-ccic/mcam-core.c6
-rw-r--r--drivers/media/video/msp3400-driver.c6
-rw-r--r--drivers/media/video/msp3400-driver.h6
-rw-r--r--drivers/media/video/mt9m111.c1
-rw-r--r--drivers/media/video/mt9t112.c4
-rw-r--r--drivers/media/video/omap/omap_vout.c48
-rw-r--r--drivers/media/video/omap/omap_vout_vrfb.c2
-rw-r--r--drivers/media/video/omap1_camera.c1
-rw-r--r--drivers/media/video/omap24xxcam-dma.c2
-rw-r--r--drivers/media/video/omap3isp/isp.c30
-rw-r--r--drivers/media/video/omap3isp/isp.h2
-rw-r--r--drivers/media/video/omap3isp/ispccdc.c20
-rw-r--r--drivers/media/video/omap3isp/ispstat.c10
-rw-r--r--drivers/media/video/omap3isp/ispvideo.c5
-rw-r--r--drivers/media/video/ov6650.c2
-rw-r--r--drivers/media/video/ov7670.c2
-rw-r--r--drivers/media/video/s2255drv.c20
-rw-r--r--drivers/media/video/s5p-fimc/fimc-capture.c14
-rw-r--r--drivers/media/video/s5p-fimc/fimc-core.c24
-rw-r--r--drivers/media/video/s5p-fimc/fimc-core.h2
-rw-r--r--drivers/media/video/s5p-fimc/fimc-mdevice.c43
-rw-r--r--drivers/media/video/s5p-fimc/fimc-reg.c15
-rw-r--r--drivers/media/video/s5p-mfc/s5p_mfc_enc.c2
-rw-r--r--drivers/media/video/s5p-tv/mixer_video.c1
-rw-r--r--drivers/media/video/saa7115.c2
-rw-r--r--drivers/media/video/sh_mobile_ceu_camera.c34
-rw-r--r--drivers/media/video/sh_mobile_csi2.c4
-rw-r--r--drivers/media/video/sn9c102/sn9c102_core.c29
-rw-r--r--drivers/media/video/soc_camera.c3
-rw-r--r--drivers/media/video/stk-webcam.c27
-rw-r--r--drivers/media/video/tm6000/tm6000-alsa.c2
-rw-r--r--drivers/media/video/tm6000/tm6000-cards.c26
-rw-r--r--drivers/media/video/tvp514x.c2
-rw-r--r--drivers/media/video/tvp7002.c2
-rw-r--r--drivers/media/video/upd64083.c2
-rw-r--r--drivers/media/video/via-camera.c4
-rw-r--r--drivers/media/video/zoran/zoran_device.c2
-rw-r--r--drivers/media/video/zoran/zoran_driver.c2
-rw-r--r--drivers/media/video/zoran/zr36060.c2
-rw-r--r--drivers/media/video/zr364xx.c23
169 files changed, 555 insertions, 2073 deletions
diff --git a/drivers/media/common/tuners/mxl5007t.c b/drivers/media/common/tuners/mxl5007t.c
index 7eb1bf75cd0..5d02221e99d 100644
--- a/drivers/media/common/tuners/mxl5007t.c
+++ b/drivers/media/common/tuners/mxl5007t.c
@@ -488,9 +488,10 @@ static int mxl5007t_write_regs(struct mxl5007t_state *state,
488 488
489static int mxl5007t_read_reg(struct mxl5007t_state *state, u8 reg, u8 *val) 489static int mxl5007t_read_reg(struct mxl5007t_state *state, u8 reg, u8 *val)
490{ 490{
491 u8 buf[2] = { 0xfb, reg };
491 struct i2c_msg msg[] = { 492 struct i2c_msg msg[] = {
492 { .addr = state->i2c_props.addr, .flags = 0, 493 { .addr = state->i2c_props.addr, .flags = 0,
493 .buf = &reg, .len = 1 }, 494 .buf = buf, .len = 2 },
494 { .addr = state->i2c_props.addr, .flags = I2C_M_RD, 495 { .addr = state->i2c_props.addr, .flags = I2C_M_RD,
495 .buf = val, .len = 1 }, 496 .buf = val, .len = 1 },
496 }; 497 };
diff --git a/drivers/media/common/tuners/tda18218.c b/drivers/media/common/tuners/tda18218.c
index aacfe2387e2..4fc29730a12 100644
--- a/drivers/media/common/tuners/tda18218.c
+++ b/drivers/media/common/tuners/tda18218.c
@@ -141,7 +141,7 @@ static int tda18218_set_params(struct dvb_frontend *fe,
141 switch (params->u.ofdm.bandwidth) { 141 switch (params->u.ofdm.bandwidth) {
142 case BANDWIDTH_6_MHZ: 142 case BANDWIDTH_6_MHZ:
143 LP_Fc = 0; 143 LP_Fc = 0;
144 LO_Frac = params->frequency + 4000000; 144 LO_Frac = params->frequency + 3000000;
145 break; 145 break;
146 case BANDWIDTH_7_MHZ: 146 case BANDWIDTH_7_MHZ:
147 LP_Fc = 1; 147 LP_Fc = 1;
diff --git a/drivers/media/dvb/b2c2/flexcop-usb.c b/drivers/media/dvb/b2c2/flexcop-usb.c
index bedcfb67162..26c666dd351 100644
--- a/drivers/media/dvb/b2c2/flexcop-usb.c
+++ b/drivers/media/dvb/b2c2/flexcop-usb.c
@@ -583,25 +583,7 @@ static struct usb_driver flexcop_usb_driver = {
583 .id_table = flexcop_usb_table, 583 .id_table = flexcop_usb_table,
584}; 584};
585 585
586/* module stuff */ 586module_usb_driver(flexcop_usb_driver);
587static int __init flexcop_usb_module_init(void)
588{
589 int result;
590 if ((result = usb_register(&flexcop_usb_driver))) {
591 err("usb_register failed. (%d)", result);
592 return result;
593 }
594 return 0;
595}
596
597static void __exit flexcop_usb_module_exit(void)
598{
599 /* deregister this driver from the USB subsystem */
600 usb_deregister(&flexcop_usb_driver);
601}
602
603module_init(flexcop_usb_module_init);
604module_exit(flexcop_usb_module_exit);
605 587
606MODULE_AUTHOR(DRIVER_AUTHOR); 588MODULE_AUTHOR(DRIVER_AUTHOR);
607MODULE_DESCRIPTION(DRIVER_NAME); 589MODULE_DESCRIPTION(DRIVER_NAME);
diff --git a/drivers/media/dvb/ddbridge/ddbridge-core.c b/drivers/media/dvb/ddbridge/ddbridge-core.c
index ba9a643b9c6..d1e91bc80e7 100644
--- a/drivers/media/dvb/ddbridge/ddbridge-core.c
+++ b/drivers/media/dvb/ddbridge/ddbridge-core.c
@@ -1480,7 +1480,7 @@ static const struct file_operations ddb_fops = {
1480 .open = ddb_open, 1480 .open = ddb_open,
1481}; 1481};
1482 1482
1483static char *ddb_devnode(struct device *device, mode_t *mode) 1483static char *ddb_devnode(struct device *device, umode_t *mode)
1484{ 1484{
1485 struct ddb *dev = dev_get_drvdata(device); 1485 struct ddb *dev = dev_get_drvdata(device);
1486 1486
diff --git a/drivers/media/dvb/dvb-core/dvbdev.c b/drivers/media/dvb/dvb-core/dvbdev.c
index f7328777595..00a67326c19 100644
--- a/drivers/media/dvb/dvb-core/dvbdev.c
+++ b/drivers/media/dvb/dvb-core/dvbdev.c
@@ -450,7 +450,7 @@ static int dvb_uevent(struct device *dev, struct kobj_uevent_env *env)
450 return 0; 450 return 0;
451} 451}
452 452
453static char *dvb_devnode(struct device *dev, mode_t *mode) 453static char *dvb_devnode(struct device *dev, umode_t *mode)
454{ 454{
455 struct dvb_device *dvbdev = dev_get_drvdata(dev); 455 struct dvb_device *dvbdev = dev_get_drvdata(dev);
456 456
diff --git a/drivers/media/dvb/dvb-usb/a800.c b/drivers/media/dvb/dvb-usb/a800.c
index 2aef3c89e9f..8d7fef84afd 100644
--- a/drivers/media/dvb/dvb-usb/a800.c
+++ b/drivers/media/dvb/dvb-usb/a800.c
@@ -183,26 +183,7 @@ static struct usb_driver a800_driver = {
183 .id_table = a800_table, 183 .id_table = a800_table,
184}; 184};
185 185
186/* module stuff */ 186module_usb_driver(a800_driver);
187static int __init a800_module_init(void)
188{
189 int result;
190 if ((result = usb_register(&a800_driver))) {
191 err("usb_register failed. Error number %d",result);
192 return result;
193 }
194
195 return 0;
196}
197
198static void __exit a800_module_exit(void)
199{
200 /* deregister this driver from the USB subsystem */
201 usb_deregister(&a800_driver);
202}
203
204module_init (a800_module_init);
205module_exit (a800_module_exit);
206 187
207MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 188MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
208MODULE_DESCRIPTION("AVerMedia AverTV DVB-T USB 2.0 (A800)"); 189MODULE_DESCRIPTION("AVerMedia AverTV DVB-T USB 2.0 (A800)");
diff --git a/drivers/media/dvb/dvb-usb/af9005.c b/drivers/media/dvb/dvb-usb/af9005.c
index bd51a764351..4fc024d7704 100644
--- a/drivers/media/dvb/dvb-usb/af9005.c
+++ b/drivers/media/dvb/dvb-usb/af9005.c
@@ -30,7 +30,7 @@ MODULE_PARM_DESC(debug,
30 "set debugging level (1=info,xfer=2,rc=4,reg=8,i2c=16,fw=32 (or-able))." 30 "set debugging level (1=info,xfer=2,rc=4,reg=8,i2c=16,fw=32 (or-able))."
31 DVB_USB_DEBUG_STATUS); 31 DVB_USB_DEBUG_STATUS);
32/* enable obnoxious led */ 32/* enable obnoxious led */
33int dvb_usb_af9005_led = 1; 33bool dvb_usb_af9005_led = 1;
34module_param_named(led, dvb_usb_af9005_led, bool, 0644); 34module_param_named(led, dvb_usb_af9005_led, bool, 0644);
35MODULE_PARM_DESC(led, "enable led (default: 1)."); 35MODULE_PARM_DESC(led, "enable led (default: 1).");
36 36
diff --git a/drivers/media/dvb/dvb-usb/af9005.h b/drivers/media/dvb/dvb-usb/af9005.h
index c71c77bd7f4..6a2bf3de845 100644
--- a/drivers/media/dvb/dvb-usb/af9005.h
+++ b/drivers/media/dvb/dvb-usb/af9005.h
@@ -35,7 +35,7 @@ extern int dvb_usb_af9005_debug;
35#define deb_i2c(args...) dprintk(dvb_usb_af9005_debug,0x10,args) 35#define deb_i2c(args...) dprintk(dvb_usb_af9005_debug,0x10,args)
36#define deb_fw(args...) dprintk(dvb_usb_af9005_debug,0x20,args) 36#define deb_fw(args...) dprintk(dvb_usb_af9005_debug,0x20,args)
37 37
38extern int dvb_usb_af9005_led; 38extern bool dvb_usb_af9005_led;
39 39
40/* firmware */ 40/* firmware */
41#define FW_BULKOUT_SIZE 250 41#define FW_BULKOUT_SIZE 250
diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c
index c6c275bac08..56cbd3636c3 100644
--- a/drivers/media/dvb/dvb-usb/af9015.c
+++ b/drivers/media/dvb/dvb-usb/af9015.c
@@ -1713,25 +1713,7 @@ static struct usb_driver af9015_usb_driver = {
1713 .id_table = af9015_usb_table, 1713 .id_table = af9015_usb_table,
1714}; 1714};
1715 1715
1716/* module stuff */ 1716module_usb_driver(af9015_usb_driver);
1717static int __init af9015_usb_module_init(void)
1718{
1719 int ret;
1720 ret = usb_register(&af9015_usb_driver);
1721 if (ret)
1722 err("module init failed:%d", ret);
1723
1724 return ret;
1725}
1726
1727static void __exit af9015_usb_module_exit(void)
1728{
1729 /* deregister this driver from the USB subsystem */
1730 usb_deregister(&af9015_usb_driver);
1731}
1732
1733module_init(af9015_usb_module_init);
1734module_exit(af9015_usb_module_exit);
1735 1717
1736MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>"); 1718MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>");
1737MODULE_DESCRIPTION("Driver for Afatech AF9015 DVB-T"); 1719MODULE_DESCRIPTION("Driver for Afatech AF9015 DVB-T");
diff --git a/drivers/media/dvb/dvb-usb/anysee.c b/drivers/media/dvb/dvb-usb/anysee.c
index 5f2278b73ee..b39f14f85e7 100644
--- a/drivers/media/dvb/dvb-usb/anysee.c
+++ b/drivers/media/dvb/dvb-usb/anysee.c
@@ -1091,26 +1091,7 @@ static struct usb_driver anysee_driver = {
1091 .id_table = anysee_table, 1091 .id_table = anysee_table,
1092}; 1092};
1093 1093
1094/* module stuff */ 1094module_usb_driver(anysee_driver);
1095static int __init anysee_module_init(void)
1096{
1097 int ret;
1098
1099 ret = usb_register(&anysee_driver);
1100 if (ret)
1101 err("%s: usb_register failed. Error number %d", __func__, ret);
1102
1103 return ret;
1104}
1105
1106static void __exit anysee_module_exit(void)
1107{
1108 /* deregister this driver from the USB subsystem */
1109 usb_deregister(&anysee_driver);
1110}
1111
1112module_init(anysee_module_init);
1113module_exit(anysee_module_exit);
1114 1095
1115MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>"); 1096MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>");
1116MODULE_DESCRIPTION("Driver Anysee E30 DVB-C & DVB-T USB2.0"); 1097MODULE_DESCRIPTION("Driver Anysee E30 DVB-C & DVB-T USB2.0");
diff --git a/drivers/media/dvb/dvb-usb/au6610.c b/drivers/media/dvb/dvb-usb/au6610.c
index b77994967b9..16210c06030 100644
--- a/drivers/media/dvb/dvb-usb/au6610.c
+++ b/drivers/media/dvb/dvb-usb/au6610.c
@@ -244,26 +244,7 @@ static struct usb_driver au6610_driver = {
244 .id_table = au6610_table, 244 .id_table = au6610_table,
245}; 245};
246 246
247/* module stuff */ 247module_usb_driver(au6610_driver);
248static int __init au6610_module_init(void)
249{
250 int ret;
251
252 ret = usb_register(&au6610_driver);
253 if (ret)
254 err("usb_register failed. Error number %d", ret);
255
256 return ret;
257}
258
259static void __exit au6610_module_exit(void)
260{
261 /* deregister this driver from the USB subsystem */
262 usb_deregister(&au6610_driver);
263}
264
265module_init(au6610_module_init);
266module_exit(au6610_module_exit);
267 248
268MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>"); 249MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>");
269MODULE_DESCRIPTION("Driver for Alcor Micro AU6610 DVB-T USB2.0"); 250MODULE_DESCRIPTION("Driver for Alcor Micro AU6610 DVB-T USB2.0");
diff --git a/drivers/media/dvb/dvb-usb/az6027.c b/drivers/media/dvb/dvb-usb/az6027.c
index bf67b4dfd82..5e45ae60542 100644
--- a/drivers/media/dvb/dvb-usb/az6027.c
+++ b/drivers/media/dvb/dvb-usb/az6027.c
@@ -1174,28 +1174,7 @@ static struct usb_driver az6027_usb_driver = {
1174 .id_table = az6027_usb_table, 1174 .id_table = az6027_usb_table,
1175}; 1175};
1176 1176
1177/* module stuff */ 1177module_usb_driver(az6027_usb_driver);
1178static int __init az6027_usb_module_init(void)
1179{
1180 int result;
1181
1182 result = usb_register(&az6027_usb_driver);
1183 if (result) {
1184 err("usb_register failed. (%d)", result);
1185 return result;
1186 }
1187
1188 return 0;
1189}
1190
1191static void __exit az6027_usb_module_exit(void)
1192{
1193 /* deregister this driver from the USB subsystem */
1194 usb_deregister(&az6027_usb_driver);
1195}
1196
1197module_init(az6027_usb_module_init);
1198module_exit(az6027_usb_module_exit);
1199 1178
1200MODULE_AUTHOR("Adams Xu <Adams.xu@azwave.com.cn>"); 1179MODULE_AUTHOR("Adams Xu <Adams.xu@azwave.com.cn>");
1201MODULE_DESCRIPTION("Driver for AZUREWAVE DVB-S/S2 USB2.0 (AZ6027)"); 1180MODULE_DESCRIPTION("Driver for AZUREWAVE DVB-S/S2 USB2.0 (AZ6027)");
diff --git a/drivers/media/dvb/dvb-usb/ce6230.c b/drivers/media/dvb/dvb-usb/ce6230.c
index 57afb5a9157..fa637255729 100644
--- a/drivers/media/dvb/dvb-usb/ce6230.c
+++ b/drivers/media/dvb/dvb-usb/ce6230.c
@@ -317,27 +317,7 @@ static struct usb_driver ce6230_driver = {
317 .id_table = ce6230_table, 317 .id_table = ce6230_table,
318}; 318};
319 319
320/* module stuff */ 320module_usb_driver(ce6230_driver);
321static int __init ce6230_module_init(void)
322{
323 int ret;
324 deb_info("%s:\n", __func__);
325 ret = usb_register(&ce6230_driver);
326 if (ret)
327 err("usb_register failed with error:%d", ret);
328
329 return ret;
330}
331
332static void __exit ce6230_module_exit(void)
333{
334 deb_info("%s:\n", __func__);
335 /* deregister this driver from the USB subsystem */
336 usb_deregister(&ce6230_driver);
337}
338
339module_init(ce6230_module_init);
340module_exit(ce6230_module_exit);
341 321
342MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>"); 322MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>");
343MODULE_DESCRIPTION("Driver for Intel CE6230 DVB-T USB2.0"); 323MODULE_DESCRIPTION("Driver for Intel CE6230 DVB-T USB2.0");
diff --git a/drivers/media/dvb/dvb-usb/cinergyT2-core.c b/drivers/media/dvb/dvb-usb/cinergyT2-core.c
index f9d905002ec..0a98548ecd1 100644
--- a/drivers/media/dvb/dvb-usb/cinergyT2-core.c
+++ b/drivers/media/dvb/dvb-usb/cinergyT2-core.c
@@ -247,25 +247,7 @@ static struct usb_driver cinergyt2_driver = {
247 .id_table = cinergyt2_usb_table 247 .id_table = cinergyt2_usb_table
248}; 248};
249 249
250static int __init cinergyt2_usb_init(void) 250module_usb_driver(cinergyt2_driver);
251{
252 int err;
253
254 err = usb_register(&cinergyt2_driver);
255 if (err) {
256 err("usb_register() failed! (err %i)\n", err);
257 return err;
258 }
259 return 0;
260}
261
262static void __exit cinergyt2_usb_exit(void)
263{
264 usb_deregister(&cinergyt2_driver);
265}
266
267module_init(cinergyt2_usb_init);
268module_exit(cinergyt2_usb_exit);
269 251
270MODULE_DESCRIPTION("Terratec Cinergy T2 DVB-T driver"); 252MODULE_DESCRIPTION("Terratec Cinergy T2 DVB-T driver");
271MODULE_LICENSE("GPL"); 253MODULE_LICENSE("GPL");
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c
index 9f2a02c4837..949ea1bc0aa 100644
--- a/drivers/media/dvb/dvb-usb/cxusb.c
+++ b/drivers/media/dvb/dvb-usb/cxusb.c
@@ -2034,26 +2034,7 @@ static struct usb_driver cxusb_driver = {
2034 .id_table = cxusb_table, 2034 .id_table = cxusb_table,
2035}; 2035};
2036 2036
2037/* module stuff */ 2037module_usb_driver(cxusb_driver);
2038static int __init cxusb_module_init(void)
2039{
2040 int result;
2041 if ((result = usb_register(&cxusb_driver))) {
2042 err("usb_register failed. Error number %d",result);
2043 return result;
2044 }
2045
2046 return 0;
2047}
2048
2049static void __exit cxusb_module_exit(void)
2050{
2051 /* deregister this driver from the USB subsystem */
2052 usb_deregister(&cxusb_driver);
2053}
2054
2055module_init (cxusb_module_init);
2056module_exit (cxusb_module_exit);
2057 2038
2058MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 2039MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
2059MODULE_AUTHOR("Michael Krufky <mkrufky@linuxtv.org>"); 2040MODULE_AUTHOR("Michael Krufky <mkrufky@linuxtv.org>");
diff --git a/drivers/media/dvb/dvb-usb/dib0700_core.c b/drivers/media/dvb/dvb-usb/dib0700_core.c
index 156cbfc9c79..206999476f0 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_core.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_core.c
@@ -832,27 +832,7 @@ static struct usb_driver dib0700_driver = {
832 .id_table = dib0700_usb_id_table, 832 .id_table = dib0700_usb_id_table,
833}; 833};
834 834
835/* module stuff */ 835module_usb_driver(dib0700_driver);
836static int __init dib0700_module_init(void)
837{
838 int result;
839 info("loaded with support for %d different device-types", dib0700_device_count);
840 if ((result = usb_register(&dib0700_driver))) {
841 err("usb_register failed. Error number %d",result);
842 return result;
843 }
844
845 return 0;
846}
847
848static void __exit dib0700_module_exit(void)
849{
850 /* deregister this driver from the USB subsystem */
851 usb_deregister(&dib0700_driver);
852}
853
854module_init (dib0700_module_init);
855module_exit (dib0700_module_exit);
856 836
857MODULE_AUTHOR("Patrick Boettcher <pboettcher@dibcom.fr>"); 837MODULE_AUTHOR("Patrick Boettcher <pboettcher@dibcom.fr>");
858MODULE_DESCRIPTION("Driver for devices based on DiBcom DiB0700 - USB bridge"); 838MODULE_DESCRIPTION("Driver for devices based on DiBcom DiB0700 - USB bridge");
diff --git a/drivers/media/dvb/dvb-usb/dibusb-mb.c b/drivers/media/dvb/dvb-usb/dibusb-mb.c
index 7270791f834..a4ac37e0e98 100644
--- a/drivers/media/dvb/dvb-usb/dibusb-mb.c
+++ b/drivers/media/dvb/dvb-usb/dibusb-mb.c
@@ -463,26 +463,7 @@ static struct usb_driver dibusb_driver = {
463 .id_table = dibusb_dib3000mb_table, 463 .id_table = dibusb_dib3000mb_table,
464}; 464};
465 465
466/* module stuff */ 466module_usb_driver(dibusb_driver);
467static int __init dibusb_module_init(void)
468{
469 int result;
470 if ((result = usb_register(&dibusb_driver))) {
471 err("usb_register failed. Error number %d",result);
472 return result;
473 }
474
475 return 0;
476}
477
478static void __exit dibusb_module_exit(void)
479{
480 /* deregister this driver from the USB subsystem */
481 usb_deregister(&dibusb_driver);
482}
483
484module_init (dibusb_module_init);
485module_exit (dibusb_module_exit);
486 467
487MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 468MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
488MODULE_DESCRIPTION("Driver for DiBcom USB DVB-T devices (DiB3000M-B based)"); 469MODULE_DESCRIPTION("Driver for DiBcom USB DVB-T devices (DiB3000M-B based)");
diff --git a/drivers/media/dvb/dvb-usb/dibusb-mc.c b/drivers/media/dvb/dvb-usb/dibusb-mc.c
index 9c165e2569d..9d1a59d09c5 100644
--- a/drivers/media/dvb/dvb-usb/dibusb-mc.c
+++ b/drivers/media/dvb/dvb-usb/dibusb-mc.c
@@ -141,26 +141,7 @@ static struct usb_driver dibusb_mc_driver = {
141 .id_table = dibusb_dib3000mc_table, 141 .id_table = dibusb_dib3000mc_table,
142}; 142};
143 143
144/* module stuff */ 144module_usb_driver(dibusb_mc_driver);
145static int __init dibusb_mc_module_init(void)
146{
147 int result;
148 if ((result = usb_register(&dibusb_mc_driver))) {
149 err("usb_register failed. Error number %d",result);
150 return result;
151 }
152
153 return 0;
154}
155
156static void __exit dibusb_mc_module_exit(void)
157{
158 /* deregister this driver from the USB subsystem */
159 usb_deregister(&dibusb_mc_driver);
160}
161
162module_init (dibusb_mc_module_init);
163module_exit (dibusb_mc_module_exit);
164 145
165MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 146MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
166MODULE_DESCRIPTION("Driver for DiBcom USB2.0 DVB-T (DiB3000M-C/P based) devices"); 147MODULE_DESCRIPTION("Driver for DiBcom USB2.0 DVB-T (DiB3000M-C/P based) devices");
diff --git a/drivers/media/dvb/dvb-usb/digitv.c b/drivers/media/dvb/dvb-usb/digitv.c
index f7184111aa6..0a9a79820f2 100644
--- a/drivers/media/dvb/dvb-usb/digitv.c
+++ b/drivers/media/dvb/dvb-usb/digitv.c
@@ -346,26 +346,7 @@ static struct usb_driver digitv_driver = {
346 .id_table = digitv_table, 346 .id_table = digitv_table,
347}; 347};
348 348
349/* module stuff */ 349module_usb_driver(digitv_driver);
350static int __init digitv_module_init(void)
351{
352 int result;
353 if ((result = usb_register(&digitv_driver))) {
354 err("usb_register failed. Error number %d",result);
355 return result;
356 }
357
358 return 0;
359}
360
361static void __exit digitv_module_exit(void)
362{
363 /* deregister this driver from the USB subsystem */
364 usb_deregister(&digitv_driver);
365}
366
367module_init (digitv_module_init);
368module_exit (digitv_module_exit);
369 350
370MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 351MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
371MODULE_DESCRIPTION("Driver for Nebula Electronics uDigiTV DVB-T USB2.0"); 352MODULE_DESCRIPTION("Driver for Nebula Electronics uDigiTV DVB-T USB2.0");
diff --git a/drivers/media/dvb/dvb-usb/dtt200u.c b/drivers/media/dvb/dvb-usb/dtt200u.c
index 106dfd55ff9..66f205c112b 100644
--- a/drivers/media/dvb/dvb-usb/dtt200u.c
+++ b/drivers/media/dvb/dvb-usb/dtt200u.c
@@ -360,26 +360,7 @@ static struct usb_driver dtt200u_usb_driver = {
360 .id_table = dtt200u_usb_table, 360 .id_table = dtt200u_usb_table,
361}; 361};
362 362
363/* module stuff */ 363module_usb_driver(dtt200u_usb_driver);
364static int __init dtt200u_usb_module_init(void)
365{
366 int result;
367 if ((result = usb_register(&dtt200u_usb_driver))) {
368 err("usb_register failed. (%d)",result);
369 return result;
370 }
371
372 return 0;
373}
374
375static void __exit dtt200u_usb_module_exit(void)
376{
377 /* deregister this driver from the USB subsystem */
378 usb_deregister(&dtt200u_usb_driver);
379}
380
381module_init(dtt200u_usb_module_init);
382module_exit(dtt200u_usb_module_exit);
383 364
384MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 365MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
385MODULE_DESCRIPTION("Driver for the WideView/Yakumo/Hama/Typhoon/Club3D/Miglia DVB-T USB2.0 devices"); 366MODULE_DESCRIPTION("Driver for the WideView/Yakumo/Hama/Typhoon/Club3D/Miglia DVB-T USB2.0 devices");
diff --git a/drivers/media/dvb/dvb-usb/dtv5100.c b/drivers/media/dvb/dvb-usb/dtv5100.c
index 7373132163d..3d11df41cac 100644
--- a/drivers/media/dvb/dvb-usb/dtv5100.c
+++ b/drivers/media/dvb/dvb-usb/dtv5100.c
@@ -217,26 +217,7 @@ static struct usb_driver dtv5100_driver = {
217 .id_table = dtv5100_table, 217 .id_table = dtv5100_table,
218}; 218};
219 219
220/* module stuff */ 220module_usb_driver(dtv5100_driver);
221static int __init dtv5100_module_init(void)
222{
223 int ret;
224
225 ret = usb_register(&dtv5100_driver);
226 if (ret)
227 err("usb_register failed. Error number %d", ret);
228
229 return ret;
230}
231
232static void __exit dtv5100_module_exit(void)
233{
234 /* deregister this driver from the USB subsystem */
235 usb_deregister(&dtv5100_driver);
236}
237
238module_init(dtv5100_module_init);
239module_exit(dtv5100_module_exit);
240 221
241MODULE_AUTHOR(DRIVER_AUTHOR); 222MODULE_AUTHOR(DRIVER_AUTHOR);
242MODULE_DESCRIPTION(DRIVER_DESC); 223MODULE_DESCRIPTION(DRIVER_DESC);
diff --git a/drivers/media/dvb/dvb-usb/dw2102.c b/drivers/media/dvb/dvb-usb/dw2102.c
index f103ec1fe82..ff941d20e6b 100644
--- a/drivers/media/dvb/dvb-usb/dw2102.c
+++ b/drivers/media/dvb/dvb-usb/dw2102.c
@@ -1928,22 +1928,7 @@ static struct usb_driver dw2102_driver = {
1928 .id_table = dw2102_table, 1928 .id_table = dw2102_table,
1929}; 1929};
1930 1930
1931static int __init dw2102_module_init(void) 1931module_usb_driver(dw2102_driver);
1932{
1933 int ret = usb_register(&dw2102_driver);
1934 if (ret)
1935 err("usb_register failed. Error number %d", ret);
1936
1937 return ret;
1938}
1939
1940static void __exit dw2102_module_exit(void)
1941{
1942 usb_deregister(&dw2102_driver);
1943}
1944
1945module_init(dw2102_module_init);
1946module_exit(dw2102_module_exit);
1947 1932
1948MODULE_AUTHOR("Igor M. Liplianin (c) liplianin@me.by"); 1933MODULE_AUTHOR("Igor M. Liplianin (c) liplianin@me.by");
1949MODULE_DESCRIPTION("Driver for DVBWorld DVB-S 2101, 2102, DVB-S2 2104," 1934MODULE_DESCRIPTION("Driver for DVBWorld DVB-S 2101, 2102, DVB-S2 2104,"
diff --git a/drivers/media/dvb/dvb-usb/ec168.c b/drivers/media/dvb/dvb-usb/ec168.c
index 78442fe4aa5..b4989ba8897 100644
--- a/drivers/media/dvb/dvb-usb/ec168.c
+++ b/drivers/media/dvb/dvb-usb/ec168.c
@@ -428,27 +428,7 @@ static struct usb_driver ec168_driver = {
428 .id_table = ec168_id, 428 .id_table = ec168_id,
429}; 429};
430 430
431/* module stuff */ 431module_usb_driver(ec168_driver);
432static int __init ec168_module_init(void)
433{
434 int ret;
435 deb_info("%s:\n", __func__);
436 ret = usb_register(&ec168_driver);
437 if (ret)
438 err("module init failed:%d", ret);
439
440 return ret;
441}
442
443static void __exit ec168_module_exit(void)
444{
445 deb_info("%s:\n", __func__);
446 /* deregister this driver from the USB subsystem */
447 usb_deregister(&ec168_driver);
448}
449
450module_init(ec168_module_init);
451module_exit(ec168_module_exit);
452 432
453MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>"); 433MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>");
454MODULE_DESCRIPTION("E3C EC168 DVB-T USB2.0 driver"); 434MODULE_DESCRIPTION("E3C EC168 DVB-T USB2.0 driver");
diff --git a/drivers/media/dvb/dvb-usb/friio.c b/drivers/media/dvb/dvb-usb/friio.c
index b092dc2137c..474a17e4db0 100644
--- a/drivers/media/dvb/dvb-usb/friio.c
+++ b/drivers/media/dvb/dvb-usb/friio.c
@@ -514,28 +514,7 @@ static struct usb_driver friio_driver = {
514 .id_table = friio_table, 514 .id_table = friio_table,
515}; 515};
516 516
517 517module_usb_driver(friio_driver);
518/* module stuff */
519static int __init friio_module_init(void)
520{
521 int ret;
522
523 ret = usb_register(&friio_driver);
524 if (ret)
525 err("usb_register failed. Error number %d", ret);
526
527 return ret;
528}
529
530
531static void __exit friio_module_exit(void)
532{
533 /* deregister this driver from the USB subsystem */
534 usb_deregister(&friio_driver);
535}
536
537module_init(friio_module_init);
538module_exit(friio_module_exit);
539 518
540MODULE_AUTHOR("Akihiro Tsukada <tskd2@yahoo.co.jp>"); 519MODULE_AUTHOR("Akihiro Tsukada <tskd2@yahoo.co.jp>");
541MODULE_DESCRIPTION("Driver for Friio ISDB-T USB2.0 Receiver"); 520MODULE_DESCRIPTION("Driver for Friio ISDB-T USB2.0 Receiver");
diff --git a/drivers/media/dvb/dvb-usb/gl861.c b/drivers/media/dvb/dvb-usb/gl861.c
index 63681df244c..c1f5582e1cd 100644
--- a/drivers/media/dvb/dvb-usb/gl861.c
+++ b/drivers/media/dvb/dvb-usb/gl861.c
@@ -209,26 +209,7 @@ static struct usb_driver gl861_driver = {
209 .id_table = gl861_table, 209 .id_table = gl861_table,
210}; 210};
211 211
212/* module stuff */ 212module_usb_driver(gl861_driver);
213static int __init gl861_module_init(void)
214{
215 int ret;
216
217 ret = usb_register(&gl861_driver);
218 if (ret)
219 err("usb_register failed. Error number %d", ret);
220
221 return ret;
222}
223
224static void __exit gl861_module_exit(void)
225{
226 /* deregister this driver from the USB subsystem */
227 usb_deregister(&gl861_driver);
228}
229
230module_init(gl861_module_init);
231module_exit(gl861_module_exit);
232 213
233MODULE_AUTHOR("Carl Lundqvist <comabug@gmail.com>"); 214MODULE_AUTHOR("Carl Lundqvist <comabug@gmail.com>");
234MODULE_DESCRIPTION("Driver MSI Mega Sky 580 DVB-T USB2.0 / GL861"); 215MODULE_DESCRIPTION("Driver MSI Mega Sky 580 DVB-T USB2.0 / GL861");
diff --git a/drivers/media/dvb/dvb-usb/gp8psk.c b/drivers/media/dvb/dvb-usb/gp8psk.c
index 5f71284703d..5d0384dd45b 100644
--- a/drivers/media/dvb/dvb-usb/gp8psk.c
+++ b/drivers/media/dvb/dvb-usb/gp8psk.c
@@ -320,26 +320,7 @@ static struct usb_driver gp8psk_usb_driver = {
320 .id_table = gp8psk_usb_table, 320 .id_table = gp8psk_usb_table,
321}; 321};
322 322
323/* module stuff */ 323module_usb_driver(gp8psk_usb_driver);
324static int __init gp8psk_usb_module_init(void)
325{
326 int result;
327 if ((result = usb_register(&gp8psk_usb_driver))) {
328 err("usb_register failed. (%d)",result);
329 return result;
330 }
331
332 return 0;
333}
334
335static void __exit gp8psk_usb_module_exit(void)
336{
337 /* deregister this driver from the USB subsystem */
338 usb_deregister(&gp8psk_usb_driver);
339}
340
341module_init(gp8psk_usb_module_init);
342module_exit(gp8psk_usb_module_exit);
343 324
344MODULE_AUTHOR("Alan Nisota <alannisota@gamil.com>"); 325MODULE_AUTHOR("Alan Nisota <alannisota@gamil.com>");
345MODULE_DESCRIPTION("Driver for Genpix DVB-S"); 326MODULE_DESCRIPTION("Driver for Genpix DVB-S");
diff --git a/drivers/media/dvb/dvb-usb/it913x.c b/drivers/media/dvb/dvb-usb/it913x.c
index c4622618714..67094b879bb 100644
--- a/drivers/media/dvb/dvb-usb/it913x.c
+++ b/drivers/media/dvb/dvb-usb/it913x.c
@@ -675,26 +675,7 @@ static struct usb_driver it913x_driver = {
675 .id_table = it913x_table, 675 .id_table = it913x_table,
676}; 676};
677 677
678/* module stuff */ 678module_usb_driver(it913x_driver);
679static int __init it913x_module_init(void)
680{
681 int result = usb_register(&it913x_driver);
682 if (result) {
683 err("usb_register failed. Error number %d", result);
684 return result;
685 }
686
687 return 0;
688}
689
690static void __exit it913x_module_exit(void)
691{
692 /* deregister this driver from the USB subsystem */
693 usb_deregister(&it913x_driver);
694}
695
696module_init(it913x_module_init);
697module_exit(it913x_module_exit);
698 679
699MODULE_AUTHOR("Malcolm Priestley <tvboxspy@gmail.com>"); 680MODULE_AUTHOR("Malcolm Priestley <tvboxspy@gmail.com>");
700MODULE_DESCRIPTION("it913x USB 2 Driver"); 681MODULE_DESCRIPTION("it913x USB 2 Driver");
diff --git a/drivers/media/dvb/dvb-usb/lmedm04.c b/drivers/media/dvb/dvb-usb/lmedm04.c
index b9228240f5c..1a876a65ed5 100644
--- a/drivers/media/dvb/dvb-usb/lmedm04.c
+++ b/drivers/media/dvb/dvb-usb/lmedm04.c
@@ -1289,26 +1289,7 @@ static struct usb_driver lme2510_driver = {
1289 .id_table = lme2510_table, 1289 .id_table = lme2510_table,
1290}; 1290};
1291 1291
1292/* module stuff */ 1292module_usb_driver(lme2510_driver);
1293static int __init lme2510_module_init(void)
1294{
1295 int result = usb_register(&lme2510_driver);
1296 if (result) {
1297 err("usb_register failed. Error number %d", result);
1298 return result;
1299 }
1300
1301 return 0;
1302}
1303
1304static void __exit lme2510_module_exit(void)
1305{
1306 /* deregister this driver from the USB subsystem */
1307 usb_deregister(&lme2510_driver);
1308}
1309
1310module_init(lme2510_module_init);
1311module_exit(lme2510_module_exit);
1312 1293
1313MODULE_AUTHOR("Malcolm Priestley <tvboxspy@gmail.com>"); 1294MODULE_AUTHOR("Malcolm Priestley <tvboxspy@gmail.com>");
1314MODULE_DESCRIPTION("LME2510(C) DVB-S USB2.0"); 1295MODULE_DESCRIPTION("LME2510(C) DVB-S USB2.0");
diff --git a/drivers/media/dvb/dvb-usb/m920x.c b/drivers/media/dvb/dvb-usb/m920x.c
index a1e1287c949..288af29a8bb 100644
--- a/drivers/media/dvb/dvb-usb/m920x.c
+++ b/drivers/media/dvb/dvb-usb/m920x.c
@@ -1086,27 +1086,7 @@ static struct usb_driver m920x_driver = {
1086 .id_table = m920x_table, 1086 .id_table = m920x_table,
1087}; 1087};
1088 1088
1089/* module stuff */ 1089module_usb_driver(m920x_driver);
1090static int __init m920x_module_init(void)
1091{
1092 int ret;
1093
1094 if ((ret = usb_register(&m920x_driver))) {
1095 err("usb_register failed. Error number %d", ret);
1096 return ret;
1097 }
1098
1099 return 0;
1100}
1101
1102static void __exit m920x_module_exit(void)
1103{
1104 /* deregister this driver from the USB subsystem */
1105 usb_deregister(&m920x_driver);
1106}
1107
1108module_init (m920x_module_init);
1109module_exit (m920x_module_exit);
1110 1090
1111MODULE_AUTHOR("Aapo Tahkola <aet@rasterburn.org>"); 1091MODULE_AUTHOR("Aapo Tahkola <aet@rasterburn.org>");
1112MODULE_DESCRIPTION("DVB Driver for ULI M920x"); 1092MODULE_DESCRIPTION("DVB Driver for ULI M920x");
diff --git a/drivers/media/dvb/dvb-usb/mxl111sf.c b/drivers/media/dvb/dvb-usb/mxl111sf.c
index b5c98da5d9e..825a8b242e0 100644
--- a/drivers/media/dvb/dvb-usb/mxl111sf.c
+++ b/drivers/media/dvb/dvb-usb/mxl111sf.c
@@ -1055,24 +1055,7 @@ static struct usb_driver mxl111sf_driver = {
1055 .id_table = mxl111sf_table, 1055 .id_table = mxl111sf_table,
1056}; 1056};
1057 1057
1058static int __init mxl111sf_module_init(void) 1058module_usb_driver(mxl111sf_driver);
1059{
1060 int result = usb_register(&mxl111sf_driver);
1061 if (result) {
1062 err("usb_register failed. Error number %d", result);
1063 return result;
1064 }
1065
1066 return 0;
1067}
1068
1069static void __exit mxl111sf_module_exit(void)
1070{
1071 usb_deregister(&mxl111sf_driver);
1072}
1073
1074module_init(mxl111sf_module_init);
1075module_exit(mxl111sf_module_exit);
1076 1059
1077MODULE_AUTHOR("Michael Krufky <mkrufky@kernellabs.com>"); 1060MODULE_AUTHOR("Michael Krufky <mkrufky@kernellabs.com>");
1078MODULE_DESCRIPTION("Driver for MaxLinear MxL111SF"); 1061MODULE_DESCRIPTION("Driver for MaxLinear MxL111SF");
diff --git a/drivers/media/dvb/dvb-usb/nova-t-usb2.c b/drivers/media/dvb/dvb-usb/nova-t-usb2.c
index 21384da6570..6c55384e2fc 100644
--- a/drivers/media/dvb/dvb-usb/nova-t-usb2.c
+++ b/drivers/media/dvb/dvb-usb/nova-t-usb2.c
@@ -225,26 +225,7 @@ static struct usb_driver nova_t_driver = {
225 .id_table = nova_t_table, 225 .id_table = nova_t_table,
226}; 226};
227 227
228/* module stuff */ 228module_usb_driver(nova_t_driver);
229static int __init nova_t_module_init(void)
230{
231 int result;
232 if ((result = usb_register(&nova_t_driver))) {
233 err("usb_register failed. Error number %d",result);
234 return result;
235 }
236
237 return 0;
238}
239
240static void __exit nova_t_module_exit(void)
241{
242 /* deregister this driver from the USB subsystem */
243 usb_deregister(&nova_t_driver);
244}
245
246module_init (nova_t_module_init);
247module_exit (nova_t_module_exit);
248 229
249MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 230MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
250MODULE_DESCRIPTION("Hauppauge WinTV-NOVA-T usb2"); 231MODULE_DESCRIPTION("Hauppauge WinTV-NOVA-T usb2");
diff --git a/drivers/media/dvb/dvb-usb/opera1.c b/drivers/media/dvb/dvb-usb/opera1.c
index 98fd9a6092b..c8a95042dfb 100644
--- a/drivers/media/dvb/dvb-usb/opera1.c
+++ b/drivers/media/dvb/dvb-usb/opera1.c
@@ -574,22 +574,7 @@ static struct usb_driver opera1_driver = {
574 .id_table = opera1_table, 574 .id_table = opera1_table,
575}; 575};
576 576
577static int __init opera1_module_init(void) 577module_usb_driver(opera1_driver);
578{
579 int result = 0;
580 if ((result = usb_register(&opera1_driver))) {
581 err("usb_register failed. Error number %d", result);
582 }
583 return result;
584}
585
586static void __exit opera1_module_exit(void)
587{
588 usb_deregister(&opera1_driver);
589}
590
591module_init(opera1_module_init);
592module_exit(opera1_module_exit);
593 578
594MODULE_AUTHOR("Mario Hlawitschka (c) dh1pa@amsat.org"); 579MODULE_AUTHOR("Mario Hlawitschka (c) dh1pa@amsat.org");
595MODULE_AUTHOR("Marco Gittler (c) g.marco@freenet.de"); 580MODULE_AUTHOR("Marco Gittler (c) g.marco@freenet.de");
diff --git a/drivers/media/dvb/dvb-usb/pctv452e.c b/drivers/media/dvb/dvb-usb/pctv452e.c
index f9aec5cb6e7..f526eb05cc7 100644
--- a/drivers/media/dvb/dvb-usb/pctv452e.c
+++ b/drivers/media/dvb/dvb-usb/pctv452e.c
@@ -1055,22 +1055,7 @@ static struct usb_driver pctv452e_usb_driver = {
1055 .id_table = pctv452e_usb_table, 1055 .id_table = pctv452e_usb_table,
1056}; 1056};
1057 1057
1058static int __init pctv452e_usb_init(void) 1058module_usb_driver(pctv452e_usb_driver);
1059{
1060 int ret = usb_register(&pctv452e_usb_driver);
1061 if (ret)
1062 err("%s: usb_register failed! Error %d", __FILE__, ret);
1063
1064 return ret;
1065}
1066
1067static void __exit pctv452e_usb_exit(void)
1068{
1069 usb_deregister(&pctv452e_usb_driver);
1070}
1071
1072module_init(pctv452e_usb_init);
1073module_exit(pctv452e_usb_exit);
1074 1059
1075MODULE_AUTHOR("Dominik Kuhlen <dkuhlen@gmx.net>"); 1060MODULE_AUTHOR("Dominik Kuhlen <dkuhlen@gmx.net>");
1076MODULE_AUTHOR("Andre Weidemann <Andre.Weidemann@web.de>"); 1061MODULE_AUTHOR("Andre Weidemann <Andre.Weidemann@web.de>");
diff --git a/drivers/media/dvb/dvb-usb/technisat-usb2.c b/drivers/media/dvb/dvb-usb/technisat-usb2.c
index 0998fe96195..acefaa89cc5 100644
--- a/drivers/media/dvb/dvb-usb/technisat-usb2.c
+++ b/drivers/media/dvb/dvb-usb/technisat-usb2.c
@@ -781,25 +781,7 @@ static struct usb_driver technisat_usb2_driver = {
781 .id_table = technisat_usb2_id_table, 781 .id_table = technisat_usb2_id_table,
782}; 782};
783 783
784/* module stuff */ 784module_usb_driver(technisat_usb2_driver);
785static int __init technisat_usb2_module_init(void)
786{
787 int result = usb_register(&technisat_usb2_driver);
788 if (result) {
789 err("usb_register failed. Code %d", result);
790 return result;
791 }
792
793 return 0;
794}
795
796static void __exit technisat_usb2_module_exit(void)
797{
798 usb_deregister(&technisat_usb2_driver);
799}
800
801module_init(technisat_usb2_module_init);
802module_exit(technisat_usb2_module_exit);
803 785
804MODULE_AUTHOR("Patrick Boettcher <pboettcher@kernellabs.com>"); 786MODULE_AUTHOR("Patrick Boettcher <pboettcher@kernellabs.com>");
805MODULE_DESCRIPTION("Driver for Technisat DVB-S/S2 USB 2.0 device"); 787MODULE_DESCRIPTION("Driver for Technisat DVB-S/S2 USB 2.0 device");
diff --git a/drivers/media/dvb/dvb-usb/ttusb2.c b/drivers/media/dvb/dvb-usb/ttusb2.c
index ea4eab8b396..56acf8e55d5 100644
--- a/drivers/media/dvb/dvb-usb/ttusb2.c
+++ b/drivers/media/dvb/dvb-usb/ttusb2.c
@@ -799,26 +799,7 @@ static struct usb_driver ttusb2_driver = {
799 .id_table = ttusb2_table, 799 .id_table = ttusb2_table,
800}; 800};
801 801
802/* module stuff */ 802module_usb_driver(ttusb2_driver);
803static int __init ttusb2_module_init(void)
804{
805 int result;
806 if ((result = usb_register(&ttusb2_driver))) {
807 err("usb_register failed. Error number %d",result);
808 return result;
809 }
810
811 return 0;
812}
813
814static void __exit ttusb2_module_exit(void)
815{
816 /* deregister this driver from the USB subsystem */
817 usb_deregister(&ttusb2_driver);
818}
819
820module_init (ttusb2_module_init);
821module_exit (ttusb2_module_exit);
822 803
823MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 804MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
824MODULE_DESCRIPTION("Driver for Pinnacle PCTV 400e DVB-S USB2.0"); 805MODULE_DESCRIPTION("Driver for Pinnacle PCTV 400e DVB-S USB2.0");
diff --git a/drivers/media/dvb/dvb-usb/umt-010.c b/drivers/media/dvb/dvb-usb/umt-010.c
index 463673a5c2b..9b042292e78 100644
--- a/drivers/media/dvb/dvb-usb/umt-010.c
+++ b/drivers/media/dvb/dvb-usb/umt-010.c
@@ -143,26 +143,7 @@ static struct usb_driver umt_driver = {
143 .id_table = umt_table, 143 .id_table = umt_table,
144}; 144};
145 145
146/* module stuff */ 146module_usb_driver(umt_driver);
147static int __init umt_module_init(void)
148{
149 int result;
150 if ((result = usb_register(&umt_driver))) {
151 err("usb_register failed. Error number %d",result);
152 return result;
153 }
154
155 return 0;
156}
157
158static void __exit umt_module_exit(void)
159{
160 /* deregister this driver from the USB subsystem */
161 usb_deregister(&umt_driver);
162}
163
164module_init (umt_module_init);
165module_exit (umt_module_exit);
166 147
167MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 148MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
168MODULE_DESCRIPTION("Driver for HanfTek UMT 010 USB2.0 DVB-T device"); 149MODULE_DESCRIPTION("Driver for HanfTek UMT 010 USB2.0 DVB-T device");
diff --git a/drivers/media/dvb/dvb-usb/vp702x.c b/drivers/media/dvb/dvb-usb/vp702x.c
index 45e31f22481..07c673a6e76 100644
--- a/drivers/media/dvb/dvb-usb/vp702x.c
+++ b/drivers/media/dvb/dvb-usb/vp702x.c
@@ -436,26 +436,7 @@ static struct usb_driver vp702x_usb_driver = {
436 .id_table = vp702x_usb_table, 436 .id_table = vp702x_usb_table,
437}; 437};
438 438
439/* module stuff */ 439module_usb_driver(vp702x_usb_driver);
440static int __init vp702x_usb_module_init(void)
441{
442 int result;
443 if ((result = usb_register(&vp702x_usb_driver))) {
444 err("usb_register failed. (%d)",result);
445 return result;
446 }
447
448 return 0;
449}
450
451static void __exit vp702x_usb_module_exit(void)
452{
453 /* deregister this driver from the USB subsystem */
454 usb_deregister(&vp702x_usb_driver);
455}
456
457module_init(vp702x_usb_module_init);
458module_exit(vp702x_usb_module_exit);
459 440
460MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 441MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
461MODULE_DESCRIPTION("Driver for Twinhan StarBox DVB-S USB2.0 and clones"); 442MODULE_DESCRIPTION("Driver for Twinhan StarBox DVB-S USB2.0 and clones");
diff --git a/drivers/media/dvb/dvb-usb/vp7045.c b/drivers/media/dvb/dvb-usb/vp7045.c
index 90873af5682..d750724132e 100644
--- a/drivers/media/dvb/dvb-usb/vp7045.c
+++ b/drivers/media/dvb/dvb-usb/vp7045.c
@@ -294,26 +294,7 @@ static struct usb_driver vp7045_usb_driver = {
294 .id_table = vp7045_usb_table, 294 .id_table = vp7045_usb_table,
295}; 295};
296 296
297/* module stuff */ 297module_usb_driver(vp7045_usb_driver);
298static int __init vp7045_usb_module_init(void)
299{
300 int result;
301 if ((result = usb_register(&vp7045_usb_driver))) {
302 err("usb_register failed. (%d)",result);
303 return result;
304 }
305
306 return 0;
307}
308
309static void __exit vp7045_usb_module_exit(void)
310{
311 /* deregister this driver from the USB subsystem */
312 usb_deregister(&vp7045_usb_driver);
313}
314
315module_init(vp7045_usb_module_init);
316module_exit(vp7045_usb_module_exit);
317 298
318MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>"); 299MODULE_AUTHOR("Patrick Boettcher <patrick.boettcher@desy.de>");
319MODULE_DESCRIPTION("Driver for Twinhan MagicBox/Alpha and DNTV tinyUSB2 DVB-T USB2.0"); 300MODULE_DESCRIPTION("Driver for Twinhan MagicBox/Alpha and DNTV tinyUSB2 DVB-T USB2.0");
diff --git a/drivers/media/dvb/siano/smsusb.c b/drivers/media/dvb/siano/smsusb.c
index 51c7121b321..b1fe5137df0 100644
--- a/drivers/media/dvb/siano/smsusb.c
+++ b/drivers/media/dvb/siano/smsusb.c
@@ -557,26 +557,7 @@ static struct usb_driver smsusb_driver = {
557 .resume = smsusb_resume, 557 .resume = smsusb_resume,
558}; 558};
559 559
560static int __init smsusb_module_init(void) 560module_usb_driver(smsusb_driver);
561{
562 int rc = usb_register(&smsusb_driver);
563 if (rc)
564 sms_err("usb_register failed. Error number %d", rc);
565
566 sms_debug("");
567
568 return rc;
569}
570
571static void __exit smsusb_module_exit(void)
572{
573 /* Regular USB Cleanup */
574 usb_deregister(&smsusb_driver);
575 sms_info("end");
576}
577
578module_init(smsusb_module_init);
579module_exit(smsusb_module_exit);
580 561
581MODULE_DESCRIPTION("Driver for the Siano SMS1xxx USB dongle"); 562MODULE_DESCRIPTION("Driver for the Siano SMS1xxx USB dongle");
582MODULE_AUTHOR("Siano Mobile Silicon, INC. (uris@siano-ms.com)"); 563MODULE_AUTHOR("Siano Mobile Silicon, INC. (uris@siano-ms.com)");
diff --git a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
index 420bb42d523..e90192fdde1 100644
--- a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
+++ b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
@@ -1794,26 +1794,7 @@ static struct usb_driver ttusb_driver = {
1794 .id_table = ttusb_table, 1794 .id_table = ttusb_table,
1795}; 1795};
1796 1796
1797static int __init ttusb_init(void) 1797module_usb_driver(ttusb_driver);
1798{
1799 int err;
1800
1801 if ((err = usb_register(&ttusb_driver)) < 0) {
1802 printk("%s: usb_register failed! Error number %d",
1803 __FILE__, err);
1804 return err;
1805 }
1806
1807 return 0;
1808}
1809
1810static void __exit ttusb_exit(void)
1811{
1812 usb_deregister(&ttusb_driver);
1813}
1814
1815module_init(ttusb_init);
1816module_exit(ttusb_exit);
1817 1798
1818MODULE_AUTHOR("Holger Waechtler <holger@convergence.de>"); 1799MODULE_AUTHOR("Holger Waechtler <holger@convergence.de>");
1819MODULE_DESCRIPTION("TTUSB DVB Driver"); 1800MODULE_DESCRIPTION("TTUSB DVB Driver");
diff --git a/drivers/media/dvb/ttusb-dec/ttusb_dec.c b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
index f893bffa08a..504c8123033 100644
--- a/drivers/media/dvb/ttusb-dec/ttusb_dec.c
+++ b/drivers/media/dvb/ttusb-dec/ttusb_dec.c
@@ -1756,26 +1756,7 @@ static struct usb_driver ttusb_dec_driver = {
1756 .id_table = ttusb_dec_table, 1756 .id_table = ttusb_dec_table,
1757}; 1757};
1758 1758
1759static int __init ttusb_dec_init(void) 1759module_usb_driver(ttusb_dec_driver);
1760{
1761 int result;
1762
1763 if ((result = usb_register(&ttusb_dec_driver)) < 0) {
1764 printk("%s: initialisation failed: error %d.\n", __func__,
1765 result);
1766 return result;
1767 }
1768
1769 return 0;
1770}
1771
1772static void __exit ttusb_dec_exit(void)
1773{
1774 usb_deregister(&ttusb_dec_driver);
1775}
1776
1777module_init(ttusb_dec_init);
1778module_exit(ttusb_dec_exit);
1779 1760
1780MODULE_AUTHOR("Alex Woods <linux-dvb@giblets.org>"); 1761MODULE_AUTHOR("Alex Woods <linux-dvb@giblets.org>");
1781MODULE_DESCRIPTION(DRIVER_NAME); 1762MODULE_DESCRIPTION(DRIVER_NAME);
diff --git a/drivers/media/radio/dsbr100.c b/drivers/media/radio/dsbr100.c
index 25e58cbf35f..f36905b6364 100644
--- a/drivers/media/radio/dsbr100.c
+++ b/drivers/media/radio/dsbr100.c
@@ -624,21 +624,7 @@ static int usb_dsbr100_probe(struct usb_interface *intf,
624 return 0; 624 return 0;
625} 625}
626 626
627static int __init dsbr100_init(void) 627module_usb_driver(usb_dsbr100_driver);
628{
629 int retval = usb_register(&usb_dsbr100_driver);
630 printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
631 DRIVER_DESC "\n");
632 return retval;
633}
634
635static void __exit dsbr100_exit(void)
636{
637 usb_deregister(&usb_dsbr100_driver);
638}
639
640module_init (dsbr100_init);
641module_exit (dsbr100_exit);
642 628
643MODULE_AUTHOR( DRIVER_AUTHOR ); 629MODULE_AUTHOR( DRIVER_AUTHOR );
644MODULE_DESCRIPTION( DRIVER_DESC ); 630MODULE_DESCRIPTION( DRIVER_DESC );
diff --git a/drivers/media/radio/radio-gemtek.c b/drivers/media/radio/radio-gemtek.c
index edadc8449a3..36ce0611c03 100644
--- a/drivers/media/radio/radio-gemtek.c
+++ b/drivers/media/radio/radio-gemtek.c
@@ -47,11 +47,11 @@ MODULE_VERSION("0.0.4");
47#endif 47#endif
48 48
49static int io = CONFIG_RADIO_GEMTEK_PORT; 49static int io = CONFIG_RADIO_GEMTEK_PORT;
50static int probe = CONFIG_RADIO_GEMTEK_PROBE; 50static bool probe = CONFIG_RADIO_GEMTEK_PROBE;
51static int hardmute; 51static bool hardmute;
52static int shutdown = 1; 52static bool shutdown = 1;
53static int keepmuted = 1; 53static bool keepmuted = 1;
54static int initmute = 1; 54static bool initmute = 1;
55static int radio_nr = -1; 55static int radio_nr = -1;
56 56
57module_param(io, int, 0444); 57module_param(io, int, 0444);
diff --git a/drivers/media/radio/radio-miropcm20.c b/drivers/media/radio/radio-miropcm20.c
index 3fb76e3834c..87c1ee13b05 100644
--- a/drivers/media/radio/radio-miropcm20.c
+++ b/drivers/media/radio/radio-miropcm20.c
@@ -23,7 +23,7 @@ static int radio_nr = -1;
23module_param(radio_nr, int, 0); 23module_param(radio_nr, int, 0);
24MODULE_PARM_DESC(radio_nr, "Set radio device number (/dev/radioX). Default: -1 (autodetect)"); 24MODULE_PARM_DESC(radio_nr, "Set radio device number (/dev/radioX). Default: -1 (autodetect)");
25 25
26static int mono; 26static bool mono;
27module_param(mono, bool, 0); 27module_param(mono, bool, 0);
28MODULE_PARM_DESC(mono, "Force tuner into mono mode."); 28MODULE_PARM_DESC(mono, "Force tuner into mono mode.");
29 29
diff --git a/drivers/media/radio/radio-mr800.c b/drivers/media/radio/radio-mr800.c
index 1742bd8110b..a860a72a58e 100644
--- a/drivers/media/radio/radio-mr800.c
+++ b/drivers/media/radio/radio-mr800.c
@@ -659,25 +659,4 @@ err:
659 return retval; 659 return retval;
660} 660}
661 661
662static int __init amradio_init(void) 662module_usb_driver(usb_amradio_driver);
663{
664 int retval = usb_register(&usb_amradio_driver);
665
666 pr_info(KBUILD_MODNAME
667 ": version " DRIVER_VERSION " " DRIVER_DESC "\n");
668
669 if (retval)
670 pr_err(KBUILD_MODNAME
671 ": usb_register failed. Error number %d\n", retval);
672
673 return retval;
674}
675
676static void __exit amradio_exit(void)
677{
678 usb_deregister(&usb_amradio_driver);
679}
680
681module_init(amradio_init);
682module_exit(amradio_exit);
683
diff --git a/drivers/media/radio/si470x/radio-si470x-usb.c b/drivers/media/radio/si470x/radio-si470x-usb.c
index a6ad707fae9..b7debb67932 100644
--- a/drivers/media/radio/si470x/radio-si470x-usb.c
+++ b/drivers/media/radio/si470x/radio-si470x-usb.c
@@ -861,33 +861,7 @@ static struct usb_driver si470x_usb_driver = {
861 .supports_autosuspend = 1, 861 .supports_autosuspend = 1,
862}; 862};
863 863
864 864module_usb_driver(si470x_usb_driver);
865
866/**************************************************************************
867 * Module Interface
868 **************************************************************************/
869
870/*
871 * si470x_module_init - module init
872 */
873static int __init si470x_module_init(void)
874{
875 printk(KERN_INFO DRIVER_DESC ", Version " DRIVER_VERSION "\n");
876 return usb_register(&si470x_usb_driver);
877}
878
879
880/*
881 * si470x_module_exit - module exit
882 */
883static void __exit si470x_module_exit(void)
884{
885 usb_deregister(&si470x_usb_driver);
886}
887
888
889module_init(si470x_module_init);
890module_exit(si470x_module_exit);
891 865
892MODULE_LICENSE("GPL"); 866MODULE_LICENSE("GPL");
893MODULE_AUTHOR(DRIVER_AUTHOR); 867MODULE_AUTHOR(DRIVER_AUTHOR);
diff --git a/drivers/media/rc/ati_remote.c b/drivers/media/rc/ati_remote.c
index 303f22ea04c..baf907b3ce7 100644
--- a/drivers/media/rc/ati_remote.c
+++ b/drivers/media/rc/ati_remote.c
@@ -189,7 +189,7 @@ struct ati_remote {
189 dma_addr_t inbuf_dma; 189 dma_addr_t inbuf_dma;
190 dma_addr_t outbuf_dma; 190 dma_addr_t outbuf_dma;
191 191
192 unsigned char old_data[2]; /* Detect duplicate events */ 192 unsigned char old_data; /* Detect duplicate events */
193 unsigned long old_jiffies; 193 unsigned long old_jiffies;
194 unsigned long acc_jiffies; /* handle acceleration */ 194 unsigned long acc_jiffies; /* handle acceleration */
195 unsigned long first_jiffies; 195 unsigned long first_jiffies;
@@ -221,35 +221,35 @@ struct ati_remote {
221/* Translation table from hardware messages to input events. */ 221/* Translation table from hardware messages to input events. */
222static const struct { 222static const struct {
223 short kind; 223 short kind;
224 unsigned char data1, data2; 224 unsigned char data;
225 int type; 225 int type;
226 unsigned int code; 226 unsigned int code;
227 int value; 227 int value;
228} ati_remote_tbl[] = { 228} ati_remote_tbl[] = {
229 /* Directional control pad axes */ 229 /* Directional control pad axes */
230 {KIND_ACCEL, 0x35, 0x70, EV_REL, REL_X, -1}, /* left */ 230 {KIND_ACCEL, 0x70, EV_REL, REL_X, -1}, /* left */
231 {KIND_ACCEL, 0x36, 0x71, EV_REL, REL_X, 1}, /* right */ 231 {KIND_ACCEL, 0x71, EV_REL, REL_X, 1}, /* right */
232 {KIND_ACCEL, 0x37, 0x72, EV_REL, REL_Y, -1}, /* up */ 232 {KIND_ACCEL, 0x72, EV_REL, REL_Y, -1}, /* up */
233 {KIND_ACCEL, 0x38, 0x73, EV_REL, REL_Y, 1}, /* down */ 233 {KIND_ACCEL, 0x73, EV_REL, REL_Y, 1}, /* down */
234 /* Directional control pad diagonals */ 234 /* Directional control pad diagonals */
235 {KIND_LU, 0x39, 0x74, EV_REL, 0, 0}, /* left up */ 235 {KIND_LU, 0x74, EV_REL, 0, 0}, /* left up */
236 {KIND_RU, 0x3a, 0x75, EV_REL, 0, 0}, /* right up */ 236 {KIND_RU, 0x75, EV_REL, 0, 0}, /* right up */
237 {KIND_LD, 0x3c, 0x77, EV_REL, 0, 0}, /* left down */ 237 {KIND_LD, 0x77, EV_REL, 0, 0}, /* left down */
238 {KIND_RD, 0x3b, 0x76, EV_REL, 0, 0}, /* right down */ 238 {KIND_RD, 0x76, EV_REL, 0, 0}, /* right down */
239 239
240 /* "Mouse button" buttons */ 240 /* "Mouse button" buttons */
241 {KIND_LITERAL, 0x3d, 0x78, EV_KEY, BTN_LEFT, 1}, /* left btn down */ 241 {KIND_LITERAL, 0x78, EV_KEY, BTN_LEFT, 1}, /* left btn down */
242 {KIND_LITERAL, 0x3e, 0x79, EV_KEY, BTN_LEFT, 0}, /* left btn up */ 242 {KIND_LITERAL, 0x79, EV_KEY, BTN_LEFT, 0}, /* left btn up */
243 {KIND_LITERAL, 0x41, 0x7c, EV_KEY, BTN_RIGHT, 1},/* right btn down */ 243 {KIND_LITERAL, 0x7c, EV_KEY, BTN_RIGHT, 1},/* right btn down */
244 {KIND_LITERAL, 0x42, 0x7d, EV_KEY, BTN_RIGHT, 0},/* right btn up */ 244 {KIND_LITERAL, 0x7d, EV_KEY, BTN_RIGHT, 0},/* right btn up */
245 245
246 /* Artificial "doubleclick" events are generated by the hardware. 246 /* Artificial "doubleclick" events are generated by the hardware.
247 * They are mapped to the "side" and "extra" mouse buttons here. */ 247 * They are mapped to the "side" and "extra" mouse buttons here. */
248 {KIND_FILTERED, 0x3f, 0x7a, EV_KEY, BTN_SIDE, 1}, /* left dblclick */ 248 {KIND_FILTERED, 0x7a, EV_KEY, BTN_SIDE, 1}, /* left dblclick */
249 {KIND_FILTERED, 0x43, 0x7e, EV_KEY, BTN_EXTRA, 1},/* right dblclick */ 249 {KIND_FILTERED, 0x7e, EV_KEY, BTN_EXTRA, 1},/* right dblclick */
250 250
251 /* Non-mouse events are handled by rc-core */ 251 /* Non-mouse events are handled by rc-core */
252 {KIND_END, 0x00, 0x00, EV_MAX + 1, 0, 0} 252 {KIND_END, 0x00, EV_MAX + 1, 0, 0}
253}; 253};
254 254
255/* Local function prototypes */ 255/* Local function prototypes */
@@ -397,25 +397,6 @@ static int ati_remote_sendpacket(struct ati_remote *ati_remote, u16 cmd, unsigne
397} 397}
398 398
399/* 399/*
400 * ati_remote_event_lookup
401 */
402static int ati_remote_event_lookup(int rem, unsigned char d1, unsigned char d2)
403{
404 int i;
405
406 for (i = 0; ati_remote_tbl[i].kind != KIND_END; i++) {
407 /*
408 * Decide if the table entry matches the remote input.
409 */
410 if (ati_remote_tbl[i].data1 == d1 &&
411 ati_remote_tbl[i].data2 == d2)
412 return i;
413
414 }
415 return -1;
416}
417
418/*
419 * ati_remote_compute_accel 400 * ati_remote_compute_accel
420 * 401 *
421 * Implements acceleration curve for directional control pad 402 * Implements acceleration curve for directional control pad
@@ -463,7 +444,15 @@ static void ati_remote_input_report(struct urb *urb)
463 int index = -1; 444 int index = -1;
464 int acc; 445 int acc;
465 int remote_num; 446 int remote_num;
466 unsigned char scancode[2]; 447 unsigned char scancode;
448 int i;
449
450 /*
451 * data[0] = 0x14
452 * data[1] = data[2] + data[3] + 0xd5 (a checksum byte)
453 * data[2] = the key code (with toggle bit in MSB with some models)
454 * data[3] = channel << 4 (the low 4 bits must be zero)
455 */
467 456
468 /* Deal with strange looking inputs */ 457 /* Deal with strange looking inputs */
469 if ( (urb->actual_length != 4) || (data[0] != 0x14) || 458 if ( (urb->actual_length != 4) || (data[0] != 0x14) ||
@@ -472,6 +461,13 @@ static void ati_remote_input_report(struct urb *urb)
472 return; 461 return;
473 } 462 }
474 463
464 if (data[1] != ((data[2] + data[3] + 0xd5) & 0xff)) {
465 dbginfo(&ati_remote->interface->dev,
466 "wrong checksum in input: %02x %02x %02x %02x\n",
467 data[0], data[1], data[2], data[3]);
468 return;
469 }
470
475 /* Mask unwanted remote channels. */ 471 /* Mask unwanted remote channels. */
476 /* note: remote_num is 0-based, channel 1 on remote == 0 here */ 472 /* note: remote_num is 0-based, channel 1 on remote == 0 here */
477 remote_num = (data[3] >> 4) & 0x0f; 473 remote_num = (data[3] >> 4) & 0x0f;
@@ -482,31 +478,30 @@ static void ati_remote_input_report(struct urb *urb)
482 return; 478 return;
483 } 479 }
484 480
485 scancode[0] = (((data[1] - ((remote_num + 1) << 4)) & 0xf0) | (data[1] & 0x0f));
486
487 /* 481 /*
488 * Some devices (e.g. SnapStream Firefly) use 8080 as toggle code, 482 * MSB is a toggle code, though only used by some devices
489 * so we have to clear them. The first bit is a bit tricky as the 483 * (e.g. SnapStream Firefly)
490 * "non-toggled" state depends on remote_num, so we xor it with the
491 * second bit which is only used for toggle.
492 */ 484 */
493 scancode[0] ^= (data[2] & 0x80); 485 scancode = data[2] & 0x7f;
494 486
495 scancode[1] = data[2] & ~0x80; 487 /* Look up event code index in the mouse translation table. */
496 488 for (i = 0; ati_remote_tbl[i].kind != KIND_END; i++) {
497 /* Look up event code index in mouse translation table. */ 489 if (scancode == ati_remote_tbl[i].data) {
498 index = ati_remote_event_lookup(remote_num, scancode[0], scancode[1]); 490 index = i;
491 break;
492 }
493 }
499 494
500 if (index >= 0) { 495 if (index >= 0) {
501 dbginfo(&ati_remote->interface->dev, 496 dbginfo(&ati_remote->interface->dev,
502 "channel 0x%02x; mouse data %02x,%02x; index %d; keycode %d\n", 497 "channel 0x%02x; mouse data %02x; index %d; keycode %d\n",
503 remote_num, data[1], data[2], index, ati_remote_tbl[index].code); 498 remote_num, data[2], index, ati_remote_tbl[index].code);
504 if (!dev) 499 if (!dev)
505 return; /* no mouse device */ 500 return; /* no mouse device */
506 } else 501 } else
507 dbginfo(&ati_remote->interface->dev, 502 dbginfo(&ati_remote->interface->dev,
508 "channel 0x%02x; key data %02x,%02x, scancode %02x,%02x\n", 503 "channel 0x%02x; key data %02x, scancode %02x\n",
509 remote_num, data[1], data[2], scancode[0], scancode[1]); 504 remote_num, data[2], scancode);
510 505
511 506
512 if (index >= 0 && ati_remote_tbl[index].kind == KIND_LITERAL) { 507 if (index >= 0 && ati_remote_tbl[index].kind == KIND_LITERAL) {
@@ -523,8 +518,7 @@ static void ati_remote_input_report(struct urb *urb)
523 unsigned long now = jiffies; 518 unsigned long now = jiffies;
524 519
525 /* Filter duplicate events which happen "too close" together. */ 520 /* Filter duplicate events which happen "too close" together. */
526 if (ati_remote->old_data[0] == data[1] && 521 if (ati_remote->old_data == data[2] &&
527 ati_remote->old_data[1] == data[2] &&
528 time_before(now, ati_remote->old_jiffies + 522 time_before(now, ati_remote->old_jiffies +
529 msecs_to_jiffies(repeat_filter))) { 523 msecs_to_jiffies(repeat_filter))) {
530 ati_remote->repeat_count++; 524 ati_remote->repeat_count++;
@@ -533,8 +527,7 @@ static void ati_remote_input_report(struct urb *urb)
533 ati_remote->first_jiffies = now; 527 ati_remote->first_jiffies = now;
534 } 528 }
535 529
536 ati_remote->old_data[0] = data[1]; 530 ati_remote->old_data = data[2];
537 ati_remote->old_data[1] = data[2];
538 ati_remote->old_jiffies = now; 531 ati_remote->old_jiffies = now;
539 532
540 /* Ensure we skip at least the 4 first duplicate events (generated 533 /* Ensure we skip at least the 4 first duplicate events (generated
@@ -549,14 +542,13 @@ static void ati_remote_input_report(struct urb *urb)
549 542
550 if (index < 0) { 543 if (index < 0) {
551 /* Not a mouse event, hand it to rc-core. */ 544 /* Not a mouse event, hand it to rc-core. */
552 u32 rc_code = (scancode[0] << 8) | scancode[1];
553 545
554 /* 546 /*
555 * We don't use the rc-core repeat handling yet as 547 * We don't use the rc-core repeat handling yet as
556 * it would cause ghost repeats which would be a 548 * it would cause ghost repeats which would be a
557 * regression for this driver. 549 * regression for this driver.
558 */ 550 */
559 rc_keydown_notimeout(ati_remote->rdev, rc_code, 551 rc_keydown_notimeout(ati_remote->rdev, scancode,
560 data[2]); 552 data[2]);
561 rc_keyup(ati_remote->rdev); 553 rc_keyup(ati_remote->rdev);
562 return; 554 return;
@@ -607,8 +599,7 @@ static void ati_remote_input_report(struct urb *urb)
607 input_sync(dev); 599 input_sync(dev);
608 600
609 ati_remote->old_jiffies = jiffies; 601 ati_remote->old_jiffies = jiffies;
610 ati_remote->old_data[0] = data[1]; 602 ati_remote->old_data = data[2];
611 ati_remote->old_data[1] = data[2];
612 } 603 }
613} 604}
614 605
@@ -908,38 +899,7 @@ static void ati_remote_disconnect(struct usb_interface *interface)
908 kfree(ati_remote); 899 kfree(ati_remote);
909} 900}
910 901
911/* 902module_usb_driver(ati_remote_driver);
912 * ati_remote_init
913 */
914static int __init ati_remote_init(void)
915{
916 int result;
917
918 result = usb_register(&ati_remote_driver);
919 if (result)
920 printk(KERN_ERR KBUILD_MODNAME
921 ": usb_register error #%d\n", result);
922 else
923 printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"
924 DRIVER_DESC "\n");
925
926 return result;
927}
928
929/*
930 * ati_remote_exit
931 */
932static void __exit ati_remote_exit(void)
933{
934 usb_deregister(&ati_remote_driver);
935}
936
937/*
938 * module specification
939 */
940
941module_init(ati_remote_init);
942module_exit(ati_remote_exit);
943 903
944MODULE_AUTHOR(DRIVER_AUTHOR); 904MODULE_AUTHOR(DRIVER_AUTHOR);
945MODULE_DESCRIPTION(DRIVER_DESC); 905MODULE_DESCRIPTION(DRIVER_DESC);
diff --git a/drivers/media/rc/ene_ir.c b/drivers/media/rc/ene_ir.c
index cf10ecf5ace..860c112e0fd 100644
--- a/drivers/media/rc/ene_ir.c
+++ b/drivers/media/rc/ene_ir.c
@@ -324,7 +324,7 @@ static int ene_rx_get_sample_reg(struct ene_device *dev)
324 return dev->extra_buf2_address + r_pointer; 324 return dev->extra_buf2_address + r_pointer;
325 } 325 }
326 326
327 dbg("attempt to read beyong ring bufer end"); 327 dbg("attempt to read beyond ring buffer end");
328 return 0; 328 return 0;
329} 329}
330 330
diff --git a/drivers/media/rc/ene_ir.h b/drivers/media/rc/ene_ir.h
index fd108d90f75..6f978e85db8 100644
--- a/drivers/media/rc/ene_ir.h
+++ b/drivers/media/rc/ene_ir.h
@@ -227,7 +227,7 @@ struct ene_device {
227 227
228 /* TX buffer */ 228 /* TX buffer */
229 unsigned *tx_buffer; /* input samples buffer*/ 229 unsigned *tx_buffer; /* input samples buffer*/
230 int tx_pos; /* position in that bufer */ 230 int tx_pos; /* position in that buffer */
231 int tx_len; /* current len of tx buffer */ 231 int tx_len; /* current len of tx buffer */
232 int tx_done; /* done transmitting */ 232 int tx_done; /* done transmitting */
233 /* one more sample pending*/ 233 /* one more sample pending*/
diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c
index 6ed96465137..3aeb29a7ce1 100644
--- a/drivers/media/rc/imon.c
+++ b/drivers/media/rc/imon.c
@@ -2458,23 +2458,4 @@ static int imon_resume(struct usb_interface *intf)
2458 return rc; 2458 return rc;
2459} 2459}
2460 2460
2461static int __init imon_init(void) 2461module_usb_driver(imon_driver);
2462{
2463 int rc;
2464
2465 rc = usb_register(&imon_driver);
2466 if (rc) {
2467 pr_err("usb register failed(%d)\n", rc);
2468 rc = -ENODEV;
2469 }
2470
2471 return rc;
2472}
2473
2474static void __exit imon_exit(void)
2475{
2476 usb_deregister(&imon_driver);
2477}
2478
2479module_init(imon_init);
2480module_exit(imon_exit);
diff --git a/drivers/media/rc/keymaps/rc-ati-x10.c b/drivers/media/rc/keymaps/rc-ati-x10.c
index e1b8b2605c4..81506440ede 100644
--- a/drivers/media/rc/keymaps/rc-ati-x10.c
+++ b/drivers/media/rc/keymaps/rc-ati-x10.c
@@ -27,55 +27,55 @@
27#include <media/rc-map.h> 27#include <media/rc-map.h>
28 28
29static struct rc_map_table ati_x10[] = { 29static struct rc_map_table ati_x10[] = {
30 { 0xd20d, KEY_1 }, 30 { 0x0d, KEY_1 },
31 { 0xd30e, KEY_2 }, 31 { 0x0e, KEY_2 },
32 { 0xd40f, KEY_3 }, 32 { 0x0f, KEY_3 },
33 { 0xd510, KEY_4 }, 33 { 0x10, KEY_4 },
34 { 0xd611, KEY_5 }, 34 { 0x11, KEY_5 },
35 { 0xd712, KEY_6 }, 35 { 0x12, KEY_6 },
36 { 0xd813, KEY_7 }, 36 { 0x13, KEY_7 },
37 { 0xd914, KEY_8 }, 37 { 0x14, KEY_8 },
38 { 0xda15, KEY_9 }, 38 { 0x15, KEY_9 },
39 { 0xdc17, KEY_0 }, 39 { 0x17, KEY_0 },
40 { 0xc500, KEY_A }, 40 { 0x00, KEY_A },
41 { 0xc601, KEY_B }, 41 { 0x01, KEY_B },
42 { 0xde19, KEY_C }, 42 { 0x19, KEY_C },
43 { 0xe01b, KEY_D }, 43 { 0x1b, KEY_D },
44 { 0xe621, KEY_E }, 44 { 0x21, KEY_E },
45 { 0xe823, KEY_F }, 45 { 0x23, KEY_F },
46 46
47 { 0xdd18, KEY_KPENTER }, /* "check" */ 47 { 0x18, KEY_KPENTER }, /* "check" */
48 { 0xdb16, KEY_MENU }, /* "menu" */ 48 { 0x16, KEY_MENU }, /* "menu" */
49 { 0xc702, KEY_POWER }, /* Power */ 49 { 0x02, KEY_POWER }, /* Power */
50 { 0xc803, KEY_TV }, /* TV */ 50 { 0x03, KEY_TV }, /* TV */
51 { 0xc904, KEY_DVD }, /* DVD */ 51 { 0x04, KEY_DVD }, /* DVD */
52 { 0xca05, KEY_WWW }, /* WEB */ 52 { 0x05, KEY_WWW }, /* WEB */
53 { 0xcb06, KEY_BOOKMARKS }, /* "book" */ 53 { 0x06, KEY_BOOKMARKS }, /* "book" */
54 { 0xcc07, KEY_EDIT }, /* "hand" */ 54 { 0x07, KEY_EDIT }, /* "hand" */
55 { 0xe11c, KEY_COFFEE }, /* "timer" */ 55 { 0x1c, KEY_COFFEE }, /* "timer" */
56 { 0xe520, KEY_FRONT }, /* "max" */ 56 { 0x20, KEY_FRONT }, /* "max" */
57 { 0xe21d, KEY_LEFT }, /* left */ 57 { 0x1d, KEY_LEFT }, /* left */
58 { 0xe41f, KEY_RIGHT }, /* right */ 58 { 0x1f, KEY_RIGHT }, /* right */
59 { 0xe722, KEY_DOWN }, /* down */ 59 { 0x22, KEY_DOWN }, /* down */
60 { 0xdf1a, KEY_UP }, /* up */ 60 { 0x1a, KEY_UP }, /* up */
61 { 0xe31e, KEY_OK }, /* "OK" */ 61 { 0x1e, KEY_OK }, /* "OK" */
62 { 0xce09, KEY_VOLUMEDOWN }, /* VOL + */ 62 { 0x09, KEY_VOLUMEDOWN }, /* VOL + */
63 { 0xcd08, KEY_VOLUMEUP }, /* VOL - */ 63 { 0x08, KEY_VOLUMEUP }, /* VOL - */
64 { 0xcf0a, KEY_MUTE }, /* MUTE */ 64 { 0x0a, KEY_MUTE }, /* MUTE */
65 { 0xd00b, KEY_CHANNELUP }, /* CH + */ 65 { 0x0b, KEY_CHANNELUP }, /* CH + */
66 { 0xd10c, KEY_CHANNELDOWN },/* CH - */ 66 { 0x0c, KEY_CHANNELDOWN },/* CH - */
67 { 0xec27, KEY_RECORD }, /* ( o) red */ 67 { 0x27, KEY_RECORD }, /* ( o) red */
68 { 0xea25, KEY_PLAY }, /* ( >) */ 68 { 0x25, KEY_PLAY }, /* ( >) */
69 { 0xe924, KEY_REWIND }, /* (<<) */ 69 { 0x24, KEY_REWIND }, /* (<<) */
70 { 0xeb26, KEY_FORWARD }, /* (>>) */ 70 { 0x26, KEY_FORWARD }, /* (>>) */
71 { 0xed28, KEY_STOP }, /* ([]) */ 71 { 0x28, KEY_STOP }, /* ([]) */
72 { 0xee29, KEY_PAUSE }, /* ('') */ 72 { 0x29, KEY_PAUSE }, /* ('') */
73 { 0xf02b, KEY_PREVIOUS }, /* (<-) */ 73 { 0x2b, KEY_PREVIOUS }, /* (<-) */
74 { 0xef2a, KEY_NEXT }, /* (>+) */ 74 { 0x2a, KEY_NEXT }, /* (>+) */
75 { 0xf22d, KEY_INFO }, /* PLAYING */ 75 { 0x2d, KEY_INFO }, /* PLAYING */
76 { 0xf32e, KEY_HOME }, /* TOP */ 76 { 0x2e, KEY_HOME }, /* TOP */
77 { 0xf42f, KEY_END }, /* END */ 77 { 0x2f, KEY_END }, /* END */
78 { 0xf530, KEY_SELECT }, /* SELECT */ 78 { 0x30, KEY_SELECT }, /* SELECT */
79}; 79};
80 80
81static struct rc_map_list ati_x10_map = { 81static struct rc_map_list ati_x10_map = {
diff --git a/drivers/media/rc/keymaps/rc-medion-x10.c b/drivers/media/rc/keymaps/rc-medion-x10.c
index 09e2cc01d11..479cdb89781 100644
--- a/drivers/media/rc/keymaps/rc-medion-x10.c
+++ b/drivers/media/rc/keymaps/rc-medion-x10.c
@@ -25,70 +25,70 @@
25#include <media/rc-map.h> 25#include <media/rc-map.h>
26 26
27static struct rc_map_table medion_x10[] = { 27static struct rc_map_table medion_x10[] = {
28 { 0xf12c, KEY_TV }, /* TV */ 28 { 0x2c, KEY_TV }, /* TV */
29 { 0xf22d, KEY_VCR }, /* VCR */ 29 { 0x2d, KEY_VCR }, /* VCR */
30 { 0xc904, KEY_DVD }, /* DVD */ 30 { 0x04, KEY_DVD }, /* DVD */
31 { 0xcb06, KEY_AUDIO }, /* MUSIC */ 31 { 0x06, KEY_AUDIO }, /* MUSIC */
32 32
33 { 0xf32e, KEY_RADIO }, /* RADIO */ 33 { 0x2e, KEY_RADIO }, /* RADIO */
34 { 0xca05, KEY_DIRECTORY }, /* PHOTO */ 34 { 0x05, KEY_DIRECTORY }, /* PHOTO */
35 { 0xf42f, KEY_INFO }, /* TV-PREVIEW */ 35 { 0x2f, KEY_INFO }, /* TV-PREVIEW */
36 { 0xf530, KEY_LIST }, /* CHANNEL-LST */ 36 { 0x30, KEY_LIST }, /* CHANNEL-LST */
37 37
38 { 0xe01b, KEY_SETUP }, /* SETUP */ 38 { 0x1b, KEY_SETUP }, /* SETUP */
39 { 0xf631, KEY_VIDEO }, /* VIDEO DESKTOP */ 39 { 0x31, KEY_VIDEO }, /* VIDEO DESKTOP */
40 40
41 { 0xcd08, KEY_VOLUMEDOWN }, /* VOL - */ 41 { 0x08, KEY_VOLUMEDOWN }, /* VOL - */
42 { 0xce09, KEY_VOLUMEUP }, /* VOL + */ 42 { 0x09, KEY_VOLUMEUP }, /* VOL + */
43 { 0xd00b, KEY_CHANNELUP }, /* CHAN + */ 43 { 0x0b, KEY_CHANNELUP }, /* CHAN + */
44 { 0xd10c, KEY_CHANNELDOWN }, /* CHAN - */ 44 { 0x0c, KEY_CHANNELDOWN }, /* CHAN - */
45 { 0xc500, KEY_MUTE }, /* MUTE */ 45 { 0x00, KEY_MUTE }, /* MUTE */
46 46
47 { 0xf732, KEY_RED }, /* red */ 47 { 0x32, KEY_RED }, /* red */
48 { 0xf833, KEY_GREEN }, /* green */ 48 { 0x33, KEY_GREEN }, /* green */
49 { 0xf934, KEY_YELLOW }, /* yellow */ 49 { 0x34, KEY_YELLOW }, /* yellow */
50 { 0xfa35, KEY_BLUE }, /* blue */ 50 { 0x35, KEY_BLUE }, /* blue */
51 { 0xdb16, KEY_TEXT }, /* TXT */ 51 { 0x16, KEY_TEXT }, /* TXT */
52 52
53 { 0xd20d, KEY_1 }, 53 { 0x0d, KEY_1 },
54 { 0xd30e, KEY_2 }, 54 { 0x0e, KEY_2 },
55 { 0xd40f, KEY_3 }, 55 { 0x0f, KEY_3 },
56 { 0xd510, KEY_4 }, 56 { 0x10, KEY_4 },
57 { 0xd611, KEY_5 }, 57 { 0x11, KEY_5 },
58 { 0xd712, KEY_6 }, 58 { 0x12, KEY_6 },
59 { 0xd813, KEY_7 }, 59 { 0x13, KEY_7 },
60 { 0xd914, KEY_8 }, 60 { 0x14, KEY_8 },
61 { 0xda15, KEY_9 }, 61 { 0x15, KEY_9 },
62 { 0xdc17, KEY_0 }, 62 { 0x17, KEY_0 },
63 { 0xe11c, KEY_SEARCH }, /* TV/RAD, CH SRC */ 63 { 0x1c, KEY_SEARCH }, /* TV/RAD, CH SRC */
64 { 0xe520, KEY_DELETE }, /* DELETE */ 64 { 0x20, KEY_DELETE }, /* DELETE */
65 65
66 { 0xfb36, KEY_KEYBOARD }, /* RENAME */ 66 { 0x36, KEY_KEYBOARD }, /* RENAME */
67 { 0xdd18, KEY_SCREEN }, /* SNAPSHOT */ 67 { 0x18, KEY_SCREEN }, /* SNAPSHOT */
68 68
69 { 0xdf1a, KEY_UP }, /* up */ 69 { 0x1a, KEY_UP }, /* up */
70 { 0xe722, KEY_DOWN }, /* down */ 70 { 0x22, KEY_DOWN }, /* down */
71 { 0xe21d, KEY_LEFT }, /* left */ 71 { 0x1d, KEY_LEFT }, /* left */
72 { 0xe41f, KEY_RIGHT }, /* right */ 72 { 0x1f, KEY_RIGHT }, /* right */
73 { 0xe31e, KEY_OK }, /* OK */ 73 { 0x1e, KEY_OK }, /* OK */
74 74
75 { 0xfc37, KEY_SELECT }, /* ACQUIRE IMAGE */ 75 { 0x37, KEY_SELECT }, /* ACQUIRE IMAGE */
76 { 0xfd38, KEY_EDIT }, /* EDIT IMAGE */ 76 { 0x38, KEY_EDIT }, /* EDIT IMAGE */
77 77
78 { 0xe924, KEY_REWIND }, /* rewind (<<) */ 78 { 0x24, KEY_REWIND }, /* rewind (<<) */
79 { 0xea25, KEY_PLAY }, /* play ( >) */ 79 { 0x25, KEY_PLAY }, /* play ( >) */
80 { 0xeb26, KEY_FORWARD }, /* forward (>>) */ 80 { 0x26, KEY_FORWARD }, /* forward (>>) */
81 { 0xec27, KEY_RECORD }, /* record ( o) */ 81 { 0x27, KEY_RECORD }, /* record ( o) */
82 { 0xed28, KEY_STOP }, /* stop ([]) */ 82 { 0x28, KEY_STOP }, /* stop ([]) */
83 { 0xee29, KEY_PAUSE }, /* pause ('') */ 83 { 0x29, KEY_PAUSE }, /* pause ('') */
84 84
85 { 0xe621, KEY_PREVIOUS }, /* prev */ 85 { 0x21, KEY_PREVIOUS }, /* prev */
86 { 0xfe39, KEY_SWITCHVIDEOMODE }, /* F SCR */ 86 { 0x39, KEY_SWITCHVIDEOMODE }, /* F SCR */
87 { 0xe823, KEY_NEXT }, /* next */ 87 { 0x23, KEY_NEXT }, /* next */
88 { 0xde19, KEY_MENU }, /* MENU */ 88 { 0x19, KEY_MENU }, /* MENU */
89 { 0xff3a, KEY_LANGUAGE }, /* AUDIO */ 89 { 0x3a, KEY_LANGUAGE }, /* AUDIO */
90 90
91 { 0xc702, KEY_POWER }, /* POWER */ 91 { 0x02, KEY_POWER }, /* POWER */
92}; 92};
93 93
94static struct rc_map_list medion_x10_map = { 94static struct rc_map_list medion_x10_map = {
diff --git a/drivers/media/rc/keymaps/rc-snapstream-firefly.c b/drivers/media/rc/keymaps/rc-snapstream-firefly.c
index ef146520931..c7f33ec719b 100644
--- a/drivers/media/rc/keymaps/rc-snapstream-firefly.c
+++ b/drivers/media/rc/keymaps/rc-snapstream-firefly.c
@@ -22,63 +22,63 @@
22#include <media/rc-map.h> 22#include <media/rc-map.h>
23 23
24static struct rc_map_table snapstream_firefly[] = { 24static struct rc_map_table snapstream_firefly[] = {
25 { 0xf12c, KEY_ZOOM }, /* Maximize */ 25 { 0x2c, KEY_ZOOM }, /* Maximize */
26 { 0xc702, KEY_CLOSE }, 26 { 0x02, KEY_CLOSE },
27 27
28 { 0xd20d, KEY_1 }, 28 { 0x0d, KEY_1 },
29 { 0xd30e, KEY_2 }, 29 { 0x0e, KEY_2 },
30 { 0xd40f, KEY_3 }, 30 { 0x0f, KEY_3 },
31 { 0xd510, KEY_4 }, 31 { 0x10, KEY_4 },
32 { 0xd611, KEY_5 }, 32 { 0x11, KEY_5 },
33 { 0xd712, KEY_6 }, 33 { 0x12, KEY_6 },
34 { 0xd813, KEY_7 }, 34 { 0x13, KEY_7 },
35 { 0xd914, KEY_8 }, 35 { 0x14, KEY_8 },
36 { 0xda15, KEY_9 }, 36 { 0x15, KEY_9 },
37 { 0xdc17, KEY_0 }, 37 { 0x17, KEY_0 },
38 { 0xdb16, KEY_BACK }, 38 { 0x16, KEY_BACK },
39 { 0xdd18, KEY_KPENTER }, /* ent */ 39 { 0x18, KEY_KPENTER }, /* ent */
40 40
41 { 0xce09, KEY_VOLUMEUP }, 41 { 0x09, KEY_VOLUMEUP },
42 { 0xcd08, KEY_VOLUMEDOWN }, 42 { 0x08, KEY_VOLUMEDOWN },
43 { 0xcf0a, KEY_MUTE }, 43 { 0x0a, KEY_MUTE },
44 { 0xd00b, KEY_CHANNELUP }, 44 { 0x0b, KEY_CHANNELUP },
45 { 0xd10c, KEY_CHANNELDOWN }, 45 { 0x0c, KEY_CHANNELDOWN },
46 { 0xc500, KEY_VENDOR }, /* firefly */ 46 { 0x00, KEY_VENDOR }, /* firefly */
47 47
48 { 0xf32e, KEY_INFO }, 48 { 0x2e, KEY_INFO },
49 { 0xf42f, KEY_OPTION }, 49 { 0x2f, KEY_OPTION },
50 50
51 { 0xe21d, KEY_LEFT }, 51 { 0x1d, KEY_LEFT },
52 { 0xe41f, KEY_RIGHT }, 52 { 0x1f, KEY_RIGHT },
53 { 0xe722, KEY_DOWN }, 53 { 0x22, KEY_DOWN },
54 { 0xdf1a, KEY_UP }, 54 { 0x1a, KEY_UP },
55 { 0xe31e, KEY_OK }, 55 { 0x1e, KEY_OK },
56 56
57 { 0xe11c, KEY_MENU }, 57 { 0x1c, KEY_MENU },
58 { 0xe520, KEY_EXIT }, 58 { 0x20, KEY_EXIT },
59 59
60 { 0xec27, KEY_RECORD }, 60 { 0x27, KEY_RECORD },
61 { 0xea25, KEY_PLAY }, 61 { 0x25, KEY_PLAY },
62 { 0xed28, KEY_STOP }, 62 { 0x28, KEY_STOP },
63 { 0xe924, KEY_REWIND }, 63 { 0x24, KEY_REWIND },
64 { 0xeb26, KEY_FORWARD }, 64 { 0x26, KEY_FORWARD },
65 { 0xee29, KEY_PAUSE }, 65 { 0x29, KEY_PAUSE },
66 { 0xf02b, KEY_PREVIOUS }, 66 { 0x2b, KEY_PREVIOUS },
67 { 0xef2a, KEY_NEXT }, 67 { 0x2a, KEY_NEXT },
68 68
69 { 0xcb06, KEY_AUDIO }, /* Music */ 69 { 0x06, KEY_AUDIO }, /* Music */
70 { 0xca05, KEY_IMAGES }, /* Photos */ 70 { 0x05, KEY_IMAGES }, /* Photos */
71 { 0xc904, KEY_DVD }, 71 { 0x04, KEY_DVD },
72 { 0xc803, KEY_TV }, 72 { 0x03, KEY_TV },
73 { 0xcc07, KEY_VIDEO }, 73 { 0x07, KEY_VIDEO },
74 74
75 { 0xc601, KEY_HELP }, 75 { 0x01, KEY_HELP },
76 { 0xf22d, KEY_MODE }, /* Mouse */ 76 { 0x2d, KEY_MODE }, /* Mouse */
77 77
78 { 0xde19, KEY_A }, 78 { 0x19, KEY_A },
79 { 0xe01b, KEY_B }, 79 { 0x1b, KEY_B },
80 { 0xe621, KEY_C }, 80 { 0x21, KEY_C },
81 { 0xe823, KEY_D }, 81 { 0x23, KEY_D },
82}; 82};
83 83
84static struct rc_map_list snapstream_firefly_map = { 84static struct rc_map_list snapstream_firefly_map = {
diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c
index 27997a9ceb0..ca12d3289bf 100644
--- a/drivers/media/rc/lirc_dev.c
+++ b/drivers/media/rc/lirc_dev.c
@@ -38,7 +38,7 @@
38#include <media/lirc.h> 38#include <media/lirc.h>
39#include <media/lirc_dev.h> 39#include <media/lirc_dev.h>
40 40
41static int debug; 41static bool debug;
42 42
43#define IRCTL_DEV_NAME "BaseRemoteCtl" 43#define IRCTL_DEV_NAME "BaseRemoteCtl"
44#define NOPLUG -1 44#define NOPLUG -1
diff --git a/drivers/media/rc/mceusb.c b/drivers/media/rc/mceusb.c
index 60d3c1e0971..21105bf9594 100644
--- a/drivers/media/rc/mceusb.c
+++ b/drivers/media/rc/mceusb.c
@@ -156,9 +156,9 @@
156 156
157/* module parameters */ 157/* module parameters */
158#ifdef CONFIG_USB_DEBUG 158#ifdef CONFIG_USB_DEBUG
159static int debug = 1; 159static bool debug = 1;
160#else 160#else
161static int debug; 161static bool debug;
162#endif 162#endif
163 163
164#define mce_dbg(dev, fmt, ...) \ 164#define mce_dbg(dev, fmt, ...) \
@@ -1448,25 +1448,7 @@ static struct usb_driver mceusb_dev_driver = {
1448 .id_table = mceusb_dev_table 1448 .id_table = mceusb_dev_table
1449}; 1449};
1450 1450
1451static int __init mceusb_dev_init(void) 1451module_usb_driver(mceusb_dev_driver);
1452{
1453 int ret;
1454
1455 ret = usb_register(&mceusb_dev_driver);
1456 if (ret < 0)
1457 printk(KERN_ERR DRIVER_NAME
1458 ": usb register failed, result = %d\n", ret);
1459
1460 return ret;
1461}
1462
1463static void __exit mceusb_dev_exit(void)
1464{
1465 usb_deregister(&mceusb_dev_driver);
1466}
1467
1468module_init(mceusb_dev_init);
1469module_exit(mceusb_dev_exit);
1470 1452
1471MODULE_DESCRIPTION(DRIVER_DESC); 1453MODULE_DESCRIPTION(DRIVER_DESC);
1472MODULE_AUTHOR(DRIVER_AUTHOR); 1454MODULE_AUTHOR(DRIVER_AUTHOR);
diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c
index 29f900065d8..f5db8b949bc 100644
--- a/drivers/media/rc/rc-main.c
+++ b/drivers/media/rc/rc-main.c
@@ -715,7 +715,7 @@ static void ir_close(struct input_dev *idev)
715} 715}
716 716
717/* class for /sys/class/rc */ 717/* class for /sys/class/rc */
718static char *ir_devnode(struct device *dev, mode_t *mode) 718static char *ir_devnode(struct device *dev, umode_t *mode)
719{ 719{
720 return kasprintf(GFP_KERNEL, "rc/%s", dev_name(dev)); 720 return kasprintf(GFP_KERNEL, "rc/%s", dev_name(dev));
721} 721}
diff --git a/drivers/media/rc/redrat3.c b/drivers/media/rc/redrat3.c
index 61287fcca61..07322fb75ef 100644
--- a/drivers/media/rc/redrat3.c
+++ b/drivers/media/rc/redrat3.c
@@ -1300,25 +1300,7 @@ static struct usb_driver redrat3_dev_driver = {
1300 .id_table = redrat3_dev_table 1300 .id_table = redrat3_dev_table
1301}; 1301};
1302 1302
1303static int __init redrat3_dev_init(void) 1303module_usb_driver(redrat3_dev_driver);
1304{
1305 int ret;
1306
1307 ret = usb_register(&redrat3_dev_driver);
1308 if (ret < 0)
1309 pr_err(DRIVER_NAME
1310 ": usb register failed, result = %d\n", ret);
1311
1312 return ret;
1313}
1314
1315static void __exit redrat3_dev_exit(void)
1316{
1317 usb_deregister(&redrat3_dev_driver);
1318}
1319
1320module_init(redrat3_dev_init);
1321module_exit(redrat3_dev_exit);
1322 1304
1323MODULE_DESCRIPTION(DRIVER_DESC); 1305MODULE_DESCRIPTION(DRIVER_DESC);
1324MODULE_AUTHOR(DRIVER_AUTHOR); 1306MODULE_AUTHOR(DRIVER_AUTHOR);
diff --git a/drivers/media/rc/streamzap.c b/drivers/media/rc/streamzap.c
index e435d94c077..d6f4bfe0939 100644
--- a/drivers/media/rc/streamzap.c
+++ b/drivers/media/rc/streamzap.c
@@ -43,9 +43,9 @@
43#define DRIVER_DESC "Streamzap Remote Control driver" 43#define DRIVER_DESC "Streamzap Remote Control driver"
44 44
45#ifdef CONFIG_USB_DEBUG 45#ifdef CONFIG_USB_DEBUG
46static int debug = 1; 46static bool debug = 1;
47#else 47#else
48static int debug; 48static bool debug;
49#endif 49#endif
50 50
51#define USB_STREAMZAP_VENDOR_ID 0x0e9c 51#define USB_STREAMZAP_VENDOR_ID 0x0e9c
@@ -523,33 +523,7 @@ static int streamzap_resume(struct usb_interface *intf)
523 return 0; 523 return 0;
524} 524}
525 525
526/** 526module_usb_driver(streamzap_driver);
527 * streamzap_init
528 */
529static int __init streamzap_init(void)
530{
531 int ret;
532
533 /* register this driver with the USB subsystem */
534 ret = usb_register(&streamzap_driver);
535 if (ret < 0)
536 printk(KERN_ERR DRIVER_NAME ": usb register failed, "
537 "result = %d\n", ret);
538
539 return ret;
540}
541
542/**
543 * streamzap_exit
544 */
545static void __exit streamzap_exit(void)
546{
547 usb_deregister(&streamzap_driver);
548}
549
550
551module_init(streamzap_init);
552module_exit(streamzap_exit);
553 527
554MODULE_AUTHOR("Jarod Wilson <jarod@wilsonet.com>"); 528MODULE_AUTHOR("Jarod Wilson <jarod@wilsonet.com>");
555MODULE_DESCRIPTION(DRIVER_DESC); 529MODULE_DESCRIPTION(DRIVER_DESC);
diff --git a/drivers/media/rc/winbond-cir.c b/drivers/media/rc/winbond-cir.c
index 13f54b51194..b09c5fae489 100644
--- a/drivers/media/rc/winbond-cir.c
+++ b/drivers/media/rc/winbond-cir.c
@@ -226,11 +226,11 @@ module_param(protocol, uint, 0444);
226MODULE_PARM_DESC(protocol, "IR protocol to use for the power-on command " 226MODULE_PARM_DESC(protocol, "IR protocol to use for the power-on command "
227 "(0 = RC5, 1 = NEC, 2 = RC6A, default)"); 227 "(0 = RC5, 1 = NEC, 2 = RC6A, default)");
228 228
229static int invert; /* default = 0 */ 229static bool invert; /* default = 0 */
230module_param(invert, bool, 0444); 230module_param(invert, bool, 0444);
231MODULE_PARM_DESC(invert, "Invert the signal from the IR receiver"); 231MODULE_PARM_DESC(invert, "Invert the signal from the IR receiver");
232 232
233static int txandrx; /* default = 0 */ 233static bool txandrx; /* default = 0 */
234module_param(txandrx, bool, 0444); 234module_param(txandrx, bool, 0444);
235MODULE_PARM_DESC(invert, "Allow simultaneous TX and RX"); 235MODULE_PARM_DESC(invert, "Allow simultaneous TX and RX");
236 236
@@ -1176,6 +1176,6 @@ wbcir_exit(void)
1176module_init(wbcir_init); 1176module_init(wbcir_init);
1177module_exit(wbcir_exit); 1177module_exit(wbcir_exit);
1178 1178
1179MODULE_AUTHOR("David Härdeman <david@hardeman.nu>"); 1179MODULE_AUTHOR("David Härdeman <david@hardeman.nu>");
1180MODULE_DESCRIPTION("Winbond SuperI/O Consumer IR Driver"); 1180MODULE_DESCRIPTION("Winbond SuperI/O Consumer IR Driver");
1181MODULE_LICENSE("GPL"); 1181MODULE_LICENSE("GPL");
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
73static int parport[MAX_CAMS] = { [1 ... MAX_CAMS-1] = -1 }; 73static int parport[MAX_CAMS] = { [1 ... MAX_CAMS-1] = -1 };
74static int probe = 2; 74static int probe = 2;
75static int force_rgb; 75static bool force_rgb;
76static int video_nr = -1; 76static 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");
31MODULE_AUTHOR("Hans Verkuil"); 31MODULE_AUTHOR("Hans Verkuil");
32MODULE_LICENSE("GPL"); 32MODULE_LICENSE("GPL");
33 33
34static int debug; 34static bool debug;
35 35
36module_param(debug, bool, 0644); 36module_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");
35MODULE_AUTHOR("Martin Vaughan"); 35MODULE_AUTHOR("Martin Vaughan");
36MODULE_LICENSE("GPL"); 36MODULE_LICENSE("GPL");
37 37
38static int debug; 38static bool debug;
39 39
40module_param(debug, bool, 0644); 40module_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 };
76static unsigned cardtype_c = 1; 76static unsigned cardtype_c = 1;
77static unsigned tuner_c = 1; 77static unsigned tuner_c = 1;
78static unsigned radio_c = 1; 78static bool radio_c = 1;
79static char pal[] = "--"; 79static char pal[] = "--";
80static char secam[] = "--"; 80static char secam[] = "--";
81static char ntsc[] = "-"; 81static 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
1388static int __init cx231xx_module_init(void) 1388module_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
1403static void __exit cx231xx_module_exit(void)
1404{
1405 /* deregister this driver with the USB subsystem */
1406 usb_deregister(&cx231xx_usb_driver);
1407}
1408
1409module_init(cx231xx_module_init);
1410module_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
103static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ 103static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
104static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ 104static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */
105static int enable[SNDRV_CARDS] = { 1, [1 ... (SNDRV_CARDS - 1)] = 1 }; 105static bool enable[SNDRV_CARDS] = { 1, [1 ... (SNDRV_CARDS - 1)] = 1 };
106 106
107module_param_array(enable, bool, NULL, 0444); 107module_param_array(enable, bool, NULL, 0444);
108MODULE_PARM_DESC(enable, "Enable cx25821 soundcard. default enabled."); 108MODULE_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
97static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ 97static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
98static const char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */ 98static const char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; /* ID for this card */
99static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 1}; 99static bool enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 1};
100 100
101module_param_array(enable, bool, NULL, 0444); 101module_param_array(enable, bool, NULL, 0444);
102MODULE_PARM_DESC(enable, "Enable cx88x soundcard. default enabled."); 102MODULE_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
3328static int __init em28xx_module_init(void) 3328module_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
3343static void __exit em28xx_module_exit(void)
3344{
3345 /* deregister this driver with the USB subsystem */
3346 usb_deregister(&em28xx_usb_driver);
3347}
3348
3349module_init(em28xx_module_init);
3350module_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
79static short force_munmap[] = {[0 ... ET61X251_MAX_DEVICES-1] = 79static bool force_munmap[] = {[0 ... ET61X251_MAX_DEVICES-1] =
80 ET61X251_FORCE_MUNMAP}; 80 ET61X251_FORCE_MUNMAP};
81module_param_array(force_munmap, bool, NULL, 0444); 81module_param_array(force_munmap, bool, NULL, 0444);
82MODULE_PARM_DESC(force_munmap, 82MODULE_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/*****************************************************************************/ 2683module_usb_driver(et61x251_usb_driver);
2684
2685static 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
2699static void __exit et61x251_module_exit(void)
2700{
2701 usb_deregister(&et61x251_usb_driver);
2702}
2703
2704
2705module_init(et61x251_module_init);
2706module_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 -- */ 291module_usb_driver(sd_driver);
292static int __init sd_mod_init(void)
293{
294 return usb_register(&sd_driver);
295}
296static void __exit sd_mod_exit(void)
297{
298 usb_deregister(&sd_driver);
299}
300
301module_init(sd_mod_init);
302module_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 -- */ 1070module_usb_driver(sd_driver);
1071static int __init sd_mod_init(void)
1072{
1073 return usb_register(&sd_driver);
1074}
1075static void __exit sd_mod_exit(void)
1076{
1077 usb_deregister(&sd_driver);
1078}
1079
1080module_init(sd_mod_init);
1081module_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 -- */ 2135module_usb_driver(sd_driver);
2136static int __init sd_mod_init(void)
2137{
2138 return usb_register(&sd_driver);
2139}
2140static void __exit sd_mod_exit(void)
2141{
2142 usb_deregister(&sd_driver);
2143}
2144
2145module_init(sd_mod_init);
2146module_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 -- */ 898module_usb_driver(sd_driver);
899static int __init sd_mod_init(void)
900{
901 return usb_register(&sd_driver);
902}
903
904static void __exit sd_mod_exit(void)
905{
906 usb_deregister(&sd_driver);
907}
908
909module_init(sd_mod_init);
910module_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 -- */ 293module_usb_driver(sd_driver);
294static int __init sd_mod_init(void)
295{
296 return usb_register(&sd_driver);
297}
298
299static void __exit sd_mod_exit(void)
300{
301 usb_deregister(&sd_driver);
302}
303
304module_init(sd_mod_init);
305module_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
527static int __init sd_mod_init(void) 527module_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
536static void __exit sd_mod_exit(void)
537{
538 usb_deregister(&sd_driver);
539}
540
541module_init(sd_mod_init);
542module_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 }
963out: 963out:
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 -- */ 585module_usb_driver(sd_driver);
586static int __init sd_mod_init(void)
587{
588 return usb_register(&sd_driver);
589}
590
591static void __exit sd_mod_exit(void)
592{
593 usb_deregister(&sd_driver);
594}
595
596module_init(sd_mod_init);
597module_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 -- */ 416module_usb_driver(sd_driver);
417static int __init sd_mod_init(void)
418{
419 return usb_register(&sd_driver);
420}
421
422static void __exit sd_mod_exit(void)
423{
424 usb_deregister(&sd_driver);
425}
426
427module_init(sd_mod_init);
428module_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 -- */ 637module_usb_driver(sd_driver);
638static int __init sd_mod_init(void)
639{
640 return usb_register(&sd_driver);
641}
642static void __exit sd_mod_exit(void)
643{
644 usb_deregister(&sd_driver);
645}
646
647module_init(sd_mod_init);
648module_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 */
29int force_sensor; 29int force_sensor;
30static int dump_bridge; 30static bool dump_bridge;
31int dump_sensor; 31bool dump_sensor;
32 32
33static const struct usb_device_id m5602_table[] = { 33static 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 -- */ 407module_usb_driver(sd_driver);
408static int __init mod_m5602_init(void)
409{
410 return usb_register(&sd_driver);
411}
412
413static void __exit mod_m5602_exit(void)
414{
415 usb_deregister(&sd_driver);
416}
417
418module_init(mod_m5602_init);
419module_exit(mod_m5602_exit);
420 408
421MODULE_AUTHOR(DRIVER_AUTHOR); 409MODULE_AUTHOR(DRIVER_AUTHOR);
422MODULE_DESCRIPTION(DRIVER_DESC); 410MODULE_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 */
108extern int force_sensor; 108extern int force_sensor;
109extern int dump_sensor; 109extern bool dump_sensor;
110 110
111int mt9m111_probe(struct sd *sd); 111int mt9m111_probe(struct sd *sd);
112int mt9m111_init(struct sd *sd); 112int 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 */
88extern int force_sensor; 88extern int force_sensor;
89extern int dump_sensor; 89extern bool dump_sensor;
90 90
91int ov7660_probe(struct sd *sd); 91int ov7660_probe(struct sd *sd);
92int ov7660_init(struct sd *sd); 92int 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 */
137extern int force_sensor; 137extern int force_sensor;
138extern int dump_sensor; 138extern bool dump_sensor;
139 139
140int ov9650_probe(struct sd *sd); 140int ov9650_probe(struct sd *sd);
141int ov9650_init(struct sd *sd); 141int 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 */
149extern int force_sensor; 149extern int force_sensor;
150extern int dump_sensor; 150extern bool dump_sensor;
151 151
152int po1030_probe(struct sd *sd); 152int po1030_probe(struct sd *sd);
153int po1030_init(struct sd *sd); 153int 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 */
67extern int force_sensor; 67extern int force_sensor;
68extern int dump_sensor; 68extern bool dump_sensor;
69 69
70int s5k4aa_probe(struct sd *sd); 70int s5k4aa_probe(struct sd *sd);
71int s5k4aa_init(struct sd *sd); 71int 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 */
43extern int force_sensor; 43extern int force_sensor;
44extern int dump_sensor; 44extern bool dump_sensor;
45 45
46int s5k83a_probe(struct sd *sd); 46int s5k83a_probe(struct sd *sd);
47int s5k83a_init(struct sd *sd); 47int 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 -- */ 520module_usb_driver(sd_driver);
521static int __init sd_mod_init(void)
522{
523 return usb_register(&sd_driver);
524}
525static void __exit sd_mod_exit(void)
526{
527 usb_deregister(&sd_driver);
528}
529
530module_init(sd_mod_init);
531module_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 -- */ 1262module_usb_driver(sd_driver);
1263static int __init sd_mod_init(void)
1264{
1265 return usb_register(&sd_driver);
1266}
1267static void __exit sd_mod_exit(void)
1268{
1269 usb_deregister(&sd_driver);
1270}
1271
1272module_init(sd_mod_init);
1273module_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 -- */ 2121module_usb_driver(sd_driver);
2122static int __init sd_mod_init(void)
2123{
2124 return usb_register(&sd_driver);
2125}
2126static void __exit sd_mod_exit(void)
2127{
2128 usb_deregister(&sd_driver);
2129}
2130
2131module_init(sd_mod_init);
2132module_exit(sd_mod_exit);
2133 2122
2134module_param(webcam, int, 0644); 2123module_param(webcam, int, 0644);
2135MODULE_PARM_DESC(webcam, 2124MODULE_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 -- */ 5059module_usb_driver(sd_driver);
5060static int __init sd_mod_init(void)
5061{
5062 return usb_register(&sd_driver);
5063}
5064static void __exit sd_mod_exit(void)
5065{
5066 usb_deregister(&sd_driver);
5067}
5068
5069module_init(sd_mod_init);
5070module_exit(sd_mod_exit);
5071 5060
5072module_param(frame_rate, int, 0644); 5061module_param(frame_rate, int, 0644);
5073MODULE_PARM_DESC(frame_rate, "Frame rate (5, 10, 15, 20 or 30 fps)"); 5062MODULE_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 -- */ 1536module_usb_driver(sd_driver);
1537static int __init sd_mod_init(void)
1538{
1539 return usb_register(&sd_driver);
1540}
1541
1542static void __exit sd_mod_exit(void)
1543{
1544 usb_deregister(&sd_driver);
1545}
1546
1547module_init(sd_mod_init);
1548module_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 -- */ 1435module_usb_driver(sd_driver);
1436static int __init sd_mod_init(void)
1437{
1438 return usb_register(&sd_driver);
1439}
1440
1441static void __exit sd_mod_exit(void)
1442{
1443 usb_deregister(&sd_driver);
1444}
1445
1446module_init(sd_mod_init);
1447module_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 -- */ 572module_usb_driver(sd_driver);
573static int __init sd_mod_init(void)
574{
575 return usb_register(&sd_driver);
576}
577static void __exit sd_mod_exit(void)
578{
579 usb_deregister(&sd_driver);
580}
581
582module_init(sd_mod_init);
583module_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 -- */ 1223module_usb_driver(sd_driver);
1224static int __init sd_mod_init(void)
1225{
1226 return usb_register(&sd_driver);
1227}
1228static void __exit sd_mod_exit(void)
1229{
1230 usb_deregister(&sd_driver);
1231}
1232
1233module_init(sd_mod_init);
1234module_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 -- */ 871module_usb_driver(sd_driver);
872static int __init sd_mod_init(void)
873{
874 return usb_register(&sd_driver);
875}
876static void __exit sd_mod_exit(void)
877{
878 usb_deregister(&sd_driver);
879}
880
881module_init(sd_mod_init);
882module_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 -- */ 769module_usb_driver(sd_driver);
770static int __init sd_mod_init(void)
771{
772 return usb_register(&sd_driver);
773}
774static void __exit sd_mod_exit(void)
775{
776 usb_deregister(&sd_driver);
777}
778
779module_init(sd_mod_init);
780module_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 -- */ 740module_usb_driver(sd_driver);
741static int __init sd_mod_init(void)
742{
743 return usb_register(&sd_driver);
744}
745
746static void __exit sd_mod_exit(void)
747{
748 usb_deregister(&sd_driver);
749}
750
751module_init(sd_mod_init);
752module_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 -- */ 2557module_usb_driver(sd_driver);
2558static int __init sd_mod_init(void)
2559{
2560 return usb_register(&sd_driver);
2561}
2562static void __exit sd_mod_exit(void)
2563{
2564 usb_deregister(&sd_driver);
2565}
2566
2567module_init(sd_mod_init);
2568module_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 -- */ 1530module_usb_driver(sd_driver);
1531static int __init sd_mod_init(void)
1532{
1533 return usb_register(&sd_driver);
1534}
1535static void __exit sd_mod_exit(void)
1536{
1537 usb_deregister(&sd_driver);
1538}
1539
1540module_init(sd_mod_init);
1541module_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 -- */ 3107module_usb_driver(sd_driver);
3108static int __init sd_mod_init(void)
3109{
3110 return usb_register(&sd_driver);
3111}
3112static void __exit sd_mod_exit(void)
3113{
3114 usb_deregister(&sd_driver);
3115}
3116
3117module_init(sd_mod_init);
3118module_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 -- */ 593module_usb_driver(sd_driver);
594static int __init sd_mod_init(void)
595{
596 return usb_register(&sd_driver);
597}
598static void __exit sd_mod_exit(void)
599{
600 usb_deregister(&sd_driver);
601}
602
603module_init(sd_mod_init);
604module_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 -- */ 1095module_usb_driver(sd_driver);
1096static int __init sd_mod_init(void)
1097{
1098 return usb_register(&sd_driver);
1099}
1100static void __exit sd_mod_exit(void)
1101{
1102 usb_deregister(&sd_driver);
1103}
1104
1105module_init(sd_mod_init);
1106module_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 -- */ 2191module_usb_driver(sd_driver);
2192static int __init sd_mod_init(void)
2193{
2194 return usb_register(&sd_driver);
2195}
2196static void __exit sd_mod_exit(void)
2197{
2198 usb_deregister(&sd_driver);
2199}
2200
2201module_init(sd_mod_init);
2202module_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 -- */ 818module_usb_driver(sd_driver);
819static int __init sd_mod_init(void)
820{
821 return usb_register(&sd_driver);
822}
823static void __exit sd_mod_exit(void)
824{
825 usb_deregister(&sd_driver);
826}
827
828module_init(sd_mod_init);
829module_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 -- */ 717module_usb_driver(sd_driver);
718static 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}
727static void __exit sd_mod_exit(void)
728{
729 usb_deregister(&sd_driver);
730 PDEBUG(D_PROBE, "deregistered");
731}
732
733module_init(sd_mod_init);
734module_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 -- */ 1547module_usb_driver(sd_driver);
1548static int __init sd_mod_init(void)
1549{
1550 return usb_register(&sd_driver);
1551}
1552static void __exit sd_mod_exit(void)
1553{
1554 usb_deregister(&sd_driver);
1555}
1556
1557module_init(sd_mod_init);
1558module_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 -- */ 1109module_usb_driver(sd_driver);
1110static int __init sd_mod_init(void)
1111{
1112 return usb_register(&sd_driver);
1113}
1114static void __exit sd_mod_exit(void)
1115{
1116 usb_deregister(&sd_driver);
1117}
1118
1119module_init(sd_mod_init);
1120module_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 -- */ 435module_usb_driver(sd_driver);
436static int __init sd_mod_init(void)
437{
438 return usb_register(&sd_driver);
439}
440
441static void __exit sd_mod_exit(void)
442{
443 usb_deregister(&sd_driver);
444}
445
446module_init(sd_mod_init);
447module_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 -- */ 342module_usb_driver(sd_driver);
343static int __init sd_mod_init(void)
344{
345 return usb_register(&sd_driver);
346}
347
348static void __exit sd_mod_exit(void)
349{
350 usb_deregister(&sd_driver);
351}
352
353module_init(sd_mod_init);
354module_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 -- */ 1200module_usb_driver(sd_driver);
1201static int __init sd_mod_init(void)
1202{
1203 return usb_register(&sd_driver);
1204}
1205static void __exit sd_mod_exit(void)
1206{
1207 usb_deregister(&sd_driver);
1208}
1209
1210module_init(sd_mod_init);
1211module_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 -- */ 522module_usb_driver(sd_driver);
523static int __init sd_mod_init(void)
524{
525 return usb_register(&sd_driver);
526}
527static void __exit sd_mod_exit(void)
528{
529 usb_deregister(&sd_driver);
530}
531
532module_init(sd_mod_init);
533module_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 -- */ 358module_usb_driver(sd_driver);
359static int __init sd_mod_init(void)
360{
361 return usb_register(&sd_driver);
362}
363static void __exit sd_mod_exit(void)
364{
365 usb_deregister(&sd_driver);
366}
367
368module_init(sd_mod_init);
369module_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");
36MODULE_DESCRIPTION("STV06XX USB Camera Driver"); 36MODULE_DESCRIPTION("STV06XX USB Camera Driver");
37MODULE_LICENSE("GPL"); 37MODULE_LICENSE("GPL");
38 38
39static int dump_bridge; 39static bool dump_bridge;
40static int dump_sensor; 40static bool dump_sensor;
41 41
42int stv06xx_write_bridge(struct sd *sd, u16 address, u16 i2c_data) 42int 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 -- */ 615module_usb_driver(sd_driver);
616static int __init sd_mod_init(void)
617{
618 return usb_register(&sd_driver);
619}
620static void __exit sd_mod_exit(void)
621{
622 usb_deregister(&sd_driver);
623}
624
625module_init(sd_mod_init);
626module_exit(sd_mod_exit);
627 616
628module_param(dump_bridge, bool, S_IRUGO | S_IWUSR); 617module_param(dump_bridge, bool, S_IRUGO | S_IWUSR);
629MODULE_PARM_DESC(dump_bridge, "Dumps all usb bridge registers at startup"); 618MODULE_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 -- */ 1214module_usb_driver(sd_driver);
1215static int __init sd_mod_init(void)
1216{
1217 return usb_register(&sd_driver);
1218}
1219static void __exit sd_mod_exit(void)
1220{
1221 usb_deregister(&sd_driver);
1222}
1223
1224module_init(sd_mod_init);
1225module_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 -- */ 1441module_usb_driver(sd_driver);
1442static int __init sd_mod_init(void)
1443{
1444 return usb_register(&sd_driver);
1445}
1446static void __exit sd_mod_exit(void)
1447{
1448 usb_deregister(&sd_driver);
1449}
1450
1451module_init(sd_mod_init);
1452module_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 -- */ 4974module_usb_driver(sd_driver);
4975static int __init sd_mod_init(void)
4976{
4977 return usb_register(&sd_driver);
4978}
4979static void __exit sd_mod_exit(void)
4980{
4981 usb_deregister(&sd_driver);
4982}
4983
4984module_init(sd_mod_init);
4985module_exit(sd_mod_exit);
4986 4975
4987module_param(force_sensor, int, 0644); 4976module_param(force_sensor, int, 0644);
4988MODULE_PARM_DESC(force_sensor, 4977MODULE_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 -- */ 421module_usb_driver(sd_driver);
422static int __init sd_mod_init(void)
423{
424 return usb_register(&sd_driver);
425}
426
427static void __exit sd_mod_exit(void)
428{
429 usb_deregister(&sd_driver);
430}
431
432module_init(sd_mod_init);
433module_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 -- */ 4233module_usb_driver(sd_driver);
4234static int __init sd_mod_init(void)
4235{
4236 return usb_register(&sd_driver);
4237}
4238static void __exit sd_mod_exit(void)
4239{
4240 usb_deregister(&sd_driver);
4241}
4242
4243module_init(sd_mod_init);
4244module_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 -- */ 371module_usb_driver(sd_driver);
372static int __init sd_mod_init(void)
373{
374 return usb_register(&sd_driver);
375}
376
377static void __exit sd_mod_exit(void)
378{
379 usb_deregister(&sd_driver);
380}
381
382module_init(sd_mod_init);
383module_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 -- */ 3328module_usb_driver(sd_driver);
3329static int __init sd_mod_init(void)
3330{
3331 return usb_register(&sd_driver);
3332}
3333static void __exit sd_mod_exit(void)
3334{
3335 usb_deregister(&sd_driver);
3336}
3337
3338module_init(sd_mod_init);
3339module_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
7053static int __init sd_mod_init(void) 7053module_usb_driver(sd_driver);
7054{
7055 return usb_register(&sd_driver);
7056}
7057
7058static void __exit sd_mod_exit(void)
7059{
7060 usb_deregister(&sd_driver);
7061}
7062
7063module_init(sd_mod_init);
7064module_exit(sd_mod_exit);
7065 7054
7066module_param(force_sensor, int, 0644); 7055module_param(force_sensor, int, 0644);
7067MODULE_PARM_DESC(force_sensor, 7056MODULE_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);
49MODULE_PARM_DESC(default_audio_input, "default audio input: 0=RCA back / " 49MODULE_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
52static int boost_audio; 52static bool boost_audio;
53module_param(boost_audio, bool, S_IRUGO|S_IWUSR); 53module_param(boost_audio, bool, S_IRUGO|S_IWUSR);
54MODULE_PARM_DESC(boost_audio, "boost the audio signal"); 54MODULE_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
455static int __init hdpvr_init(void) 455module_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
467static void __exit hdpvr_exit(void)
468{
469 /* deregister this driver with the USB subsystem */
470 usb_deregister(&hdpvr_usb_driver);
471}
472
473module_init(hdpvr_init);
474module_exit(hdpvr_exit);
475 456
476MODULE_LICENSE("GPL"); 457MODULE_LICENSE("GPL");
477MODULE_VERSION("0.2.1"); 458MODULE_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
100static unsigned int cardtype_c = 1; 100static unsigned int cardtype_c = 1;
101static unsigned int tuner_c = 1; 101static unsigned int tuner_c = 1;
102static unsigned int radio_c = 1; 102static bool radio_c = 1;
103static unsigned int i2c_clock_period_c = 1; 103static unsigned int i2c_clock_period_c = 1;
104static char pal[] = "---"; 104static char pal[] = "---";
105static char secam[] = "--"; 105static 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 */
59static int ivtvfb_card_id = -1; 59static int ivtvfb_card_id = -1;
60static int ivtvfb_debug = 0; 60static int ivtvfb_debug = 0;
61static int osd_laced; 61static bool osd_laced;
62static int osd_depth; 62static int osd_depth;
63static int osd_upper; 63static int osd_upper;
64static int osd_left; 64static 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, &reg); 340 ret = m5mols_read_u8(sd, SYSTEM_SYSMODE, &reg);
@@ -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)
626static int m5mols_s_stream(struct v4l2_subdev *sd, int enable) 621static 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
54static int alloc_bufs_at_read; 54static bool alloc_bufs_at_read;
55module_param(alloc_bufs_at_read, bool, 0444); 55module_param(alloc_bufs_at_read, bool, 0444);
56MODULE_PARM_DESC(alloc_bufs_at_read, 56MODULE_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 */
76static const int alloc_bufs_at_read = 0; 76static const bool alloc_bufs_at_read = 0;
77static const int n_dma_bufs = 3; /* Used by S/G_PARM */ 77static const int n_dma_bufs = 3; /* Used by S/G_PARM */
78#endif /* MCAM_MODE_VMALLOC */ 78#endif /* MCAM_MODE_VMALLOC */
79 79
80static int flip; 80static bool flip;
81module_param(flip, bool, 0444); 81module_param(flip, bool, 0444);
82MODULE_PARM_DESC(flip, 82MODULE_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 */
70static int opmode = OPMODE_AUTO; 70static int opmode = OPMODE_AUTO;
71int msp_debug; /* msp_debug output */ 71int msp_debug; /* msp_debug output */
72int msp_once; /* no continuous stereo monitoring */ 72bool msp_once; /* no continuous stereo monitoring */
73int msp_amsound; /* hard-wire AM sound at 6.5 Hz (france), 73bool 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... */
75int msp_standard = 1; /* Override auto detect of audio msp_standard, 75int msp_standard = 1; /* Override auto detect of audio msp_standard,
76 if needed. */ 76 if needed. */
77int msp_dolby; 77bool msp_dolby;
78 78
79int msp_stereo_thresh = 0x190; /* a2 threshold for stereo/bilingual 79int 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 */
46extern int msp_debug; 46extern int msp_debug;
47extern int msp_once; 47extern bool msp_once;
48extern int msp_amsound; 48extern bool msp_amsound;
49extern int msp_standard; 49extern int msp_standard;
50extern int msp_dolby; 50extern bool msp_dolby;
51extern int msp_stereo_thresh; 51extern int msp_stereo_thresh;
52 52
53struct msp_state { 53struct 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;
69static u32 video2_numbuffers = 3; 70static u32 video2_numbuffers = 3;
70static u32 video1_bufsize = OMAP_VOUT_MAX_BUF_SIZE; 71static u32 video1_bufsize = OMAP_VOUT_MAX_BUF_SIZE;
71static u32 video2_bufsize = OMAP_VOUT_MAX_BUF_SIZE; 72static u32 video2_bufsize = OMAP_VOUT_MAX_BUF_SIZE;
72static u32 vid1_static_vrfb_alloc; 73static bool vid1_static_vrfb_alloc;
73static u32 vid2_static_vrfb_alloc; 74static bool vid2_static_vrfb_alloc;
74static int debug; 75static bool debug;
75 76
76/* Module parameters */ 77/* Module parameters */
77module_param(video1_numbuffers, uint, S_IRUGO); 78module_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
1691streamon_err1: 1697streamon_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
86int omap_vout_setup_vrfb_bufs(struct platform_device *pdev, int vid_num, 86int 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
90static unsigned int autoidle; 83static unsigned int autoidle;
91module_param(autoidle, int, 0444); 84module_param(autoidle, int, 0444);
92MODULE_PARM_DESC(autoidle, "Enable OMAP3ISP AUTOIDLE support"); 85MODULE_PARM_DESC(autoidle, "Enable OMAP3ISP AUTOIDLE support");
@@ -1114,8 +1107,7 @@ isp_restore_context(struct isp_device *isp, struct isp_reg *reg_list)
1114static void isp_save_ctx(struct isp_device *isp) 1107static 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)
1128static void isp_restore_ctx(struct isp_device *isp) 1120static 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:
2188error_irq: 2168error_irq:
2189 free_irq(isp->irq_num, isp); 2169 free_irq(isp->irq_num, isp);
2190detach_dev: 2170detach_dev:
2191 iommu_detach_device(isp->domain, isp->iommu_dev); 2171 iommu_detach_device(isp->domain, &pdev->dev);
2192free_domain: 2172free_domain:
2193 iommu_domain_free(isp->domain); 2173 iommu_domain_free(isp->domain);
2194error_isp: 2174error_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
497static void isp_stat_queue_event(struct ispstat *stat, int err) 497static 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,
540static int ov6650_s_fmt(struct v4l2_subdev *sd, struct v4l2_mbus_framefmt *mf) 540static 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>");
25MODULE_DESCRIPTION("A low-level driver for OmniVision ov7670 sensors"); 25MODULE_DESCRIPTION("A low-level driver for OmniVision ov7670 sensors");
26MODULE_LICENSE("GPL"); 26MODULE_LICENSE("GPL");
27 27
28static int debug; 28static bool debug;
29module_param(debug, bool, 0644); 29module_param(debug, bool, 0644);
30MODULE_PARM_DESC(debug, "Debug level (0-1)"); 30MODULE_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
2685static int __init usb_s2255_init(void) 2685module_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
2697static void __exit usb_s2255_exit(void)
2698{
2699 usb_deregister(&s2255_driver);
2700}
2701
2702module_init(usb_s2255_init);
2703module_exit(usb_s2255_exit);
2704 2686
2705MODULE_DESCRIPTION("Sensoray 2255 Video for Linux driver"); 2687MODULE_DESCRIPTION("Sensoray 2255 Video for Linux driver");
2706MODULE_AUTHOR("Dean Anderson (Sensoray Company Inc.)"); 2688MODULE_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] = {
37static struct fimc_fmt fimc_formats[] = { 37static 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 */
382struct samsung_fimc_variant { 383struct 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,
234static void fimc_md_unregister_sensor(struct v4l2_subdev *sd) 235static 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
245static int fimc_md_register_sensor_entities(struct fimc_md *fmd) 249static 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
382static int fimc_md_register_video_nodes(struct fimc_md *fmd) 386static 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
40static u32 fimc_hw_get_in_flip(struct fimc_ctx *ctx) 43static 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");
58MODULE_LICENSE("GPL"); 58MODULE_LICENSE("GPL");
59 59
60static int debug; 60static bool debug;
61module_param(debug, bool, 0644); 61module_param(debug, bool, 0644);
62 62
63MODULE_PARM_DESC(debug, "Debug level (0-1)"); 63MODULE_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)
202static int sh_csi2_client_connect(struct sh_csi2 *priv) 202static 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
78static short force_munmap[] = {[0 ... SN9C102_MAX_DEVICES-1] = 78static bool force_munmap[] = {[0 ... SN9C102_MAX_DEVICES-1] =
79 SN9C102_FORCE_MUNMAP}; 79 SN9C102_FORCE_MUNMAP};
80module_param_array(force_munmap, bool, NULL, 0444); 80module_param_array(force_munmap, bool, NULL, 0444);
81MODULE_PARM_DESC(force_munmap, 81MODULE_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/*****************************************************************************/ 3423module_usb_driver(sn9c102_usb_driver);
3424
3425static 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
3439static void __exit sn9c102_module_exit(void)
3440{
3441 usb_deregister(&sn9c102_usb_driver);
3442}
3443
3444
3445module_init(sn9c102_module_init);
3446module_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
41static int hflip = 1; 41static bool hflip = 1;
42module_param(hflip, bool, 0444); 42module_param(hflip, bool, 0444);
43MODULE_PARM_DESC(hflip, "Horizontal image flip (mirror). Defaults to 1"); 43MODULE_PARM_DESC(hflip, "Horizontal image flip (mirror). Defaults to 1");
44 44
45static int vflip = 1; 45static bool vflip = 1;
46module_param(vflip, bool, 0444); 46module_param(vflip, bool, 0444);
47MODULE_PARM_DESC(vflip, "Vertical image flip. Defaults to 1"); 47MODULE_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 1380module_usb_driver(stk_camera_driver);
1381static 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
1393static void __exit stk_camera_exit(void)
1394{
1395 usb_deregister(&stk_camera_driver);
1396}
1397
1398module_init(stk_camera_init);
1399module_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
43static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */ 43static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; /* Index 0-MAX */
44 44
45static int enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 1}; 45static bool enable[SNDRV_CARDS] = {1, [1 ... (SNDRV_CARDS - 1)] = 1};
46 46
47module_param_array(enable, bool, NULL, 0444); 47module_param_array(enable, bool, NULL, 0444);
48MODULE_PARM_DESC(enable, "Enable tm6000x soundcard. default enabled."); 48MODULE_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
1374static int __init tm6000_module_init(void) 1374module_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
1391static void __exit tm6000_module_exit(void)
1392{
1393 /* deregister at USB subsystem */
1394 usb_deregister(&tm6000_usb_driver);
1395}
1396
1397module_init(tm6000_module_init);
1398module_exit(tm6000_module_exit);
1399 1375
1400MODULE_DESCRIPTION("Trident TVMaster TM5600/TM6000/TM6010 USB2 adapter"); 1376MODULE_DESCRIPTION("Trident TVMaster TM5600/TM6000/TM6010 USB2 adapter");
1401MODULE_AUTHOR("Mauro Carvalho Chehab"); 1377MODULE_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 */
55static int debug; 55static bool debug;
56module_param(debug, bool, 0644); 56module_param(debug, bool, 0644);
57MODULE_PARM_DESC(debug, "Debug level (0-1)"); 57MODULE_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 */
66static int debug; 66static bool debug;
67module_param(debug, bool, 0644); 67module_param(debug, bool, 0644);
68MODULE_PARM_DESC(debug, "Debug level (0-2)"); 68MODULE_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");
34MODULE_AUTHOR("T. Adachi, Takeru KOMORIYA, Hans Verkuil"); 34MODULE_AUTHOR("T. Adachi, Takeru KOMORIYA, Hans Verkuil");
35MODULE_LICENSE("GPL"); 35MODULE_LICENSE("GPL");
36 36
37static int debug; 37static bool debug;
38module_param(debug, bool, 0644); 38module_param(debug, bool, 0644);
39 39
40MODULE_PARM_DESC(debug, "Debug level (0-1)"); 40MODULE_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>");
34MODULE_DESCRIPTION("VIA framebuffer-based camera controller driver"); 34MODULE_DESCRIPTION("VIA framebuffer-based camera controller driver");
35MODULE_LICENSE("GPL"); 35MODULE_LICENSE("GPL");
36 36
37static int flip_image; 37static bool flip_image;
38module_param(flip_image, bool, 0444); 38module_param(flip_image, bool, 0444);
39MODULE_PARM_DESC(flip_image, 39MODULE_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
43static int override_serial; 43static bool override_serial;
44module_param(override_serial, bool, 0444); 44module_param(override_serial, bool, 0444);
45MODULE_PARM_DESC(override_serial, 45MODULE_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
60static int lml33dpath; /* default = 0 60static 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 */
51static int zr36060_codecs; 51static int zr36060_codecs;
52 52
53static int low_bitrate; 53static bool low_bitrate;
54module_param(low_bitrate, bool, 0); 54module_param(low_bitrate, bool, 0);
55MODULE_PARM_DESC(low_bitrate, "Buz compatibility option, halves bitrate"); 55MODULE_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 1698module_usb_driver(zr364xx_driver);
1699static 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
1711static 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
1718module_init(zr364xx_init);
1719module_exit(zr364xx_exit);
1720 1699
1721MODULE_AUTHOR(DRIVER_AUTHOR); 1700MODULE_AUTHOR(DRIVER_AUTHOR);
1722MODULE_DESCRIPTION(DRIVER_DESC); 1701MODULE_DESCRIPTION(DRIVER_DESC);