V4L/DVB (13456): s2250: Change module structure
authorPete Eberlein <pete@sensoray.com>
Mon, 16 Nov 2009 18:13:51 +0000 (15:13 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 5 Dec 2009 20:42:17 +0000 (18:42 -0200)
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>
drivers/staging/go7007/Makefile
drivers/staging/go7007/go7007-driver.c
drivers/staging/go7007/go7007-usb.c
drivers/staging/go7007/s2250-board.c
drivers/staging/go7007/s2250-loader.c

index 1301caa..d37b7ed 100644 (file)
@@ -5,7 +5,7 @@
 
 obj-$(CONFIG_VIDEO_GO7007) += go7007.o
 obj-$(CONFIG_VIDEO_GO7007_USB) += go7007-usb.o
-obj-$(CONFIG_VIDEO_GO7007_USB_S2250_BOARD) += s2250.o
+obj-$(CONFIG_VIDEO_GO7007_USB_S2250_BOARD) += s2250.o s2250-loader.o
 obj-$(CONFIG_VIDEO_GO7007_SAA7113) += wis-saa7113.o
 obj-$(CONFIG_VIDEO_GO7007_OV7640) += wis-ov7640.o
 obj-$(CONFIG_VIDEO_GO7007_SAA7115) += wis-saa7115.o
@@ -17,7 +17,7 @@ obj-$(CONFIG_VIDEO_GO7007_TW2804) += wis-tw2804.o
 go7007-objs += go7007-v4l2.o go7007-driver.o go7007-i2c.o go7007-fw.o \
                snd-go7007.o
 
-s2250-objs += s2250-board.o s2250-loader.o
+s2250-objs += s2250-board.o
 
 # Uncomment when the saa7134 patches get into upstream
 #ifneq ($(CONFIG_VIDEO_SAA7134),)
index 869430e..c5dc3b6 100644 (file)
@@ -219,7 +219,7 @@ static int init_i2c_module(struct i2c_adapter *adapter, const char *type,
                modname = "wis-ov7640";
                break;
        case I2C_DRIVERID_S2250:
-               modname = "s2250-board";
+               modname = "s2250";
                break;
        default:
                modname = NULL;
index f17e7b3..1e89dc0 100644 (file)
@@ -425,7 +425,7 @@ static struct go7007_usb_board board_sensoray_2250 = {
                .num_i2c_devs    = 1,
                .i2c_devs        = {
                        {
-                               .type   = "s2250_board",
+                               .type   = "s2250",
                                .id     = I2C_DRIVERID_S2250,
                                .addr   = 0x43,
                        },
index f4a6541..a69f768 100644 (file)
 #include <linux/usb.h>
 #include <linux/i2c.h>
 #include <linux/videodev2.h>
+#include <media/v4l2-device.h>
 #include <media/v4l2-common.h>
-#include "s2250-loader.h"
+#include <media/v4l2-i2c-drv.h>
 #include "go7007-priv.h"
-#include "wis-i2c.h"
+
+MODULE_DESCRIPTION("Sensoray 2250/2251 i2c v4l2 subdev driver");
+MODULE_LICENSE("GPL v2");
 
 #define TLV320_ADDRESS      0x34
 #define VPX322_ADDR_ANALOGCONTROL1     0x02
@@ -575,7 +578,7 @@ static int s2250_probe(struct i2c_client *client,
        dec->audio = audio;
        i2c_set_clientdata(client, dec);
 
-       printk(KERN_DEBUG
+       printk(KERN_INFO
               "s2250: initializing video decoder on %s\n",
               adapter->name);
 
@@ -649,45 +652,15 @@ static int s2250_remove(struct i2c_client *client)
 }
 
 static struct i2c_device_id s2250_id[] = {
-       { "s2250_board", 0 },
+       { "s2250", 0 },
        { }
 };
-
-static struct i2c_driver s2250_driver = {
-       .driver = {
-               .name   = "Sensoray 2250 board driver",
-       },
-       .probe          = s2250_probe,
-       .remove         = s2250_remove,
-       .command        = s2250_command,
-       .id_table       = s2250_id,
+MODULE_DEVICE_TABLE(i2c, s2250_id);
+
+static struct v4l2_i2c_driver_data v4l2_i2c_data = {
+       .name = "s2250",
+       .probe = s2250_probe,
+       .remove = s2250_remove,
+       .command = s2250_command,
+       .id_table = s2250_id,
 };
-
-static int __init s2250_init(void)
-{
-       int r;
-
-       r = s2250loader_init();
-       if (r < 0)
-               return r;
-
-       r = i2c_add_driver(&s2250_driver);
-       if (r < 0)
-               s2250loader_cleanup();
-
-       return r;
-}
-
-static void __exit s2250_cleanup(void)
-{
-       i2c_del_driver(&s2250_driver);
-
-       s2250loader_cleanup();
-}
-
-module_init(s2250_init);
-module_exit(s2250_cleanup);
-
-MODULE_AUTHOR("");
-MODULE_DESCRIPTION("Board driver for Sensoryray 2250");
-MODULE_LICENSE("GPL v2");
index d7bf829..c152ab9 100644 (file)
@@ -162,7 +162,7 @@ static struct usb_driver s2250loader_driver = {
        .id_table       = s2250loader_ids,
 };
 
-int s2250loader_init(void)
+static int __init s2250loader_init(void)
 {
        int r;
        unsigned i = 0;
@@ -179,11 +179,15 @@ int s2250loader_init(void)
        printk(KERN_INFO "s2250loader_init: driver registered\n");
        return 0;
 }
-EXPORT_SYMBOL(s2250loader_init);
+module_init(s2250loader_init);
 
-void s2250loader_cleanup(void)
+static void __exit s2250loader_cleanup(void)
 {
        printk(KERN_INFO "s2250loader_cleanup\n");
        usb_deregister(&s2250loader_driver);
 }
-EXPORT_SYMBOL(s2250loader_cleanup);
+module_exit(s2250loader_cleanup);
+
+MODULE_AUTHOR("");
+MODULE_DESCRIPTION("firmware loader for Sensoray 2250/2251");
+MODULE_LICENSE("GPL v2");