#define PWARNING(fmt, args...)
#endif
-typedef struct _smscore_device_notifyee
-{
+struct smscore_device_notifyee_t {
struct list_head entry;
hotplug_t hotplug;
-} smscore_device_notifyee_t;
+};
-typedef struct _smscore_subclient
-{
+struct smscore_idlist_t {
struct list_head entry;
int id;
int data_type;
-} smscore_idlist_t;
+};
-typedef struct _smscore_client
-{
+struct smscore_client_t {
struct list_head entry;
- smscore_device_t *coredev;
+ struct smscore_device_t *coredev;
void *context;
struct list_head idlist;
onresponse_t onresponse_handler;
onremove_t onremove_handler;
-} *psmscore_client_t;
-
-
+};
-typedef struct _smscore_device
-{
+struct smscore_device_t {
struct list_head entry;
struct list_head clients;
struct completion version_ex_done, data_download_done, trigger_done;
struct completion init_device_done, reload_start_done, resume_done;
-} *psmscore_device_t;
+};
-typedef struct _smscore_registry_entry
-{
+struct smscore_registry_entry_t {
struct list_head entry;
char devpath[32];
int mode;
- sms_device_type_st type;
-} smscore_registry_entry_t;
+ enum sms_device_type_st type;
+};
struct list_head g_smscore_notifyees;
struct list_head g_smscore_devices;
module_param(default_mode, int, 0644);
MODULE_PARM_DESC(default_mode, "default firmware id (device mode)");
-static smscore_registry_entry_t *smscore_find_registry(char *devpath)
+static struct smscore_registry_entry_t *smscore_find_registry(char *devpath)
{
- smscore_registry_entry_t *entry;
+ struct smscore_registry_entry_t *entry;
struct list_head *next;
kmutex_lock(&g_smscore_registrylock);
for (next = g_smscore_registry.next;
next != &g_smscore_registry;
next = next->next) {
- entry = (smscore_registry_entry_t *) next;
+ entry = (struct smscore_registry_entry_t *) next;
if (!strcmp(entry->devpath, devpath)) {
kmutex_unlock(&g_smscore_registrylock);
return entry;
}
}
- entry = (smscore_registry_entry_t *)
- kmalloc(sizeof(smscore_registry_entry_t), GFP_KERNEL);
+ entry = (struct smscore_registry_entry_t *)
+ kmalloc(sizeof(struct smscore_registry_entry_t),
+ GFP_KERNEL);
if (entry) {
entry->mode = default_mode;
strcpy(entry->devpath, devpath);
int smscore_registry_getmode(char *devpath)
{
- smscore_registry_entry_t *entry;
+ struct smscore_registry_entry_t *entry;
entry = smscore_find_registry(devpath);
if (entry)
return default_mode;
}
-sms_device_type_st smscore_registry_gettype(char *devpath)
+enum sms_device_type_st smscore_registry_gettype(char *devpath)
{
- smscore_registry_entry_t *entry;
+ struct smscore_registry_entry_t *entry;
entry = smscore_find_registry(devpath);
if (entry)
void smscore_registry_setmode(char *devpath, int mode)
{
- smscore_registry_entry_t *entry;
+ struct smscore_registry_entry_t *entry;
entry = smscore_find_registry(devpath);
if (entry)
printk(KERN_ERR "%s No registry found.\n", __func__);
}
-void smscore_registry_settype(char *devpath, sms_device_type_st type)
+void smscore_registry_settype(char *devpath, enum sms_device_type_st type)
{
- smscore_registry_entry_t *entry;
+ struct smscore_registry_entry_t *entry;
entry = smscore_find_registry(devpath);
if (entry)
*/
int smscore_register_hotplug(hotplug_t hotplug)
{
- smscore_device_notifyee_t *notifyee;
+ struct smscore_device_notifyee_t *notifyee;
struct list_head *next, *first;
int rc = 0;
kmutex_lock(&g_smscore_deviceslock);
- notifyee = kmalloc(sizeof(smscore_device_notifyee_t), GFP_KERNEL);
+ notifyee = kmalloc(sizeof(struct smscore_device_notifyee_t),
+ GFP_KERNEL);
if (notifyee) {
/* now notify callback about existing devices */
first = &g_smscore_devices;
for (next = first->next;
next != first && !rc;
next = next->next) {
- smscore_device_t *coredev = (smscore_device_t *) next;
+ struct smscore_device_t *coredev =
+ (struct smscore_device_t *) next;
rc = hotplug(coredev, coredev->device, 1);
}
first = &g_smscore_notifyees;
for (next = first->next; next != first;) {
- smscore_device_notifyee_t *notifyee =
- (smscore_device_notifyee_t *) next;
+ struct smscore_device_notifyee_t *notifyee =
+ (struct smscore_device_notifyee_t *) next;
next = next->next;
if (notifyee->hotplug == hotplug) {
kmutex_unlock(&g_smscore_deviceslock);
}
-void smscore_notify_clients(smscore_device_t *coredev)
+void smscore_notify_clients(struct smscore_device_t *coredev)
{
- smscore_client_t *client;
+ struct smscore_client_t *client;
/* the client must call smscore_unregister_client from remove handler */
while (!list_empty(&coredev->clients)) {
- client = (smscore_client_t *) coredev->clients.next;
+ client = (struct smscore_client_t *) coredev->clients.next;
client->onremove_handler(client->context);
}
}
-int smscore_notify_callbacks(smscore_device_t *coredev, struct device *device,
- int arrival)
+int smscore_notify_callbacks(struct smscore_device_t *coredev,
+ struct device *device, int arrival)
{
struct list_head *next, *first;
int rc = 0;
first = &g_smscore_notifyees;
for (next = first->next; next != first; next = next->next) {
- rc = ((smscore_device_notifyee_t *) next)->
+ rc = ((struct smscore_device_notifyee_t *) next)->
hotplug(coredev, device, arrival);
if (rc < 0)
break;
return rc;
}
-smscore_buffer_t *smscore_createbuffer(u8 *buffer, void *common_buffer,
+struct smscore_buffer_t *smscore_createbuffer(u8 *buffer, void *common_buffer,
dma_addr_t common_buffer_phys)
{
- smscore_buffer_t *cb = kmalloc(sizeof(smscore_buffer_t), GFP_KERNEL);
+ struct smscore_buffer_t *cb =
+ kmalloc(sizeof(struct smscore_buffer_t), GFP_KERNEL);
if (!cb) {
printk(KERN_INFO "%s kmalloc(...) failed\n", __func__);
return NULL;
*
* @return 0 on success, <0 on error.
*/
-int smscore_register_device(smsdevice_params_t *params,
- smscore_device_t **coredev)
+int smscore_register_device(struct smsdevice_params_t *params,
+ struct smscore_device_t **coredev)
{
- smscore_device_t *dev;
+ struct smscore_device_t *dev;
u8 *buffer;
- dev = kzalloc(sizeof(smscore_device_t), GFP_KERNEL);
+ dev = kzalloc(sizeof(struct smscore_device_t), GFP_KERNEL);
if (!dev) {
printk(KERN_INFO "%s kzalloc(...) failed\n", __func__);
return -ENOMEM;
for (buffer = dev->common_buffer;
dev->num_buffers < params->num_buffers;
dev->num_buffers++, buffer += params->buffer_size) {
- smscore_buffer_t *cb =
+ struct smscore_buffer_t *cb =
smscore_createbuffer(buffer, dev->common_buffer,
dev->common_buffer_phys);
if (!cb) {
*
* @return 0 on success, <0 on error.
*/
-int smscore_start_device(smscore_device_t *coredev)
+int smscore_start_device(struct smscore_device_t *coredev)
{
int rc = smscore_set_device_mode(
coredev, smscore_registry_getmode(coredev->devpath));
return rc;
}
-int smscore_sendrequest_and_wait(smscore_device_t *coredev, void *buffer,
+int smscore_sendrequest_and_wait(struct smscore_device_t *coredev, void *buffer,
size_t size, struct completion *completion)
{
int rc = coredev->sendrequest_handler(coredev->context, buffer, size);
0 : -ETIME;
}
-int smscore_load_firmware_family2(smscore_device_t *coredev, void *buffer,
- size_t size)
+int smscore_load_firmware_family2(struct smscore_device_t *coredev,
+ void *buffer, size_t size)
{
- SmsFirmware_ST *firmware = (SmsFirmware_ST *) buffer;
- SmsMsgHdr_ST *msg;
+ struct SmsFirmware_ST *firmware = (struct SmsFirmware_ST *) buffer;
+ struct SmsMsgHdr_ST *msg;
u32 mem_address = firmware->StartAddress;
u8 *payload = firmware->Payload;
int rc = 0;
}
/* PAGE_SIZE buffer shall be enough and dma aligned */
- msg = (SmsMsgHdr_ST *) kmalloc(PAGE_SIZE, GFP_KERNEL | GFP_DMA);
+ msg = (struct SmsMsgHdr_ST *) kmalloc(PAGE_SIZE, GFP_KERNEL | GFP_DMA);
if (!msg)
return -ENOMEM;
if (coredev->mode != DEVICE_MODE_NONE) {
PDEBUG("Sending reload command\n");
SMS_INIT_MSG(msg, MSG_SW_RELOAD_START_REQ,
- sizeof(SmsMsgHdr_ST));
+ sizeof(struct SmsMsgHdr_ST));
rc = smscore_sendrequest_and_wait(coredev, msg,
msg->msgLength,
&coredev->reload_start_done);
}
while (size && rc >= 0) {
- SmsDataDownload_ST *DataMsg = (SmsDataDownload_ST *) msg;
+ struct SmsDataDownload_ST *DataMsg =
+ (struct SmsDataDownload_ST *) msg;
int payload_size = min((int) size, SMS_MAX_PAYLOAD_SIZE);
SMS_INIT_MSG(msg, MSG_SMS_DATA_DOWNLOAD_REQ,
- (u16)(sizeof(SmsMsgHdr_ST) +
+ (u16)(sizeof(struct SmsMsgHdr_ST) +
sizeof(u32) + payload_size));
DataMsg->MemAddr = mem_address;
if (rc >= 0) {
if (coredev->mode == DEVICE_MODE_NONE) {
- SmsMsgData_ST *TriggerMsg = (SmsMsgData_ST *) msg;
+ struct SmsMsgData_ST *TriggerMsg =
+ (struct SmsMsgData_ST *) msg;
SMS_INIT_MSG(msg, MSG_SMS_SWDOWNLOAD_TRIGGER_REQ,
- sizeof(SmsMsgHdr_ST) +
+ sizeof(struct SmsMsgHdr_ST) +
sizeof(u32) * 5);
TriggerMsg->msgData[0] = firmware->StartAddress;
&coredev->trigger_done);
} else {
SMS_INIT_MSG(msg, MSG_SW_RELOAD_EXEC_REQ,
- sizeof(SmsMsgHdr_ST));
+ sizeof(struct SmsMsgHdr_ST));
rc = coredev->sendrequest_handler(coredev->context,
msg, msg->msgLength);
*
* @return 0 on success, <0 on error.
*/
-int smscore_load_firmware_from_file(smscore_device_t *coredev, char *filename,
+int smscore_load_firmware_from_file(struct smscore_device_t *coredev,
+ char *filename,
loadfirmware_t loadfirmware_handler)
{
int rc = -ENOENT;
return rc;
}
-int smscore_load_firmware_from_buffer(smscore_device_t *coredev, u8 *buffer,
- int size, int new_mode)
+int smscore_load_firmware_from_buffer(struct smscore_device_t *coredev,
+ u8 *buffer, int size, int new_mode)
{
PERROR("Feature not implemented yet\n");
return -EFAULT;
*
* @return 0 on success, <0 on error.
*/
-void smscore_unregister_device(smscore_device_t *coredev)
+void smscore_unregister_device(struct smscore_device_t *coredev)
{
- smscore_buffer_t *cb;
+ struct smscore_buffer_t *cb;
int num_buffers = 0;
int retry = 0;
printk(KERN_INFO "%s device %p destroyed\n", __func__, coredev);
}
-int smscore_detect_mode(smscore_device_t *coredev)
+int smscore_detect_mode(struct smscore_device_t *coredev)
{
- void *buffer = kmalloc(sizeof(SmsMsgHdr_ST) + SMS_DMA_ALIGNMENT,
+ void *buffer = kmalloc(sizeof(struct SmsMsgHdr_ST) + SMS_DMA_ALIGNMENT,
GFP_KERNEL | GFP_DMA);
- SmsMsgHdr_ST *msg = (SmsMsgHdr_ST *) SMS_ALIGN_ADDRESS(buffer);
+ struct SmsMsgHdr_ST *msg =
+ (struct SmsMsgHdr_ST *) SMS_ALIGN_ADDRESS(buffer);
int rc;
if (!buffer)
return -ENOMEM;
- SMS_INIT_MSG(msg, MSG_SMS_GET_VERSION_EX_REQ, sizeof(SmsMsgHdr_ST));
+ SMS_INIT_MSG(msg, MSG_SMS_GET_VERSION_EX_REQ,
+ sizeof(struct SmsMsgHdr_ST));
rc = smscore_sendrequest_and_wait(coredev, msg, msg->msgLength,
&coredev->version_ex_done);
*
* @return 0 on success, <0 on error.
*/
-int smscore_set_device_mode(smscore_device_t *coredev, int mode)
+int smscore_set_device_mode(struct smscore_device_t *coredev, int mode)
{
void *buffer;
int rc = 0;
- sms_device_type_st type;
+ enum sms_device_type_st type;
PDEBUG("set device mode to %d\n", mode);
if (coredev->device_flags & SMS_DEVICE_FAMILY2) {
printk(KERN_INFO "%s mode %d supported by running "
"firmware\n", __func__, mode);
- buffer = kmalloc(sizeof(SmsMsgData_ST) + SMS_DMA_ALIGNMENT,
- GFP_KERNEL | GFP_DMA);
+ buffer = kmalloc(sizeof(struct SmsMsgData_ST) +
+ SMS_DMA_ALIGNMENT, GFP_KERNEL | GFP_DMA);
if (buffer) {
- SmsMsgData_ST *msg =
- (SmsMsgData_ST *) SMS_ALIGN_ADDRESS(buffer);
+ struct SmsMsgData_ST *msg =
+ (struct SmsMsgData_ST *)
+ SMS_ALIGN_ADDRESS(buffer);
SMS_INIT_MSG(&msg->xMsgHeader, MSG_SMS_INIT_DEVICE_REQ,
- sizeof(SmsMsgData_ST));
+ sizeof(struct SmsMsgData_ST));
msg->msgData[0] = mode;
rc = smscore_sendrequest_and_wait(
*
* @return current mode
*/
-int smscore_get_device_mode(smscore_device_t *coredev)
+int smscore_get_device_mode(struct smscore_device_t *coredev)
{
return coredev->mode;
}
* @param id client id (SMS_DONT_CARE for all id)
*
*/
-smscore_client_t *smscore_find_client(smscore_device_t *coredev,
+struct smscore_client_t *smscore_find_client(struct smscore_device_t *coredev,
int data_type, int id)
{
- smscore_client_t *client = NULL;
+ struct smscore_client_t *client = NULL;
struct list_head *next, *first;
unsigned long flags;
struct list_head *firstid, *nextid;
for (next = first->next;
(next != first) && !client;
next = next->next) {
- firstid = &((smscore_client_t *)next)->idlist;
+ firstid = &((struct smscore_client_t *)next)->idlist;
for (nextid = firstid->next;
nextid != firstid;
nextid = nextid->next) {
- if ((((smscore_idlist_t *)nextid)->id == id) &&
- (((smscore_idlist_t *)nextid)->data_type == data_type ||
- (((smscore_idlist_t *)nextid)->data_type == 0))) {
- client = (smscore_client_t *) next;
+ if ((((struct smscore_idlist_t *)nextid)->id == id) &&
+ (((struct smscore_idlist_t *)nextid)->data_type == data_type ||
+ (((struct smscore_idlist_t *)nextid)->data_type == 0))) {
+ client = (struct smscore_client_t *) next;
break;
}
}
* @param cb pointer to response buffer descriptor
*
*/
-void smscore_onresponse(smscore_device_t *coredev, smscore_buffer_t *cb)
+void smscore_onresponse(struct smscore_device_t *coredev,
+ struct smscore_buffer_t *cb)
{
- SmsMsgHdr_ST *phdr = (SmsMsgHdr_ST *)((u8 *) cb->p + cb->offset);
- smscore_client_t *client =
+ struct SmsMsgHdr_ST *phdr =
+ (struct SmsMsgHdr_ST *)((u8 *) cb->p + cb->offset);
+ struct smscore_client_t *client =
smscore_find_client(coredev, phdr->msgType, phdr->msgDstId);
int rc = -EBUSY;
switch (phdr->msgType) {
case MSG_SMS_GET_VERSION_EX_RES:
{
- SmsVersionRes_ST *ver = (SmsVersionRes_ST *) phdr;
+ struct SmsVersionRes_ST *ver =
+ (struct SmsVersionRes_ST *) phdr;
printk(KERN_DEBUG "%s: MSG_SMS_GET_VERSION_EX_RES "
"id %d prots 0x%x ver %d.%d\n", __func__,
ver->FirmwareId, ver->SupportedProtocols,
*
* @return pointer to descriptor on success, NULL on error.
*/
-smscore_buffer_t *smscore_getbuffer(smscore_device_t *coredev)
+struct smscore_buffer_t *smscore_getbuffer(struct smscore_device_t *coredev)
{
- smscore_buffer_t *cb = NULL;
+ struct smscore_buffer_t *cb = NULL;
unsigned long flags;
spin_lock_irqsave(&coredev->bufferslock, flags);
if (!list_empty(&coredev->buffers)) {
- cb = (smscore_buffer_t *) coredev->buffers.next;
+ cb = (struct smscore_buffer_t *) coredev->buffers.next;
list_del(&cb->entry);
}
* @param cb pointer buffer descriptor
*
*/
-void smscore_putbuffer(smscore_device_t *coredev, smscore_buffer_t *cb)
+void smscore_putbuffer(struct smscore_device_t *coredev,
+ struct smscore_buffer_t *cb)
{
list_add_locked(&cb->entry, &coredev->buffers, &coredev->bufferslock);
}
-int smscore_validate_client(smscore_device_t *coredev,
- smscore_client_t *client, int data_type, int id)
+int smscore_validate_client(struct smscore_device_t *coredev,
+ struct smscore_client_t *client,
+ int data_type, int id)
{
- smscore_idlist_t *listentry;
- smscore_client_t *registered_client;
+ struct smscore_idlist_t *listentry;
+ struct smscore_client_t *registered_client;
if (!client) {
PERROR("bad parameter.\n");
PERROR("The msg ID already registered to another client.\n");
return -EEXIST;
}
- listentry = kzalloc(sizeof(smscore_idlist_t), GFP_KERNEL);
+ listentry = kzalloc(sizeof(struct smscore_idlist_t), GFP_KERNEL);
if (!listentry) {
PERROR("Can't allocate memory for client id.\n");
return -ENOMEM;
*
* @return 0 on success, <0 on error.
*/
-int smscore_register_client(smscore_device_t *coredev,
- smsclient_params_t *params,
- smscore_client_t **client)
+int smscore_register_client(struct smscore_device_t *coredev,
+ struct smsclient_params_t *params,
+ struct smscore_client_t **client)
{
- smscore_client_t *newclient;
+ struct smscore_client_t *newclient;
/* check that no other channel with same parameters exists */
if (smscore_find_client(coredev, params->data_type,
params->initial_id)) {
return -EEXIST;
}
- newclient = kzalloc(sizeof(smscore_client_t), GFP_KERNEL);
+ newclient = kzalloc(sizeof(struct smscore_client_t), GFP_KERNEL);
if (!newclient) {
PERROR("Failed to allocate memory for client.\n");
return -ENOMEM;
* smscore_register_client
*
*/
-void smscore_unregister_client(smscore_client_t *client)
+void smscore_unregister_client(struct smscore_client_t *client)
{
- smscore_device_t *coredev = client->coredev;
+ struct smscore_device_t *coredev = client->coredev;
unsigned long flags;
spin_lock_irqsave(&coredev->clientslock, flags);
while (!list_empty(&client->idlist)) {
- smscore_idlist_t *identry =
- (smscore_idlist_t *) client->idlist.next;
+ struct smscore_idlist_t *identry =
+ (struct smscore_idlist_t *) client->idlist.next;
list_del(&identry->entry);
kfree(identry);
}
*
* @return 0 on success, <0 on error.
*/
-int smsclient_sendrequest(smscore_client_t *client, void *buffer, size_t size)
+int smsclient_sendrequest(struct smscore_client_t *client,
+ void *buffer, size_t size)
{
- smscore_device_t *coredev;
- SmsMsgHdr_ST *phdr = (SmsMsgHdr_ST *) buffer;
+ struct smscore_device_t *coredev;
+ struct SmsMsgHdr_ST *phdr = (struct SmsMsgHdr_ST *) buffer;
int rc;
if (client == NULL) {
*
* @return size (in bytes) of the buffer
*/
-int smscore_get_common_buffer_size(smscore_device_t *coredev)
+int smscore_get_common_buffer_size(struct smscore_device_t *coredev)
{
return coredev->common_buffer_size;
}
*
* @return 0 on success, <0 on error.
*/
-int smscore_map_common_buffer(smscore_device_t *coredev,
+int smscore_map_common_buffer(struct smscore_device_t *coredev,
struct vm_area_struct *vma)
{
unsigned long end = vma->vm_end,
kmutex_lock(&g_smscore_deviceslock);
while (!list_empty(&g_smscore_notifyees)) {
- smscore_device_notifyee_t *notifyee =
- (smscore_device_notifyee_t *) g_smscore_notifyees.next;
+ struct smscore_device_notifyee_t *notifyee =
+ (struct smscore_device_notifyee_t *)
+ g_smscore_notifyees.next;
list_del(¬ifyee->entry);
kfree(notifyee);
kmutex_lock(&g_smscore_registrylock);
while (!list_empty(&g_smscore_registry)) {
- smscore_registry_entry_t *entry =
- (smscore_registry_entry_t *) g_smscore_registry.next;
+ struct smscore_registry_entry_t *entry =
+ (struct smscore_registry_entry_t *)
+ g_smscore_registry.next;
list_del(&entry->entry);
kfree(entry);
#define SMS_ROM_NO_RESPONSE 2
#define SMS_DEVICE_NOT_READY 0x8000000
-typedef enum {
+enum sms_device_type_st {
SMS_STELLAR = 0,
SMS_NOVA_A0,
SMS_NOVA_B0,
SMS_VEGA,
SMS_NUM_OF_DEVICE_TYPES
-} sms_device_type_st;
+};
-typedef struct _smscore_device smscore_device_t;
-typedef struct _smscore_client smscore_client_t;
-typedef struct _smscore_buffer smscore_buffer_t;
+struct smscore_device_t;
+struct smscore_client_t;
+struct smscore_buffer_t;
-typedef int (*hotplug_t)(smscore_device_t *coredev,
+typedef int (*hotplug_t)(struct smscore_device_t *coredev,
struct device *device, int arrival);
typedef int (*setmode_t)(void *context, int mode);
typedef int (*preload_t)(void *context);
typedef int (*postload_t)(void *context);
-typedef int (*onresponse_t)(void *context, smscore_buffer_t *cb);
+typedef int (*onresponse_t)(void *context, struct smscore_buffer_t *cb);
typedef void (*onremove_t)(void *context);
-typedef struct _smscore_buffer
-{
+struct smscore_buffer_t {
/* public members, once passed to clients can be changed freely */
struct list_head entry;
int size;
void *p;
dma_addr_t phys;
unsigned long offset_in_common;
-} *psmscore_buffer_t;
+};
-typedef struct _smsdevice_params
-{
+struct smsdevice_params_t {
struct device *device;
int buffer_size;
postload_t postload_handler;
void *context;
- sms_device_type_st device_type;
-} smsdevice_params_t;
+ enum sms_device_type_st device_type;
+};
-typedef struct _smsclient_params
-{
+struct smsclient_params_t {
int initial_id;
int data_type;
onresponse_t onresponse_handler;
onremove_t onremove_handler;
void *context;
-} smsclient_params_t;
+};
/* GPIO definitions for antenna frequency domain control (SMS8021) */
#define SMS_ANTENNA_GPIO_0 1
#define SMS_INIT_MSG(ptr, type, len) \
SMS_INIT_MSG_EX(ptr, type, 0, HIF_TASK, len)
-typedef enum
-{
+enum SMS_DEVICE_MODE {
DEVICE_MODE_NONE = -1,
DEVICE_MODE_DVBT = 0,
DEVICE_MODE_DVBH,
DEVICE_MODE_CMMB,
DEVICE_MODE_RAW_TUNER,
DEVICE_MODE_MAX,
-} SMS_DEVICE_MODE;
+};
-typedef struct SmsMsgHdr_S
-{
+struct SmsMsgHdr_ST {
u16 msgType;
u8 msgSrcId;
u8 msgDstId;
u16 msgLength; /* Length of entire message, including header */
u16 msgFlags;
-} SmsMsgHdr_ST;
+};
-typedef struct SmsMsgData_S
-{
- SmsMsgHdr_ST xMsgHeader;
+struct SmsMsgData_ST {
+ struct SmsMsgHdr_ST xMsgHeader;
u32 msgData[1];
-} SmsMsgData_ST;
+};
-typedef struct SmsDataDownload_S
-{
- SmsMsgHdr_ST xMsgHeader;
+struct SmsDataDownload_ST {
+ struct SmsMsgHdr_ST xMsgHeader;
u32 MemAddr;
u8 Payload[SMS_MAX_PAYLOAD_SIZE];
-} SmsDataDownload_ST;
+};
-typedef struct SmsVersionRes_S
-{
- SmsMsgHdr_ST xMsgHeader;
+struct SmsVersionRes_ST {
+ struct SmsMsgHdr_ST xMsgHeader;
u16 ChipModel; /* e.g. 0x1102 for SMS-1102 "Nova" */
u8 Step; /* 0 - Step A */
u8 RomVersionFieldPatch;
u8 TextLabel[34];
-} SmsVersionRes_ST;
+};
-typedef struct SmsFirmware_S
-{
+struct SmsFirmware_ST {
u32 CheckSum;
u32 Length;
u32 StartAddress;
u8 Payload[1];
-} SmsFirmware_ST;
+};
-typedef struct SMSHOSTLIB_STATISTICS_S
-{
+struct SMSHOSTLIB_STATISTICS_ST {
u32 Reserved; /* Reserved */
/* Common parameters */
u32 CellId; /* TPS Cell ID in bits 15..0, bits 31..16 zero;
* if set to 0xFFFFFFFF cell_id not yet recovered */
-} SMSHOSTLIB_STATISTICS_ST;
+};
-typedef struct
-{
+struct SmsMsgStatisticsInfo_ST {
u32 RequestResult;
- SMSHOSTLIB_STATISTICS_ST Stat;
+ struct SMSHOSTLIB_STATISTICS_ST Stat;
/* Split the calc of the SNR in DAB */
u32 Signal; /* dB */
u32 Noise; /* dB */
-} SmsMsgStatisticsInfo_ST;
-
-typedef struct SMSHOSTLIB_ISDBT_LAYER_STAT_S
-{
- /* Per-layer information */
- u32 CodeRate; /* Code Rate from SMSHOSTLIB_CODE_RATE_ET,
- * 255 means layer does not exist */
- u32 Constellation; /* Constellation from SMSHOSTLIB_CONSTELLATION_ET,
- * 255 means layer does not exist */
- u32 BER; /* Post Viterbi BER [1E-5], 0xFFFFFFFF indicate N/A */
- u32 BERErrorCount; /* Post Viterbi Error Bits Count */
- u32 BERBitCount; /* Post Viterbi Total Bits Count */
- u32 PreBER; /* Pre Viterbi BER [1E-5], 0xFFFFFFFF indicate N/A */
- u32 TS_PER; /* Transport stream PER [%], 0xFFFFFFFF indicate N/A */
- u32 ErrorTSPackets; /* Number of erroneous transport-stream packets */
- u32 TotalTSPackets; /* Total number of transport-stream packets */
- u32 TILdepthI; /* Time interleaver depth I parameter,
- * 255 means layer does not exist */
- u32 NumberOfSegments; /* Number of segments in layer A,
- * 255 means layer does not exist */
- u32 TMCCErrors; /* TMCC errors */
-} SMSHOSTLIB_ISDBT_LAYER_STAT_ST;
-
-typedef struct SMSHOSTLIB_STATISTICS_ISDBT_S
-{
- u32 StatisticsType; /* Enumerator identifying the type of the
- * structure. Values are the same as
- * SMSHOSTLIB_DEVICE_MODES_E
- *
- * This field MUST always be first in any
- * statistics structure */
-
- u32 FullSize; /* Total size of the structure returned by the modem.
- * If the size requested by the host is smaller than
- * FullSize, the struct will be truncated */
-
- /* Common parameters */
- u32 IsRfLocked; /* 0 - not locked, 1 - locked */
- u32 IsDemodLocked; /* 0 - not locked, 1 - locked */
- u32 IsExternalLNAOn; /* 0 - external LNA off, 1 - external LNA on */
-
- /* Reception quality */
- s32 SNR; /* dB */
- s32 RSSI; /* dBm */
- s32 InBandPwr; /* In band power in dBM */
- s32 CarrierOffset; /* Carrier Offset in Hz */
-
- /* Transmission parameters */
- u32 Frequency; /* Frequency in Hz */
- u32 Bandwidth; /* Bandwidth in MHz */
- u32 TransmissionMode; /* ISDB-T transmission mode */
- u32 ModemState; /* 0 - Acquisition, 1 - Locked */
- u32 GuardInterval; /* Guard Interval, 1 divided by value */
- u32 SystemType; /* ISDB-T system type (ISDB-T / ISDB-Tsb) */
- u32 PartialReception; /* TRUE - partial reception, FALSE otherwise */
- u32 NumOfLayers; /* Number of ISDB-T layers in the network */
-
- /* Per-layer information */
- /* Layers A, B and C */
- SMSHOSTLIB_ISDBT_LAYER_STAT_ST LayerInfo[3]; /* Per-layer statistics,
- see SMSHOSTLIB_ISDBT_LAYER_STAT_ST */
+};
- /* Interface information */
- u32 SmsToHostTxErrors; /* Total number of transmission errors. */
-
-} SMSHOSTLIB_STATISTICS_ISDBT_ST;
-
-typedef struct SMSHOSTLIB_STATISTICS_DVB_S
-{
- u32 StatisticsType; /* Enumerator identifying the type of the
- * structure. Values are the same as
- * SMSHOSTLIB_DEVICE_MODES_E
- * This field MUST always first in any
- * statistics structure */
-
- u32 FullSize; /* Total size of the structure returned by the modem.
- * If the size requested by the host is smaller than
- * FullSize, the struct will be truncated */
- /* Common parameters */
- u32 IsRfLocked; /* 0 - not locked, 1 - locked */
- u32 IsDemodLocked; /* 0 - not locked, 1 - locked */
- u32 IsExternalLNAOn; /* 0 - external LNA off, 1 - external LNA on */
-
- /* Reception quality */
- s32 SNR; /* dB */
- u32 BER; /* Post Viterbi BER [1E-5] */
- u32 BERErrorCount; /* Number of errornous SYNC bits. */
- u32 BERBitCount; /* Total number of SYNC bits. */
- u32 TS_PER; /* Transport stream PER, 0xFFFFFFFF indicate N/A */
- u32 MFER; /* DVB-H frame error rate in percentage,
- * 0xFFFFFFFF indicate N/A, valid only for DVB-H */
- s32 RSSI; /* dBm */
- s32 InBandPwr; /* In band power in dBM */
- s32 CarrierOffset; /* Carrier Offset in bin/1024 */
-
- /* Transmission parameters */
- u32 Frequency; /* Frequency in Hz */
- u32 Bandwidth; /* Bandwidth in MHz */
- u32 ModemState; /* from SMSHOSTLIB_DVB_MODEM_STATE_ET */
- u32 TransmissionMode; /* FFT mode carriers in Kilos */
- u32 GuardInterval; /* Guard Interval, 1 divided by value */
- u32 CodeRate; /* Code Rate from SMSHOSTLIB_CODE_RATE_ET */
- u32 LPCodeRate; /* Low Priority Code Rate from
- * SMSHOSTLIB_CODE_RATE_ET */
- u32 Hierarchy; /* Hierarchy from SMSHOSTLIB_HIERARCHY_ET */
- u32 Constellation; /* Constellation from SMSHOSTLIB_CONSTELLATION_ET */
-
- /* Burst parameters, valid only for DVB-H */
- u32 BurstSize; /* Current burst size in bytes */
- u32 BurstDuration; /* Current burst duration in mSec */
- u32 BurstCycleTime; /* Current burst cycle time in mSec */
- u32 CalculatedBurstCycleTime; /* Current burst cycle time in mSec,
- * as calculated by demodulator */
- u32 NumOfRows; /* Number of rows in MPE table */
- u32 NumOfPaddCols; /* Number of padding columns in MPE table */
- u32 NumOfPunctCols; /* Number of puncturing columns in MPE table */
-
- u32 ErrorTSPackets; /* Number of erroneous transport-stream packets */
- u32 TotalTSPackets; /* Total number of transport-stream packets */
-
- u32 NumOfValidMpeTlbs; /* Number of MPE tables which do not include
- * errors after MPE RS decoding */
- u32 NumOfInvalidMpeTlbs; /* Number of MPE tables which include
- * errors after MPE RS decoding */
- u32 NumOfCorrectedMpeTlbs; /* Number of MPE tables which were
- * corrected by MPE RS decoding */
-
- u32 NumMPEReceived; /* DVB-H, Num MPE section received */
-
- /* DVB-H TPS parameters */
- u32 CellId; /* TPS Cell ID in bits 15..0, bits 31..16 zero;
- * if set to 0xFFFFFFFF cell_id not yet recovered */
- u32 DvbhSrvIndHP; /* DVB-H service indication info,
- * bit 1 - Time Slicing indicator,
- * bit 0 - MPE-FEC indicator */
- u32 DvbhSrvIndLP; /* DVB-H service indication info,
- * bit 1 - Time Slicing indicator,
- * bit 0 - MPE-FEC indicator */
-
- /* Interface information */
- u32 SmsToHostTxErrors; /* Total number of transmission errors. */
-} SMSHOSTLIB_STATISTICS_DVB_ST;
-
-typedef struct SMSHOSTLIB_GPIO_CONFIG_S
-{
- u8 Direction; /* GPIO direction: Input - 0, Output - 1 */
- u8 PullUpDown; /* PullUp/PullDown: None - 0,
- * PullDown - 1, PullUp - 2, Keeper - 3 */
- u8 InputCharacteristics; /* Input Characteristics: Normal - 0,
- * Schmitt trigger - 1 */
- u8 OutputSlewRate; /* Output Slew Rate:
- * Fast slew rate - 0, Slow slew rate - 1 */
- u8 OutputDriving; /* Output driving capability:
- * 4mA - 0, 8mA - 1, 12mA - 2, 16mA - 3 */
-} SMSHOSTLIB_GPIO_CONFIG_ST;
-
-typedef struct SMSHOSTLIB_I2C_REQ_S
-{
- u32 DeviceAddress; /* I2c device address */
- u32 WriteCount; /* number of bytes to write */
- u32 ReadCount; /* number of bytes to read */
- u8 Data[1];
-} SMSHOSTLIB_I2C_REQ_ST;
-
-typedef struct SMSHOSTLIB_I2C_RES_S
-{
- u32 Status; /* non-zero value in case of failure */
- u32 ReadCount; /* number of bytes read */
- u8 Data[1];
-} SMSHOSTLIB_I2C_RES_ST;
-
-typedef struct _smsdvb_client
-{
+struct smsdvb_client_t {
struct list_head entry;
- smscore_device_t *coredev;
- smscore_client_t *smsclient;
+ struct smscore_device_t *coredev;
+ struct smscore_client_t *smsclient;
struct dvb_adapter adapter;
struct dvb_demux demux;
/* 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);
extern int smscore_register_hotplug(hotplug_t hotplug);
extern void smscore_unregister_hotplug(hotplug_t hotplug);
-extern int smscore_register_device(smsdevice_params_t *params,
- smscore_device_t **coredev);
-extern void smscore_unregister_device(smscore_device_t *coredev);
+extern int smscore_register_device(struct smsdevice_params_t *params,
+ struct smscore_device_t **coredev);
+extern void smscore_unregister_device(struct smscore_device_t *coredev);
-extern int smscore_start_device(smscore_device_t *coredev);
-extern int smscore_load_firmware(smscore_device_t *coredev, char *filename,
- loadfirmware_t loadfirmware_handler);
+extern int smscore_start_device(struct smscore_device_t *coredev);
+extern int smscore_load_firmware(struct smscore_device_t *coredev,
+ char *filename,
+ loadfirmware_t loadfirmware_handler);
-extern int smscore_load_firmware_from_buffer(smscore_device_t *coredev,
+extern int smscore_load_firmware_from_buffer(struct smscore_device_t *coredev,
u8 *buffer, int size,
int new_mode);
-extern int smscore_set_device_mode(smscore_device_t *coredev, int mode);
-extern int smscore_get_device_mode(smscore_device_t *coredev);
+extern int smscore_set_device_mode(struct smscore_device_t *coredev, int mode);
+extern int smscore_get_device_mode(struct smscore_device_t *coredev);
-extern int smscore_register_client(smscore_device_t *coredev,
- smsclient_params_t *params,
- smscore_client_t **client);
-extern void smscore_unregister_client(smscore_client_t *client);
+extern int smscore_register_client(struct smscore_device_t *coredev,
+ struct smsclient_params_t *params,
+ struct smscore_client_t **client);
+extern void smscore_unregister_client(struct smscore_client_t *client);
-extern int smsclient_sendrequest(smscore_client_t *client,
+extern int smsclient_sendrequest(struct smscore_client_t *client,
void *buffer, size_t size);
-extern void smscore_onresponse(smscore_device_t *coredev,
- smscore_buffer_t *cb);
+extern void smscore_onresponse(struct smscore_device_t *coredev,
+ struct smscore_buffer_t *cb);
-extern int smscore_get_common_buffer_size(smscore_device_t *coredev);
-extern int smscore_map_common_buffer(smscore_device_t *coredev,
+extern int smscore_get_common_buffer_size(struct smscore_device_t *coredev);
+extern int smscore_map_common_buffer(struct smscore_device_t *coredev,
struct vm_area_struct *vma);
-extern smscore_buffer_t *smscore_getbuffer(smscore_device_t *coredev);
-extern void smscore_putbuffer(smscore_device_t *coredev, smscore_buffer_t *cb);
+extern struct smscore_buffer_t *smscore_getbuffer(struct smscore_device_t *coredev);
+extern void smscore_putbuffer(struct smscore_device_t *coredev,
+ struct smscore_buffer_t *cb);
/* smsdvb.c */
int smsdvb_register(void);
struct list_head g_smsdvb_clients;
kmutex_t g_smsdvb_clientslock;
-int smsdvb_onresponse(void *context, smscore_buffer_t *cb)
+int smsdvb_onresponse(void *context, struct smscore_buffer_t *cb)
{
- smsdvb_client_t *client = (smsdvb_client_t *) context;
- SmsMsgHdr_ST *phdr = (SmsMsgHdr_ST *)(((u8 *) cb->p) + cb->offset);
+ struct smsdvb_client_t *client = (struct smsdvb_client_t *) context;
+ struct SmsMsgHdr_ST *phdr =
+ (struct SmsMsgHdr_ST *)(((u8 *) cb->p) + cb->offset);
switch (phdr->msgType) {
case MSG_SMS_DVBT_BDA_DATA:
dvb_dmx_swfilter(&client->demux, (u8 *)(phdr + 1),
- cb->size - sizeof(SmsMsgHdr_ST));
+ cb->size - sizeof(struct SmsMsgHdr_ST));
break;
case MSG_SMS_RF_TUNE_RES:
case MSG_SMS_GET_STATISTICS_RES:
{
- SmsMsgStatisticsInfo_ST *p =
- (SmsMsgStatisticsInfo_ST *)(phdr + 1);
+ struct SmsMsgStatisticsInfo_ST *p =
+ (struct SmsMsgStatisticsInfo_ST *)(phdr + 1);
if (p->Stat.IsDemodLocked) {
client->fe_status = FE_HAS_SIGNAL |
return 0;
}
-void smsdvb_unregister_client(smsdvb_client_t *client)
+void smsdvb_unregister_client(struct smsdvb_client_t *client)
{
/* must be called under clientslock */
{
kmutex_lock(&g_smsdvb_clientslock);
- smsdvb_unregister_client((smsdvb_client_t *) context);
+ smsdvb_unregister_client((struct smsdvb_client_t *) context);
kmutex_unlock(&g_smsdvb_clientslock);
}
static int smsdvb_start_feed(struct dvb_demux_feed *feed)
{
- smsdvb_client_t *client =
- container_of(feed->demux, smsdvb_client_t, demux);
- SmsMsgData_ST PidMsg;
+ struct smsdvb_client_t *client =
+ container_of(feed->demux, struct smsdvb_client_t, demux);
+ struct SmsMsgData_ST PidMsg;
printk(KERN_DEBUG "%s add pid %d(%x)\n", __func__,
feed->pid, feed->pid);
static int smsdvb_stop_feed(struct dvb_demux_feed *feed)
{
- smsdvb_client_t *client =
- container_of(feed->demux, smsdvb_client_t, demux);
- SmsMsgData_ST PidMsg;
+ struct smsdvb_client_t *client =
+ container_of(feed->demux, struct smsdvb_client_t, demux);
+ struct SmsMsgData_ST PidMsg;
printk(KERN_DEBUG "%s remove pid %d(%x)\n", __func__,
feed->pid, feed->pid);
&PidMsg, sizeof(PidMsg));
}
-static int smsdvb_sendrequest_and_wait(smsdvb_client_t *client,
+static int smsdvb_sendrequest_and_wait(struct smsdvb_client_t *client,
void *buffer, size_t size,
struct completion *completion)
{
0 : -ETIME;
}
-static int smsdvb_send_statistics_request(smsdvb_client_t *client)
+static int smsdvb_send_statistics_request(struct smsdvb_client_t *client)
{
- SmsMsgHdr_ST Msg = { MSG_SMS_GET_STATISTICS_REQ,
+ struct SmsMsgHdr_ST Msg = { MSG_SMS_GET_STATISTICS_REQ,
DVBT_BDA_CONTROL_MSG_ID,
- HIF_TASK, sizeof(SmsMsgHdr_ST), 0 };
+ HIF_TASK, sizeof(struct SmsMsgHdr_ST), 0 };
return smsdvb_sendrequest_and_wait(client, &Msg, sizeof(Msg),
&client->stat_done);
}
static int smsdvb_read_status(struct dvb_frontend *fe, fe_status_t *stat)
{
- smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
+ struct smsdvb_client_t *client =
+ container_of(fe, struct smsdvb_client_t, frontend);
int rc = smsdvb_send_statistics_request(client);
if (!rc)
static int smsdvb_read_ber(struct dvb_frontend *fe, u32 *ber)
{
- smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
+ struct smsdvb_client_t *client =
+ container_of(fe, struct smsdvb_client_t, frontend);
int rc = smsdvb_send_statistics_request(client);
if (!rc)
static int smsdvb_read_signal_strength(struct dvb_frontend *fe, u16 *strength)
{
- smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
+ struct smsdvb_client_t *client =
+ container_of(fe, struct smsdvb_client_t, frontend);
int rc = smsdvb_send_statistics_request(client);
if (!rc)
static int smsdvb_read_snr(struct dvb_frontend *fe, u16 *snr)
{
- smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
+ struct smsdvb_client_t *client =
+ container_of(fe, struct smsdvb_client_t, frontend);
int rc = smsdvb_send_statistics_request(client);
if (!rc)
static int smsdvb_set_frontend(struct dvb_frontend *fe,
struct dvb_frontend_parameters *fep)
{
- smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
+ struct smsdvb_client_t *client =
+ container_of(fe, struct smsdvb_client_t, frontend);
- struct
- {
- SmsMsgHdr_ST Msg;
+ struct {
+ struct SmsMsgHdr_ST Msg;
u32 Data[3];
} Msg;
static int smsdvb_get_frontend(struct dvb_frontend *fe,
struct dvb_frontend_parameters *fep)
{
- smsdvb_client_t *client = container_of(fe, smsdvb_client_t, frontend);
+ struct smsdvb_client_t *client =
+ container_of(fe, struct smsdvb_client_t, frontend);
printk(KERN_DEBUG "%s\n", __func__);
.read_snr = smsdvb_read_snr,
};
-int smsdvb_hotplug(smscore_device_t *coredev,
+int smsdvb_hotplug(struct smscore_device_t *coredev,
struct device *device, int arrival)
{
- smsclient_params_t params;
- smsdvb_client_t *client;
+ struct smsclient_params_t params;
+ struct smsdvb_client_t *client;
int rc;
/* device removal handled by onremove callback */
return 0;
}
- client = kzalloc(sizeof(smsdvb_client_t), GFP_KERNEL);
+ client = kzalloc(sizeof(struct smsdvb_client_t), GFP_KERNEL);
if (!client) {
printk(KERN_INFO "%s kmalloc() failed\n", __func__);
return -ENOMEM;
while (!list_empty(&g_smsdvb_clients))
smsdvb_unregister_client(
- (smsdvb_client_t *) g_smsdvb_clients.next);
+ (struct smsdvb_client_t *) g_smsdvb_clients.next);
kmutex_unlock(&g_smsdvb_clientslock);
}
#define USB_PID_NOVA_B 0x0201
#define USB_PID_VEGA 0x0300
-typedef struct _smsusb_device smsusb_device_t;
+struct smsusb_device_t;
-typedef struct _smsusb_urb
-{
- smscore_buffer_t *cb;
- smsusb_device_t *dev;
+struct smsusb_urb_t {
+ struct smscore_buffer_t *cb;
+ struct smsusb_device_t *dev;
- struct urb urb;
-} smsusb_urb_t;
+ struct urb urb;
+};
-typedef struct _smsusb_device
-{
+struct smsusb_device_t {
struct usb_device *udev;
- smscore_device_t *coredev;
+ struct smscore_device_t *coredev;
- smsusb_urb_t surbs[MAX_URBS];
+ struct smsusb_urb_t surbs[MAX_URBS];
int response_alignment;
int buffer_size;
-} *psmsusb_device_t;
+};
-int smsusb_submit_urb(smsusb_device_t *dev, smsusb_urb_t *surb);
+int smsusb_submit_urb(struct smsusb_device_t *dev, struct smsusb_urb_t *surb);
void smsusb_onresponse(struct urb *urb)
{
- smsusb_urb_t *surb = (smsusb_urb_t *) urb->context;
- smsusb_device_t *dev = surb->dev;
+ struct smsusb_urb_t *surb = (struct smsusb_urb_t *) urb->context;
+ struct smsusb_device_t *dev = surb->dev;
if (urb->status < 0) {
printk(KERN_INFO "%s error, urb status %d, %d bytes\n",
}
if (urb->actual_length > 0) {
- SmsMsgHdr_ST *phdr = (SmsMsgHdr_ST *) surb->cb->p;
+ struct SmsMsgHdr_ST *phdr = (struct SmsMsgHdr_ST *) surb->cb->p;
if (urb->actual_length >= phdr->msgLength) {
surb->cb->size = phdr->msgLength;
/* move buffer pointer and
* copy header to its new location */
memcpy((char *) phdr + surb->cb->offset,
- phdr, sizeof(SmsMsgHdr_ST));
+ phdr, sizeof(struct SmsMsgHdr_ST));
} else
surb->cb->offset = 0;
smsusb_submit_urb(dev, surb);
}
-int smsusb_submit_urb(smsusb_device_t *dev, smsusb_urb_t *surb)
+int smsusb_submit_urb(struct smsusb_device_t *dev, struct smsusb_urb_t *surb)
{
if (!surb->cb) {
surb->cb = smscore_getbuffer(dev->coredev);
return usb_submit_urb(&surb->urb, GFP_ATOMIC);
}
-void smsusb_stop_streaming(smsusb_device_t *dev)
+void smsusb_stop_streaming(struct smsusb_device_t *dev)
{
int i;
}
}
-int smsusb_start_streaming(smsusb_device_t *dev)
+int smsusb_start_streaming(struct smsusb_device_t *dev)
{
int i, rc;
int smsusb_sendrequest(void *context, void *buffer, size_t size)
{
- smsusb_device_t *dev = (smsusb_device_t *) context;
+ struct smsusb_device_t *dev = (struct smsusb_device_t *) context;
int dummy;
return usb_bulk_msg(dev->udev, usb_sndbulkpipe(dev->udev, 2),
void smsusb1_detectmode(void *context, int *mode)
{
- char *product_string = ((smsusb_device_t *) context)->udev->product;
+ char *product_string =
+ ((struct smsusb_device_t *) context)->udev->product;
*mode = DEVICE_MODE_NONE;
int smsusb1_setmode(void *context, int mode)
{
- SmsMsgHdr_ST Msg = { MSG_SW_RELOAD_REQ, 0, HIF_TASK,
- sizeof(SmsMsgHdr_ST), 0 };
+ struct SmsMsgHdr_ST Msg = { MSG_SW_RELOAD_REQ, 0, HIF_TASK,
+ sizeof(struct SmsMsgHdr_ST), 0 };
if (mode < DEVICE_MODE_DVBT || mode > DEVICE_MODE_DVBT_BDA) {
printk(KERN_INFO "%s invalid firmware id specified %d\n",
void smsusb_term_device(struct usb_interface *intf)
{
- smsusb_device_t *dev = (smsusb_device_t *) usb_get_intfdata(intf);
+ struct smsusb_device_t *dev =
+ (struct smsusb_device_t *) usb_get_intfdata(intf);
if (dev) {
smsusb_stop_streaming(dev);
int smsusb_init_device(struct usb_interface *intf)
{
- smsdevice_params_t params;
- smsusb_device_t *dev;
+ struct smsdevice_params_t params;
+ struct smsusb_device_t *dev;
int i, rc;
/* create device object */
- dev = kzalloc(sizeof(smsusb_device_t), GFP_KERNEL);
+ dev = kzalloc(sizeof(struct smsusb_device_t), GFP_KERNEL);
if (!dev) {
- printk(KERN_INFO "%s kzalloc(sizeof(smsusb_device_t) failed\n",
- __func__);
+ printk(KERN_INFO "%s kzalloc(sizeof(struct smsusb_device_t) "
+ "failed\n", __func__);
return -ENOMEM;
}
dev->buffer_size = USB2_BUFFER_SIZE;
dev->response_alignment =
dev->udev->ep_in[1]->desc.wMaxPacketSize -
- sizeof(SmsMsgHdr_ST);
+ sizeof(struct SmsMsgHdr_ST);
params.flags |= SMS_DEVICE_FAMILY2;
break;