Loading drivers/media/mdtv/smscoreapi.h +31 −0 Original line number Diff line number Diff line #ifndef __smscoreapi_h__ #define __smscoreapi_h__ #include "dmxdev.h" #include "dvbdev.h" #include "dvb_demux.h" #include "dvb_frontend.h" /* From sysksyms.h */ #include <linux/version.h> Loading Loading @@ -453,6 +458,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); Loading Loading @@ -480,4 +507,8 @@ extern int smscore_map_common_buffer(smscore_device_t *coredev, struct vm_area_s 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__ drivers/media/mdtv/smsdvb.c +0 −61 Original line number Diff line number Diff line #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; Loading Loading @@ -402,37 +375,3 @@ int smsdvb_hotplug(smscore_device_t *coredev, struct device* device, int arrival 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,,, (anatolyg@siano-ms.com)"); MODULE_LICENSE("GPL"); drivers/media/mdtv/smsusb.c +20 −0 Original line number Diff line number Diff line Loading @@ -401,12 +401,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; Loading @@ -414,6 +423,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__); } Loading Loading
drivers/media/mdtv/smscoreapi.h +31 −0 Original line number Diff line number Diff line #ifndef __smscoreapi_h__ #define __smscoreapi_h__ #include "dmxdev.h" #include "dvbdev.h" #include "dvb_demux.h" #include "dvb_frontend.h" /* From sysksyms.h */ #include <linux/version.h> Loading Loading @@ -453,6 +458,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); Loading Loading @@ -480,4 +507,8 @@ extern int smscore_map_common_buffer(smscore_device_t *coredev, struct vm_area_s 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__
drivers/media/mdtv/smsdvb.c +0 −61 Original line number Diff line number Diff line #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; Loading Loading @@ -402,37 +375,3 @@ int smsdvb_hotplug(smscore_device_t *coredev, struct device* device, int arrival 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,,, (anatolyg@siano-ms.com)"); MODULE_LICENSE("GPL");
drivers/media/mdtv/smsusb.c +20 −0 Original line number Diff line number Diff line Loading @@ -401,12 +401,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; Loading @@ -414,6 +423,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__); } Loading