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