diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-02-26 22:04:49 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-02-26 22:04:49 -0300 |
commit | 9f6504985990a61609caaa94fac0724d11be4803 (patch) | |
tree | f5a919b5323af844a70a36dedacb66134c3f345a /linux/drivers/media/dvb/siano/smscoreapi.c | |
parent | d1464bc07fbaa366eeb73d9bc0b2b2ed27d6edb9 (diff) | |
parent | 9c48ff787617a8ab6870134701fa0ee1e7df608e (diff) | |
download | mediapointer-dvb-s2-9f6504985990a61609caaa94fac0724d11be4803.tar.gz mediapointer-dvb-s2-9f6504985990a61609caaa94fac0724d11be4803.tar.bz2 |
merge: http://linuxtv.org/hg/~mkrufky/sms1xxx
From: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'linux/drivers/media/dvb/siano/smscoreapi.c')
-rw-r--r-- | linux/drivers/media/dvb/siano/smscoreapi.c | 120 |
1 files changed, 102 insertions, 18 deletions
diff --git a/linux/drivers/media/dvb/siano/smscoreapi.c b/linux/drivers/media/dvb/siano/smscoreapi.c index b19dd9c7d..812b57ab7 100644 --- a/linux/drivers/media/dvb/siano/smscoreapi.c +++ b/linux/drivers/media/dvb/siano/smscoreapi.c @@ -3,7 +3,7 @@ * * This file contains implementation for the interface to sms core component * - * author: Anatoly Greenblat + * author: Uri Shkolnik * * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc. * @@ -34,8 +34,8 @@ #include "smscoreapi.h" #include "sms-cards.h" -int sms_debug; -module_param_named(debug, sms_debug, int, 0644); +int sms_dbg; +module_param_named(debug, sms_dbg, int, 0644); MODULE_PARM_DESC(debug, "set debug level (info=1, adv=2 (or-able))"); struct smscore_device_notifyee_t { @@ -105,11 +105,13 @@ int smscore_led_state(struct smscore_device_t *core, int led) core->led_state = led; return core->led_state; } +EXPORT_SYMBOL_GPL(smscore_set_board_id); int smscore_get_board_id(struct smscore_device_t *core) { return core->board_id; } +EXPORT_SYMBOL_GPL(smscore_get_board_id); struct smscore_registry_entry_t { struct list_head entry; @@ -170,6 +172,7 @@ int smscore_registry_getmode(char *devpath) return default_mode; } +EXPORT_SYMBOL_GPL(smscore_registry_getmode); static enum sms_device_type_st smscore_registry_gettype(char *devpath) { @@ -261,6 +264,7 @@ int smscore_register_hotplug(hotplug_t hotplug) return rc; } +EXPORT_SYMBOL_GPL(smscore_register_hotplug); /** * unregister a client callback that called when device plugged in/unplugged @@ -289,6 +293,7 @@ void smscore_unregister_hotplug(hotplug_t hotplug) kmutex_unlock(&g_smscore_deviceslock); } +EXPORT_SYMBOL_GPL(smscore_unregister_hotplug); static void smscore_notify_clients(struct smscore_device_t *coredev) { @@ -432,6 +437,7 @@ int smscore_register_device(struct smsdevice_params_t *params, return 0; } +EXPORT_SYMBOL_GPL(smscore_register_device); /** * sets initial device mode and notifies client hotplugs that device is ready @@ -460,6 +466,7 @@ int smscore_start_device(struct smscore_device_t *coredev) return rc; } +EXPORT_SYMBOL_GPL(smscore_start_device); static int smscore_sendrequest_and_wait(struct smscore_device_t *coredev, void *buffer, size_t size, @@ -688,6 +695,7 @@ void smscore_unregister_device(struct smscore_device_t *coredev) sms_info("device %p destroyed", coredev); } +EXPORT_SYMBOL_GPL(smscore_unregister_device); static int smscore_detect_mode(struct smscore_device_t *coredev) { @@ -732,7 +740,7 @@ static char *smscore_fw_lkup[][SMS_NUM_OF_DEVICE_TYPES] = { /*DVBH*/ {"none", "dvb_nova_12mhz.inp", "dvb_nova_12mhz_b0.inp", "none"}, /*TDMB*/ - {"none", "tdmb_nova_12mhz.inp", "none", "none"}, + {"none", "tdmb_nova_12mhz.inp", "tdmb_nova_12mhz_b0.inp", "none"}, /*DABIP*/ {"none", "none", "none", "none"}, /*BDA*/ @@ -879,6 +887,7 @@ int smscore_get_device_mode(struct smscore_device_t *coredev) { return coredev->mode; } +EXPORT_SYMBOL_GPL(smscore_get_device_mode); /** * find client by response id & type within the clients list. @@ -960,10 +969,6 @@ void smscore_onresponse(struct smscore_device_t *coredev, #endif /* If no client registered for type & id, * check for control client where type is not registered */ -#if 0 - if (!client) - client = smscore_find_client(coredev, 0, phdr->msgDstId); -#endif if (client) rc = client->onresponse_handler(client->context, cb); @@ -1017,6 +1022,7 @@ void smscore_onresponse(struct smscore_device_t *coredev, smscore_putbuffer(coredev, cb); } } +EXPORT_SYMBOL_GPL(smscore_onresponse); /** * return pointer to next free buffer descriptor from core pool @@ -1042,6 +1048,7 @@ struct smscore_buffer_t *smscore_getbuffer(struct smscore_device_t *coredev) return cb; } +EXPORT_SYMBOL_GPL(smscore_getbuffer); /** * return buffer descriptor to a pool @@ -1056,6 +1063,7 @@ void smscore_putbuffer(struct smscore_device_t *coredev, { list_add_locked(&cb->entry, &coredev->buffers, &coredev->bufferslock); } +EXPORT_SYMBOL_GPL(smscore_putbuffer); static int smscore_validate_client(struct smscore_device_t *coredev, struct smscore_client_t *client, @@ -1135,6 +1143,7 @@ int smscore_register_client(struct smscore_device_t *coredev, return 0; } +EXPORT_SYMBOL_GPL(smscore_register_client); /** * frees smsclient object and all subclients associated with it @@ -1165,6 +1174,7 @@ void smscore_unregister_client(struct smscore_client_t *client) spin_unlock_irqrestore(&coredev->clientslock, flags); } +EXPORT_SYMBOL_GPL(smscore_unregister_client); /** * verifies that source id is not taken by another client, @@ -1204,6 +1214,7 @@ int smsclient_sendrequest(struct smscore_client_t *client, return coredev->sendrequest_handler(coredev->context, buffer, size); } +EXPORT_SYMBOL_GPL(smsclient_sendrequest); #if 0 /** @@ -1337,12 +1348,67 @@ static int __init smscore_module_init(void) INIT_LIST_HEAD(&g_smscore_registry); kmutex_init(&g_smscore_registrylock); - /* USB Register */ - rc = smsusb_register(); +#if 0 /* def SMS_CHAR_CLIENT */ + /* Char interface Register */ + rc = smschar_register(); + if (rc) { + sms_err("Error registering char device client.\n"); + goto smschar_error; + } +#endif +#if 0 /* def SMS_DVB_CLIENT */ /* DVB Register */ rc = smsdvb_register(); + if (rc) { + sms_err("Error registering DVB client.\n"); + goto smsdvb_error; + } +#endif + +#if 0 /* def SMS_NET_CLIENT */ + /* DVB Register */ + rc = smsnet_register(); + if (rc) { + sms_err("Error registering Network client.\n"); + goto smsnet_error; + } +#endif +#if 0 /* def SMS_USB_BUS_DRV */ + /* USB Register */ + rc = smsusb_register(); + if (rc) { + sms_err("Error registering USB bus driver.\n"); + goto sms_bus_drv_error; + } +#endif + +#if 0 /* def SMS_SPI_BUS_DRV */ + /* USB Register */ + rc = smsspi_register(); + if (rc) { + sms_err("Error registering spi bus driver.\n"); + goto sms_bus_drv_error; + } +#endif + + return rc; +#if 0 +sms_bus_drv_error: +#endif /* 0 */ +#if 0 /* def SMS_NET_CLIENT */ + smsnet_unregister(); +smsnet_error: +#endif +#if 0 /* def SMS_DVB_CLIENT */ + smsdvb_unregister(); +smsdvb_error: +#endif +#if 0 /* def SMS_CHAR_CLIENT */ + smschar_unregister(); +smschar_error: +#endif sms_debug("rc %d", rc); return rc; @@ -1350,6 +1416,30 @@ static int __init smscore_module_init(void) static void __exit smscore_module_exit(void) { +#if 0 /* def SMS_CHAR_CLIENT */ + /* Char interface UnRegister */ + smschar_unregister(); +#endif + +#if 0 /* def SMS_DVB_CLIENT */ + /* DVB UnRegister */ + smsdvb_unregister(); +#endif + +#if 0 /* def SMS_NET_CLIENT */ + /* NET UnRegister */ + smsnet_unregister(); +#endif + +#if 0 /* def SMS_USB_BUS_DRV */ + /* Unregister USB */ + smsusb_unregister(); +#endif + +#if 0 /* def SMS_SPI_BUS_DRV */ + /* Unregister SPI */ + smsspi_unregister(); +#endif kmutex_lock(&g_smscore_deviceslock); while (!list_empty(&g_smscore_notifyees)) { @@ -1373,18 +1463,12 @@ static void __exit smscore_module_exit(void) } kmutex_unlock(&g_smscore_registrylock); - /* DVB UnRegister */ - smsdvb_unregister(); - - /* Unregister USB */ - smsusb_unregister(); - sms_debug(""); } module_init(smscore_module_init); module_exit(smscore_module_exit); -MODULE_DESCRIPTION("Driver for the Siano SMS1XXX USB dongle"); -MODULE_AUTHOR("Siano Mobile Silicon,,, (doronc@siano-ms.com)"); +MODULE_DESCRIPTION("Siano MDTV Core module"); +MODULE_AUTHOR("Siano Mobile Silicon, Inc. (uris@siano-ms.com)"); MODULE_LICENSE("GPL"); |