aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPete Eberlein <pete@sensoray.com>2009-11-16 13:13:51 -0500
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-05 15:42:17 -0500
commit832b6a8917f050a9cbeeb69e080733128d562f59 (patch)
treeabcd8c463aa2c28cfe15cfeabb1ee676da204f81
parent694a101e6acb865f5405a95c358eea43c813cf24 (diff)
V4L/DVB (13456): s2250: Change module structure
The s2250-board i2c module was converted to use v4l2-i2c-drv.h in preparation for its subdev conversion. This change prevented the s2250-loader from being initialized within the same module due to the module_init and module_exit function definitions in v4l2-i2c-drv.h. Therefore, s2250-loader is now its own module, and the header for exporting s2250-loader functions is no longer needed. The s2250 i2c module name was "2220-board" in some places, and was changed to "s2250". Signed-off-by: Pete Eberlein <pete@sensoray.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/staging/go7007/Makefile4
-rw-r--r--drivers/staging/go7007/go7007-driver.c2
-rw-r--r--drivers/staging/go7007/go7007-usb.c2
-rw-r--r--drivers/staging/go7007/s2250-board.c57
-rw-r--r--drivers/staging/go7007/s2250-loader.c12
5 files changed, 27 insertions, 50 deletions
diff --git a/drivers/staging/go7007/Makefile b/drivers/staging/go7007/Makefile
index 1301caa7495d..d37b7edc2793 100644
--- a/drivers/staging/go7007/Makefile
+++ b/drivers/staging/go7007/Makefile
@@ -5,7 +5,7 @@
5 5
6obj-$(CONFIG_VIDEO_GO7007) += go7007.o 6obj-$(CONFIG_VIDEO_GO7007) += go7007.o
7obj-$(CONFIG_VIDEO_GO7007_USB) += go7007-usb.o 7obj-$(CONFIG_VIDEO_GO7007_USB) += go7007-usb.o
8obj-$(CONFIG_VIDEO_GO7007_USB_S2250_BOARD) += s2250.o 8obj-$(CONFIG_VIDEO_GO7007_USB_S2250_BOARD) += s2250.o s2250-loader.o
9obj-$(CONFIG_VIDEO_GO7007_SAA7113) += wis-saa7113.o 9obj-$(CONFIG_VIDEO_GO7007_SAA7113) += wis-saa7113.o
10obj-$(CONFIG_VIDEO_GO7007_OV7640) += wis-ov7640.o 10obj-$(CONFIG_VIDEO_GO7007_OV7640) += wis-ov7640.o
11obj-$(CONFIG_VIDEO_GO7007_SAA7115) += wis-saa7115.o 11obj-$(CONFIG_VIDEO_GO7007_SAA7115) += wis-saa7115.o
@@ -17,7 +17,7 @@ obj-$(CONFIG_VIDEO_GO7007_TW2804) += wis-tw2804.o
17go7007-objs += go7007-v4l2.o go7007-driver.o go7007-i2c.o go7007-fw.o \ 17go7007-objs += go7007-v4l2.o go7007-driver.o go7007-i2c.o go7007-fw.o \
18 snd-go7007.o 18 snd-go7007.o
19 19
20s2250-objs += s2250-board.o s2250-loader.o 20s2250-objs += s2250-board.o
21 21
22# Uncomment when the saa7134 patches get into upstream 22# Uncomment when the saa7134 patches get into upstream
23#ifneq ($(CONFIG_VIDEO_SAA7134),) 23#ifneq ($(CONFIG_VIDEO_SAA7134),)
diff --git a/drivers/staging/go7007/go7007-driver.c b/drivers/staging/go7007/go7007-driver.c
index 869430ec0319..c5dc3b64ac03 100644
--- a/drivers/staging/go7007/go7007-driver.c
+++ b/drivers/staging/go7007/go7007-driver.c
@@ -219,7 +219,7 @@ static int init_i2c_module(struct i2c_adapter *adapter, const char *type,
219 modname = "wis-ov7640"; 219 modname = "wis-ov7640";
220 break; 220 break;
221 case I2C_DRIVERID_S2250: 221 case I2C_DRIVERID_S2250:
222 modname = "s2250-board"; 222 modname = "s2250";
223 break; 223 break;
224 default: 224 default:
225 modname = NULL; 225 modname = NULL;
diff --git a/drivers/staging/go7007/go7007-usb.c b/drivers/staging/go7007/go7007-usb.c
index f17e7b337a15..1e89dc04ec23 100644
--- a/drivers/staging/go7007/go7007-usb.c
+++ b/drivers/staging/go7007/go7007-usb.c
@@ -425,7 +425,7 @@ static struct go7007_usb_board board_sensoray_2250 = {
425 .num_i2c_devs = 1, 425 .num_i2c_devs = 1,
426 .i2c_devs = { 426 .i2c_devs = {
427 { 427 {
428 .type = "s2250_board", 428 .type = "s2250",
429 .id = I2C_DRIVERID_S2250, 429 .id = I2C_DRIVERID_S2250,
430 .addr = 0x43, 430 .addr = 0x43,
431 }, 431 },
diff --git a/drivers/staging/go7007/s2250-board.c b/drivers/staging/go7007/s2250-board.c
index f4a6541c3e60..a69f7682295e 100644
--- a/drivers/staging/go7007/s2250-board.c
+++ b/drivers/staging/go7007/s2250-board.c
@@ -20,10 +20,13 @@
20#include <linux/usb.h> 20#include <linux/usb.h>
21#include <linux/i2c.h> 21#include <linux/i2c.h>
22#include <linux/videodev2.h> 22#include <linux/videodev2.h>
23#include <media/v4l2-device.h>
23#include <media/v4l2-common.h> 24#include <media/v4l2-common.h>
24#include "s2250-loader.h" 25#include <media/v4l2-i2c-drv.h>
25#include "go7007-priv.h" 26#include "go7007-priv.h"
26#include "wis-i2c.h" 27
28MODULE_DESCRIPTION("Sensoray 2250/2251 i2c v4l2 subdev driver");
29MODULE_LICENSE("GPL v2");
27 30
28#define TLV320_ADDRESS 0x34 31#define TLV320_ADDRESS 0x34
29#define VPX322_ADDR_ANALOGCONTROL1 0x02 32#define VPX322_ADDR_ANALOGCONTROL1 0x02
@@ -575,7 +578,7 @@ static int s2250_probe(struct i2c_client *client,
575 dec->audio = audio; 578 dec->audio = audio;
576 i2c_set_clientdata(client, dec); 579 i2c_set_clientdata(client, dec);
577 580
578 printk(KERN_DEBUG 581 printk(KERN_INFO
579 "s2250: initializing video decoder on %s\n", 582 "s2250: initializing video decoder on %s\n",
580 adapter->name); 583 adapter->name);
581 584
@@ -649,45 +652,15 @@ static int s2250_remove(struct i2c_client *client)
649} 652}
650 653
651static struct i2c_device_id s2250_id[] = { 654static struct i2c_device_id s2250_id[] = {
652 { "s2250_board", 0 }, 655 { "s2250", 0 },
653 { } 656 { }
654}; 657};
655 658MODULE_DEVICE_TABLE(i2c, s2250_id);
656static struct i2c_driver s2250_driver = { 659
657 .driver = { 660static struct v4l2_i2c_driver_data v4l2_i2c_data = {
658 .name = "Sensoray 2250 board driver", 661 .name = "s2250",
659 }, 662 .probe = s2250_probe,
660 .probe = s2250_probe, 663 .remove = s2250_remove,
661 .remove = s2250_remove, 664 .command = s2250_command,
662 .command = s2250_command, 665 .id_table = s2250_id,
663 .id_table = s2250_id,
664}; 666};
665
666static int __init s2250_init(void)
667{
668 int r;
669
670 r = s2250loader_init();
671 if (r < 0)
672 return r;
673
674 r = i2c_add_driver(&s2250_driver);
675 if (r < 0)
676 s2250loader_cleanup();
677
678 return r;
679}
680
681static void __exit s2250_cleanup(void)
682{
683 i2c_del_driver(&s2250_driver);
684
685 s2250loader_cleanup();
686}
687
688module_init(s2250_init);
689module_exit(s2250_cleanup);
690
691MODULE_AUTHOR("");
692MODULE_DESCRIPTION("Board driver for Sensoryray 2250");
693MODULE_LICENSE("GPL v2");
diff --git a/drivers/staging/go7007/s2250-loader.c b/drivers/staging/go7007/s2250-loader.c
index d7bf82983274..c152ab9be2fb 100644
--- a/drivers/staging/go7007/s2250-loader.c
+++ b/drivers/staging/go7007/s2250-loader.c
@@ -162,7 +162,7 @@ static struct usb_driver s2250loader_driver = {
162 .id_table = s2250loader_ids, 162 .id_table = s2250loader_ids,
163}; 163};
164 164
165int s2250loader_init(void) 165static int __init s2250loader_init(void)
166{ 166{
167 int r; 167 int r;
168 unsigned i = 0; 168 unsigned i = 0;
@@ -179,11 +179,15 @@ int s2250loader_init(void)
179 printk(KERN_INFO "s2250loader_init: driver registered\n"); 179 printk(KERN_INFO "s2250loader_init: driver registered\n");
180 return 0; 180 return 0;
181} 181}
182EXPORT_SYMBOL(s2250loader_init); 182module_init(s2250loader_init);
183 183
184void s2250loader_cleanup(void) 184static void __exit s2250loader_cleanup(void)
185{ 185{
186 printk(KERN_INFO "s2250loader_cleanup\n"); 186 printk(KERN_INFO "s2250loader_cleanup\n");
187 usb_deregister(&s2250loader_driver); 187 usb_deregister(&s2250loader_driver);
188} 188}
189EXPORT_SYMBOL(s2250loader_cleanup); 189module_exit(s2250loader_cleanup);
190
191MODULE_AUTHOR("");
192MODULE_DESCRIPTION("firmware loader for Sensoray 2250/2251");
193MODULE_LICENSE("GPL v2");