diff options
| author | Pete Eberlein <pete@sensoray.com> | 2009-11-16 13:13:51 -0500 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-12-05 15:42:17 -0500 |
| commit | 832b6a8917f050a9cbeeb69e080733128d562f59 (patch) | |
| tree | abcd8c463aa2c28cfe15cfeabb1ee676da204f81 | |
| parent | 694a101e6acb865f5405a95c358eea43c813cf24 (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/Makefile | 4 | ||||
| -rw-r--r-- | drivers/staging/go7007/go7007-driver.c | 2 | ||||
| -rw-r--r-- | drivers/staging/go7007/go7007-usb.c | 2 | ||||
| -rw-r--r-- | drivers/staging/go7007/s2250-board.c | 57 | ||||
| -rw-r--r-- | drivers/staging/go7007/s2250-loader.c | 12 |
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 | ||
| 6 | obj-$(CONFIG_VIDEO_GO7007) += go7007.o | 6 | obj-$(CONFIG_VIDEO_GO7007) += go7007.o |
| 7 | obj-$(CONFIG_VIDEO_GO7007_USB) += go7007-usb.o | 7 | obj-$(CONFIG_VIDEO_GO7007_USB) += go7007-usb.o |
| 8 | obj-$(CONFIG_VIDEO_GO7007_USB_S2250_BOARD) += s2250.o | 8 | obj-$(CONFIG_VIDEO_GO7007_USB_S2250_BOARD) += s2250.o s2250-loader.o |
| 9 | obj-$(CONFIG_VIDEO_GO7007_SAA7113) += wis-saa7113.o | 9 | obj-$(CONFIG_VIDEO_GO7007_SAA7113) += wis-saa7113.o |
| 10 | obj-$(CONFIG_VIDEO_GO7007_OV7640) += wis-ov7640.o | 10 | obj-$(CONFIG_VIDEO_GO7007_OV7640) += wis-ov7640.o |
| 11 | obj-$(CONFIG_VIDEO_GO7007_SAA7115) += wis-saa7115.o | 11 | obj-$(CONFIG_VIDEO_GO7007_SAA7115) += wis-saa7115.o |
| @@ -17,7 +17,7 @@ obj-$(CONFIG_VIDEO_GO7007_TW2804) += wis-tw2804.o | |||
| 17 | go7007-objs += go7007-v4l2.o go7007-driver.o go7007-i2c.o go7007-fw.o \ | 17 | go7007-objs += go7007-v4l2.o go7007-driver.o go7007-i2c.o go7007-fw.o \ |
| 18 | snd-go7007.o | 18 | snd-go7007.o |
| 19 | 19 | ||
| 20 | s2250-objs += s2250-board.o s2250-loader.o | 20 | s2250-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 | |
| 28 | MODULE_DESCRIPTION("Sensoray 2250/2251 i2c v4l2 subdev driver"); | ||
| 29 | MODULE_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 | ||
| 651 | static struct i2c_device_id s2250_id[] = { | 654 | static struct i2c_device_id s2250_id[] = { |
| 652 | { "s2250_board", 0 }, | 655 | { "s2250", 0 }, |
| 653 | { } | 656 | { } |
| 654 | }; | 657 | }; |
| 655 | 658 | MODULE_DEVICE_TABLE(i2c, s2250_id); | |
| 656 | static struct i2c_driver s2250_driver = { | 659 | |
| 657 | .driver = { | 660 | static 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 | |||
| 666 | static 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 | |||
| 681 | static void __exit s2250_cleanup(void) | ||
| 682 | { | ||
| 683 | i2c_del_driver(&s2250_driver); | ||
| 684 | |||
| 685 | s2250loader_cleanup(); | ||
| 686 | } | ||
| 687 | |||
| 688 | module_init(s2250_init); | ||
| 689 | module_exit(s2250_cleanup); | ||
| 690 | |||
| 691 | MODULE_AUTHOR(""); | ||
| 692 | MODULE_DESCRIPTION("Board driver for Sensoryray 2250"); | ||
| 693 | MODULE_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 | ||
| 165 | int s2250loader_init(void) | 165 | static 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 | } |
| 182 | EXPORT_SYMBOL(s2250loader_init); | 182 | module_init(s2250loader_init); |
| 183 | 183 | ||
| 184 | void s2250loader_cleanup(void) | 184 | static 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 | } |
| 189 | EXPORT_SYMBOL(s2250loader_cleanup); | 189 | module_exit(s2250loader_cleanup); |
| 190 | |||
| 191 | MODULE_AUTHOR(""); | ||
| 192 | MODULE_DESCRIPTION("firmware loader for Sensoray 2250/2251"); | ||
| 193 | MODULE_LICENSE("GPL v2"); | ||
