The patch number 8266 was added via Michael Krufky <[EMAIL PROTECTED]>
to http://linuxtv.org/hg/v4l-dvb master development tree.

Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel

If anyone has any objections, please let us know by sending a message to:
        [EMAIL PROTECTED]

------

From: Steven Toth  <[EMAIL PROTECTED]>
sms1xxx: merge modules


Signed-off-by: Steven Toth <[EMAIL PROTECTED]>
Signed-off-by: Michael Krufky <[EMAIL PROTECTED]>


---

 linux/drivers/media/mdtv/smscoreapi.h |   31 +++++++++++++
 linux/drivers/media/mdtv/smsdvb.c     |   61 --------------------------
 linux/drivers/media/mdtv/smsusb.c     |   20 ++++++++
 3 files changed, 51 insertions(+), 61 deletions(-)

diff -r f680da17562c -r bcebc5bba0a0 linux/drivers/media/mdtv/smscoreapi.h
--- a/linux/drivers/media/mdtv/smscoreapi.h     Thu May 22 12:43:04 2008 -0400
+++ b/linux/drivers/media/mdtv/smscoreapi.h     Thu May 22 14:01:02 2008 -0400
@@ -1,5 +1,10 @@
 #ifndef __smscoreapi_h__
 #define __smscoreapi_h__
+
+#include "dmxdev.h"
+#include "dvbdev.h"
+#include "dvb_demux.h"
+#include "dvb_frontend.h"
 
 /* From sysksyms.h */
 
@@ -468,6 +473,28 @@ typedef struct SMSHOSTLIB_I2C_RES_S
 
 /* End types.h */
 
+typedef struct _smsdvb_client
+{
+       struct list_head entry;
+
+       smscore_device_t        *coredev;
+       smscore_client_t        *smsclient;
+
+       struct dvb_adapter      adapter;
+       struct dvb_demux        demux;
+       struct dmxdev           dmxdev;
+       struct dvb_frontend     frontend;
+
+       fe_status_t                     fe_status;
+       int                                     fe_ber, fe_snr, 
fe_signal_strength;
+
+       struct completion       tune_done, stat_done;
+
+       // todo: save freq/band instead whole struct
+       struct dvb_frontend_parameters fe_params;
+
+} smsdvb_client_t;
+
 extern void smscore_registry_setmode(char *devpath, int mode);
 extern int smscore_registry_getmode(char *devpath);
 
@@ -495,4 +522,8 @@ extern smscore_buffer_t *smscore_getbuff
 extern smscore_buffer_t *smscore_getbuffer(smscore_device_t *coredev);
 extern void smscore_putbuffer(smscore_device_t *coredev, smscore_buffer_t *cb);
 
+/* smsdvb.c */
+int smsdvb_hotplug(smscore_device_t *coredev, struct device* device, int 
arrival);
+void smsdvb_unregister_client(smsdvb_client_t* client);
+
 #endif // __smscoreapi_h__
diff -r f680da17562c -r bcebc5bba0a0 linux/drivers/media/mdtv/smsdvb.c
--- a/linux/drivers/media/mdtv/smsdvb.c Thu May 22 12:43:04 2008 -0400
+++ b/linux/drivers/media/mdtv/smsdvb.c Thu May 22 14:01:02 2008 -0400
@@ -1,36 +1,9 @@
 #include <linux/module.h>
 #include <linux/init.h>
 
-#include "dmxdev.h"
-#include "dvbdev.h"
-#include "dvb_demux.h"
-#include "dvb_frontend.h"
-
 #include "smscoreapi.h"
 
 DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
-
-typedef struct _smsdvb_client
-{
-       struct list_head entry;
-
-       smscore_device_t        *coredev;
-       smscore_client_t        *smsclient;
-
-       struct dvb_adapter      adapter;
-       struct dvb_demux        demux;
-       struct dmxdev           dmxdev;
-       struct dvb_frontend     frontend;
-
-       fe_status_t                     fe_status;
-       int                                     fe_ber, fe_snr, 
fe_signal_strength;
-
-       struct completion       tune_done, stat_done;
-
-       // todo: save freq/band instead whole struct
-       struct dvb_frontend_parameters fe_params;
-
-} smsdvb_client_t;
 
 struct list_head g_smsdvb_clients;
 kmutex_t g_smsdvb_clientslock;
@@ -402,37 +375,3 @@ adapter_error:
        return rc;
 }
 
-int smsdvb_module_init(void)
-{
-       int rc;
-
-       INIT_LIST_HEAD(&g_smsdvb_clients);
-       kmutex_init(&g_smsdvb_clientslock);
-
-       rc = smscore_register_hotplug(smsdvb_hotplug);
-
-       printk(KERN_INFO "%s, rc %d\n", __FUNCTION__, rc);
-
-       return rc;
-}
-
-void smsdvb_module_exit(void)
-{
-       smscore_unregister_hotplug(smsdvb_hotplug);
-
-       kmutex_lock(&g_smsdvb_clientslock);
-
-       while (!list_empty(&g_smsdvb_clients))
-               smsdvb_unregister_client((smsdvb_client_t*) 
g_smsdvb_clients.next);
-
-       kmutex_unlock(&g_smsdvb_clientslock);
-
-       printk(KERN_INFO "%s\n", __FUNCTION__);
-}
-
-module_init(smsdvb_module_init);
-module_exit(smsdvb_module_exit);
-
-MODULE_DESCRIPTION("smsdvb dvb-api module");
-MODULE_AUTHOR("Anatoly Greenblatt,,, ([EMAIL PROTECTED])");
-MODULE_LICENSE("GPL");
diff -r f680da17562c -r bcebc5bba0a0 linux/drivers/media/mdtv/smsusb.c
--- a/linux/drivers/media/mdtv/smsusb.c Thu May 22 12:43:04 2008 -0400
+++ b/linux/drivers/media/mdtv/smsusb.c Thu May 22 14:01:02 2008 -0400
@@ -405,12 +405,21 @@ static struct usb_driver smsusb_driver =
        .id_table               = smsusb_id_table,
 };
 
+extern struct list_head g_smsdvb_clients;
+kmutex_t g_smsdvb_clientslock;
+
 int smsusb_module_init(void)
 {
        int rc = usb_register(&smsusb_driver);
        if (rc)
                printk(KERN_INFO "usb_register failed. Error number %d\n", rc);
 
+       /* Bring up the dvb componenets */
+       INIT_LIST_HEAD(&g_smsdvb_clients);
+       kmutex_init(&g_smsdvb_clientslock);
+
+       rc = smscore_register_hotplug(smsdvb_hotplug);
+
        printk(KERN_INFO "%s\n", __FUNCTION__);
 
        return rc;
@@ -418,6 +427,17 @@ int smsusb_module_init(void)
 
 void smsusb_module_exit(void)
 {
+       /* Tear down the DVB components */
+       smscore_unregister_hotplug(smsdvb_hotplug);
+
+       kmutex_lock(&g_smsdvb_clientslock);
+
+       while (!list_empty(&g_smsdvb_clients))
+               smsdvb_unregister_client((smsdvb_client_t*) 
g_smsdvb_clients.next);
+
+       kmutex_unlock(&g_smsdvb_clientslock);
+
+       /* Regular USB Cleanup */
        usb_deregister(&smsusb_driver);
        printk(KERN_INFO "%s\n", __FUNCTION__);
 }


---

Patch is available at: 
http://linuxtv.org/hg/v4l-dvb/rev/bcebc5bba0a02a3b2b1a0d029adcaf83656f7a22

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to