diff options
Diffstat (limited to 'drivers/staging/vc04_services/interface/vchiq_arm')
7 files changed, 61 insertions, 243 deletions
diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c index be08849175ea..eea2d78b0ec6 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c @@ -59,10 +59,10 @@ #define BELL0 0x00 #define BELL2 0x08 -typedef struct vchiq_2835_state_struct { +struct vchiq_2835_state { int inited; VCHIQ_ARM_STATE_T arm_state; -} VCHIQ_2835_ARM_STATE_T; +}; struct vchiq_pagelist_info { PAGELIST_T *pagelist; @@ -84,8 +84,6 @@ static char *g_free_fragments; static struct semaphore g_free_fragments_sema; static struct device *g_dev; -extern int vchiq_arm_log_level; - static DEFINE_SEMAPHORE(g_free_fragments_mutex); static irqreturn_t @@ -206,25 +204,31 @@ VCHIQ_STATUS_T vchiq_platform_init_state(VCHIQ_STATE_T *state) { VCHIQ_STATUS_T status = VCHIQ_SUCCESS; + struct vchiq_2835_state *platform_state; + + state->platform_state = kzalloc(sizeof(*platform_state), GFP_KERNEL); + platform_state = (struct vchiq_2835_state *)state->platform_state; + + platform_state->inited = 1; + status = vchiq_arm_init_state(state, &platform_state->arm_state); - state->platform_state = kzalloc(sizeof(VCHIQ_2835_ARM_STATE_T), GFP_KERNEL); - ((VCHIQ_2835_ARM_STATE_T *)state->platform_state)->inited = 1; - status = vchiq_arm_init_state(state, &((VCHIQ_2835_ARM_STATE_T *)state->platform_state)->arm_state); if (status != VCHIQ_SUCCESS) - { - ((VCHIQ_2835_ARM_STATE_T *)state->platform_state)->inited = 0; - } + platform_state->inited = 0; + return status; } VCHIQ_ARM_STATE_T* vchiq_platform_get_arm_state(VCHIQ_STATE_T *state) { - if (!((VCHIQ_2835_ARM_STATE_T *)state->platform_state)->inited) - { + struct vchiq_2835_state *platform_state; + + platform_state = (struct vchiq_2835_state *)state->platform_state; + + if (!platform_state->inited) BUG(); - } - return &((VCHIQ_2835_ARM_STATE_T *)state->platform_state)->arm_state; + + return &platform_state->arm_state; } void @@ -383,12 +387,12 @@ cleanup_pagelistinfo(struct vchiq_pagelist_info *pagelistinfo) } /* There is a potential problem with partial cache lines (pages?) -** at the ends of the block when reading. If the CPU accessed anything in -** the same line (page?) then it may have pulled old data into the cache, -** obscuring the new data underneath. We can solve this by transferring the -** partial cache lines separately, and allowing the ARM to copy into the -** cached area. -*/ + * at the ends of the block when reading. If the CPU accessed anything in + * the same line (page?) then it may have pulled old data into the cache, + * obscuring the new data underneath. We can solve this by transferring the + * partial cache lines separately, and allowing the ARM to copy into the + * cached area. + */ static struct vchiq_pagelist_info * create_pagelist(char __user *buf, size_t count, unsigned short type, @@ -415,15 +419,15 @@ create_pagelist(char __user *buf, size_t count, unsigned short type, sizeof(struct vchiq_pagelist_info); /* Allocate enough storage to hold the page pointers and the page - ** list - */ + * list + */ pagelist = dma_zalloc_coherent(g_dev, pagelist_size, &dma_addr, GFP_KERNEL); - vchiq_log_trace(vchiq_arm_log_level, "create_pagelist - %pK", - pagelist); + vchiq_log_trace(vchiq_arm_log_level, "%s - %pK", __func__, pagelist); + if (!pagelist) return NULL; @@ -483,9 +487,8 @@ create_pagelist(char __user *buf, size_t count, unsigned short type, if (actual_pages != num_pages) { vchiq_log_info(vchiq_arm_log_level, - "create_pagelist - only %d/%d pages locked", - actual_pages, - num_pages); + "%s - only %d/%d pages locked", + __func__, actual_pages, num_pages); /* This is probably due to the process being killed */ while (actual_pages > 0) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c index 314ffac50bb8..411539f8ff8c 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -109,9 +109,7 @@ static const char *const resume_state_names[] = { * requested */ #define FORCE_SUSPEND_TIMEOUT_MS 200 - -static void suspend_timer_callback(unsigned long context); - +static void suspend_timer_callback(struct timer_list *t); typedef struct user_service_struct { VCHIQ_SERVICE_T *service; @@ -195,11 +193,6 @@ static const char *const ioctl_names[] = { vchiq_static_assert(ARRAY_SIZE(ioctl_names) == (VCHIQ_IOC_MAX + 1)); -#if defined(CONFIG_BCM2835_VCHIQ_SUPPORT_MEMDUMP) -static void -dump_phys_mem(void *virt_addr, u32 num_bytes); -#endif - /**************************************************************************** * * add_completion @@ -1161,20 +1154,6 @@ vchiq_ioctl(struct file *file, unsigned int cmd, unsigned long arg) args.handle, args.option, args.value); } break; -#if defined(CONFIG_BCM2835_VCHIQ_SUPPORT_MEMDUMP) - case VCHIQ_IOC_DUMP_PHYS_MEM: { - VCHIQ_DUMP_MEM_T args; - - if (copy_from_user - (&args, (const void __user *)arg, - sizeof(args)) != 0) { - ret = -EFAULT; - break; - } - dump_phys_mem(args.virt_addr, args.num_bytes); - } break; -#endif - case VCHIQ_IOC_LIB_VERSION: { unsigned int lib_version = (unsigned int)arg; @@ -1654,42 +1633,6 @@ vchiq_compat_ioctl_get_config(struct file *file, return vchiq_ioctl(file, VCHIQ_IOC_GET_CONFIG, (unsigned long)args); } -#if defined(CONFIG_BCM2835_VCHIQ_SUPPORT_MEMDUMP) - -struct vchiq_dump_mem32 { - compat_uptr_t virt_addr; - u32 num_bytes; -}; - -#define VCHIQ_IOC_DUMP_PHYS_MEM32 \ - _IOW(VCHIQ_IOC_MAGIC, 15, struct vchiq_dump_mem32) - -static long -vchiq_compat_ioctl_dump_phys_mem(struct file *file, - unsigned int cmd, - unsigned long arg) -{ - VCHIQ_DUMP_MEM_T *args; - struct vchiq_dump_mem32 args32; - - args = compat_alloc_user_space(sizeof(*args)); - if (!args) - return -EFAULT; - - if (copy_from_user(&args32, - (struct vchiq_dump_mem32 *)arg, - sizeof(args32))) - return -EFAULT; - - if (put_user(compat_ptr(args32.virt_addr), &args->virt_addr) || - put_user(args32.num_bytes, &args->num_bytes)) - return -EFAULT; - - return vchiq_ioctl(file, VCHIQ_IOC_DUMP_PHYS_MEM, (unsigned long)args); -} - -#endif - static long vchiq_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { @@ -1707,10 +1650,6 @@ vchiq_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) return vchiq_compat_ioctl_dequeue_message(file, cmd, arg); case VCHIQ_IOC_GET_CONFIG32: return vchiq_compat_ioctl_get_config(file, cmd, arg); -#if defined(CONFIG_BCM2835_VCHIQ_SUPPORT_MEMDUMP) - case VCHIQ_IOC_DUMP_PHYS_MEM32: - return vchiq_compat_ioctl_dump_phys_mem(file, cmd, arg); -#endif default: return vchiq_ioctl(file, cmd, arg); } @@ -2050,98 +1989,6 @@ vchiq_dump_platform_service_state(void *dump_context, VCHIQ_SERVICE_T *service) /**************************************************************************** * -* dump_user_mem -* -***************************************************************************/ - -#if defined(CONFIG_BCM2835_VCHIQ_SUPPORT_MEMDUMP) - -static void -dump_phys_mem(void *virt_addr, u32 num_bytes) -{ - int rc; - u8 *end_virt_addr = virt_addr + num_bytes; - int num_pages; - int offset; - int end_offset; - int page_idx; - int prev_idx; - struct page *page; - struct page **pages; - u8 *kmapped_virt_ptr; - - /* Align virt_addr and end_virt_addr to 16 byte boundaries. */ - - virt_addr = (void *)((unsigned long)virt_addr & ~0x0fuL); - end_virt_addr = (void *)(((unsigned long)end_virt_addr + 15uL) & - ~0x0fuL); - - offset = (int)(long)virt_addr & (PAGE_SIZE - 1); - end_offset = (int)(long)end_virt_addr & (PAGE_SIZE - 1); - - num_pages = DIV_ROUND_UP(offset + num_bytes, PAGE_SIZE); - - pages = kmalloc(sizeof(struct page *) * num_pages, GFP_KERNEL); - if (!pages) { - vchiq_log_error(vchiq_arm_log_level, - "Unable to allocation memory for %d pages\n", - num_pages); - return; - } - - down_read(¤t->mm->mmap_sem); - rc = get_user_pages( - (unsigned long)virt_addr, /* start */ - num_pages, /* len */ - 0, /* gup_flags */ - pages, /* pages (array of page pointers) */ - NULL); /* vmas */ - up_read(¤t->mm->mmap_sem); - - prev_idx = -1; - page = NULL; - - if (rc < 0) { - vchiq_log_error(vchiq_arm_log_level, - "Failed to get user pages: %d\n", rc); - goto out; - } - - while (offset < end_offset) { - int page_offset = offset % PAGE_SIZE; - - page_idx = offset / PAGE_SIZE; - if (page_idx != prev_idx) { - if (page != NULL) - kunmap(page); - page = pages[page_idx]; - kmapped_virt_ptr = kmap(page); - prev_idx = page_idx; - } - - if (vchiq_arm_log_level >= VCHIQ_LOG_TRACE) - vchiq_log_dump_mem("ph", - (u32)(unsigned long)&kmapped_virt_ptr[ - page_offset], - &kmapped_virt_ptr[page_offset], 16); - - offset += 16; - } - -out: - if (page != NULL) - kunmap(page); - - for (page_idx = 0; page_idx < num_pages; page_idx++) - put_page(pages[page_idx]); - - kfree(pages); -} - -#endif - -/**************************************************************************** -* * vchiq_read * ***************************************************************************/ @@ -2307,8 +2154,6 @@ exit: return 0; } - - VCHIQ_STATUS_T vchiq_arm_init_state(VCHIQ_STATE_T *state, VCHIQ_ARM_STATE_T *arm_state) { @@ -2339,8 +2184,9 @@ vchiq_arm_init_state(VCHIQ_STATE_T *state, VCHIQ_ARM_STATE_T *arm_state) arm_state->suspend_timer_timeout = SUSPEND_TIMER_TIMEOUT_MS; arm_state->suspend_timer_running = 0; - setup_timer(&arm_state->suspend_timer, suspend_timer_callback, - (unsigned long)(state)); + arm_state->state = state; + timer_setup(&arm_state->suspend_timer, suspend_timer_callback, + 0); arm_state->first_connect = 0; @@ -2469,7 +2315,6 @@ set_resume_state(VCHIQ_ARM_STATE_T *arm_state, } } - /* should be called with the write lock held */ inline void start_suspend_timer(VCHIQ_ARM_STATE_T *arm_state) @@ -2589,7 +2434,6 @@ vchiq_arm_vcsuspend(VCHIQ_STATE_T *state) vchiq_log_trace(vchiq_susp_log_level, "%s", __func__); status = VCHIQ_SUCCESS; - switch (arm_state->vc_suspend_state) { case VC_SUSPEND_REQUESTED: vchiq_log_info(vchiq_susp_log_level, "%s: suspend already " @@ -2654,7 +2498,6 @@ out: return; } - static void output_timeout_error(VCHIQ_STATE_T *state) { @@ -2834,7 +2677,6 @@ out: return; } - int vchiq_arm_allow_resume(VCHIQ_STATE_T *state) { @@ -2996,7 +2838,6 @@ vchiq_use_internal(VCHIQ_STATE_T *state, VCHIQ_SERVICE_T *service, "%s %s count %d, state count %d", __func__, entity, *entity_uc, local_uc); - write_unlock_bh(&arm_state->susp_res_lock); /* Completion is in a done state when we're not suspended, so this won't @@ -3177,18 +3018,14 @@ vchiq_instance_set_trace(VCHIQ_INSTANCE_T instance, int trace) instance->trace = (trace != 0); } -static void suspend_timer_callback(unsigned long context) +static void suspend_timer_callback(struct timer_list *t) { - VCHIQ_STATE_T *state = (VCHIQ_STATE_T *)context; - VCHIQ_ARM_STATE_T *arm_state = vchiq_platform_get_arm_state(state); + VCHIQ_ARM_STATE_T *arm_state = from_timer(arm_state, t, suspend_timer); + VCHIQ_STATE_T *state = arm_state->state; - if (!arm_state) - goto out; vchiq_log_info(vchiq_susp_log_level, "%s - suspend timer expired - check suspend", __func__); vchiq_check_suspend(state); -out: - return; } VCHIQ_STATUS_T diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h index bfbd81d9db33..40bb0c63b1a9 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.h @@ -42,7 +42,6 @@ #include "vchiq_core.h" #include "vchiq_debugfs.h" - enum vc_suspend_status { VC_SUSPEND_FORCE_CANCELED = -3, /* Force suspend canceled, too busy */ VC_SUSPEND_REJECTED = -2, /* Videocore rejected suspend request */ @@ -61,15 +60,12 @@ enum vc_resume_status { VC_RESUME_RESUMED /* Videocore resumed successfully (active) */ }; - enum USE_TYPE_E { USE_TYPE_SERVICE, USE_TYPE_SERVICE_NO_RESUME, USE_TYPE_VCHIQ }; - - typedef struct vchiq_arm_state_struct { /* Keepalive-related data */ struct task_struct *ka_thread; @@ -87,6 +83,7 @@ typedef struct vchiq_arm_state_struct { unsigned int wake_address; + VCHIQ_STATE_T *state; struct timer_list suspend_timer; int suspend_timer_timeout; int suspend_timer_running; @@ -216,5 +213,4 @@ set_resume_state(VCHIQ_ARM_STATE_T *arm_state, extern void start_suspend_timer(VCHIQ_ARM_STATE_T *arm_state); - #endif /* VCHIQ_ARM_H */ diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c index 486be990d7fc..ecff92bae200 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.c @@ -130,7 +130,6 @@ static const char *const conn_state_names[] = { "RESUME_TIMEOUT" }; - static void release_message_sync(VCHIQ_STATE_T *state, VCHIQ_HEADER_T *header); @@ -2168,7 +2167,6 @@ slot_handler_func(void *v) break; } - } DEBUG_TRACE(SLOT_HANDLER_LINE); @@ -2177,7 +2175,6 @@ slot_handler_func(void *v) return 0; } - /* Called by the recycle thread */ static int recycle_func(void *v) @@ -2193,7 +2190,6 @@ recycle_func(void *v) return 0; } - /* Called by the sync thread */ static int sync_func(void *v) @@ -2301,7 +2297,6 @@ sync_func(void *v) return 0; } - static void init_bulk_queue(VCHIQ_BULK_QUEUE_T *queue) { @@ -2312,14 +2307,12 @@ init_bulk_queue(VCHIQ_BULK_QUEUE_T *queue) queue->remove = 0; } - inline const char * get_conn_state_name(VCHIQ_CONNSTATE_T conn_state) { return conn_state_names[conn_state]; } - VCHIQ_SLOT_ZERO_T * vchiq_init_slots(void *mem_base, int mem_size) { @@ -2958,8 +2951,7 @@ vchiq_close_service_internal(VCHIQ_SERVICE_T *service, int close_recvd) case VCHIQ_SRVSTATE_OPENSYNC: mutex_lock(&state->sync_mutex); - /* Drop through */ - + /* fall through */ case VCHIQ_SRVSTATE_OPEN: if (state->is_master || close_recvd) { if (!do_abort_bulks(service)) @@ -3296,7 +3288,6 @@ vchiq_remove_service(VCHIQ_SERVICE_HANDLE_T handle) return status; } - /* This function may be called by kernel threads or user threads. * User threads may receive VCHIQ_RETRY to indicate that a signal has been * received and the call should be retried after being returned to user @@ -3876,7 +3867,6 @@ vchiq_dump_service_state(void *dump_context, VCHIQ_SERVICE_T *service) vchiq_dump_platform_service_state(dump_context, service); } - void vchiq_loud_error_header(void) { @@ -3901,7 +3891,6 @@ vchiq_loud_error_footer(void) "================"); } - VCHIQ_STATUS_T vchiq_send_remote_use(VCHIQ_STATE_T *state) { VCHIQ_STATUS_T status = VCHIQ_RETRY; diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h index 9e164652548a..afc1d8144a84 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_core.h @@ -702,7 +702,6 @@ vchiq_platform_handle_timeout(VCHIQ_STATE_T *state); extern void vchiq_set_conn_state(VCHIQ_STATE_T *state, VCHIQ_CONNSTATE_T newstate); - extern void vchiq_log_dump_mem(const char *label, uint32_t addr, const void *voidMem, size_t numBytes); diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c index 9367a9a5aa3c..766b4fe5f32c 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_debugfs.c @@ -32,7 +32,6 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - #include <linux/debugfs.h> #include "vchiq_core.h" #include "vchiq_arm.h" @@ -52,7 +51,6 @@ #define VCHIQ_LOG_INFO_STR "info" #define VCHIQ_LOG_TRACE_STR "trace" - /* Top-level debug info */ struct vchiq_debugfs_info { /* Global 'vchiq' debugfs entry used by all instances */ @@ -316,7 +314,6 @@ void vchiq_debugfs_remove_instance(VCHIQ_INSTANCE_T instance) debugfs_remove_recursive(node->dentry); } - int vchiq_debugfs_init(void) { BUG_ON(debugfs_info.vchiq_cfg_dir != NULL); diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c index 8af95fc361ed..d465e1cf5db9 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_shim.c @@ -41,14 +41,14 @@ #define vchiq_status_to_vchi(status) ((int32_t)status) -typedef struct { +struct shim_service { VCHIQ_SERVICE_HANDLE_T handle; VCHIU_QUEUE_T queue; VCHI_CALLBACK_T callback; void *callback_param; -} SHIM_SERVICE_T; +}; /* ---------------------------------------------------------------------- * return pointer to the mphi message driver function table @@ -84,7 +84,6 @@ VCHI_CONNECTION_T *vchi_create_connection( * void **data, * uint32_t *msg_size, - * VCHI_FLAGS_T flags * * Description: Routine to return a pointer to the current message (to allow in @@ -99,7 +98,7 @@ int32_t vchi_msg_peek(VCHI_SERVICE_HANDLE_T handle, uint32_t *msg_size, VCHI_FLAGS_T flags) { - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; VCHIQ_HEADER_T *header; WARN_ON((flags != VCHI_FLAGS_NONE) && @@ -131,7 +130,7 @@ EXPORT_SYMBOL(vchi_msg_peek); ***********************************************************/ int32_t vchi_msg_remove(VCHI_SERVICE_HANDLE_T handle) { - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; VCHIQ_HEADER_T *header; header = vchiu_queue_pop(&service->queue); @@ -163,7 +162,7 @@ int32_t vchi_msg_queue(VCHI_SERVICE_HANDLE_T handle, void *context, uint32_t data_size) { - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; VCHIQ_STATUS_T status; while (1) { @@ -262,7 +261,7 @@ int32_t vchi_bulk_queue_receive(VCHI_SERVICE_HANDLE_T handle, VCHI_FLAGS_T flags, void *bulk_handle) { - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; VCHIQ_BULK_MODE_T mode; VCHIQ_STATUS_T status; @@ -322,7 +321,7 @@ int32_t vchi_bulk_queue_transmit(VCHI_SERVICE_HANDLE_T handle, VCHI_FLAGS_T flags, void *bulk_handle) { - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; VCHIQ_BULK_MODE_T mode; VCHIQ_STATUS_T status; @@ -384,7 +383,7 @@ int32_t vchi_msg_dequeue(VCHI_SERVICE_HANDLE_T handle, uint32_t *actual_msg_size, VCHI_FLAGS_T flags) { - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; VCHIQ_HEADER_T *header; WARN_ON((flags != VCHI_FLAGS_NONE) && @@ -458,7 +457,7 @@ int32_t vchi_msg_hold(VCHI_SERVICE_HANDLE_T handle, VCHI_FLAGS_T flags, VCHI_HELD_MSG_T *message_handle) { - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; VCHIQ_HEADER_T *header; WARN_ON((flags != VCHI_FLAGS_NONE) && @@ -541,7 +540,6 @@ int32_t vchi_connect(VCHI_CONNECTION_T **connections, } EXPORT_SYMBOL(vchi_connect); - /*********************************************************** * Name: vchi_disconnect * @@ -561,7 +559,6 @@ int32_t vchi_disconnect(VCHI_INSTANCE_T instance_handle) } EXPORT_SYMBOL(vchi_disconnect); - /*********************************************************** * Name: vchi_service_open * Name: vchi_service_create @@ -579,8 +576,8 @@ EXPORT_SYMBOL(vchi_disconnect); static VCHIQ_STATUS_T shim_callback(VCHIQ_REASON_T reason, VCHIQ_HEADER_T *header, VCHIQ_SERVICE_HANDLE_T handle, void *bulk_user) { - SHIM_SERVICE_T *service = - (SHIM_SERVICE_T *)VCHIQ_GET_SERVICE_USERDATA(handle); + struct shim_service *service = + (struct shim_service *)VCHIQ_GET_SERVICE_USERDATA(handle); if (!service->callback) goto release; @@ -637,10 +634,10 @@ done: return VCHIQ_SUCCESS; } -static SHIM_SERVICE_T *service_alloc(VCHIQ_INSTANCE_T instance, +static struct shim_service *service_alloc(VCHIQ_INSTANCE_T instance, SERVICE_CREATION_T *setup) { - SHIM_SERVICE_T *service = kzalloc(sizeof(SHIM_SERVICE_T), GFP_KERNEL); + struct shim_service *service = kzalloc(sizeof(struct shim_service), GFP_KERNEL); (void)instance; @@ -657,7 +654,7 @@ static SHIM_SERVICE_T *service_alloc(VCHIQ_INSTANCE_T instance, return service; } -static void service_free(SHIM_SERVICE_T *service) +static void service_free(struct shim_service *service) { if (service) { vchiu_queue_delete(&service->queue); @@ -670,7 +667,7 @@ int32_t vchi_service_open(VCHI_INSTANCE_T instance_handle, VCHI_SERVICE_HANDLE_T *handle) { VCHIQ_INSTANCE_T instance = (VCHIQ_INSTANCE_T)instance_handle; - SHIM_SERVICE_T *service = service_alloc(instance, setup); + struct shim_service *service = service_alloc(instance, setup); *handle = (VCHI_SERVICE_HANDLE_T)service; @@ -703,7 +700,7 @@ int32_t vchi_service_create(VCHI_INSTANCE_T instance_handle, VCHI_SERVICE_HANDLE_T *handle) { VCHIQ_INSTANCE_T instance = (VCHIQ_INSTANCE_T)instance_handle; - SHIM_SERVICE_T *service = service_alloc(instance, setup); + struct shim_service *service = service_alloc(instance, setup); *handle = (VCHI_SERVICE_HANDLE_T)service; @@ -733,7 +730,7 @@ EXPORT_SYMBOL(vchi_service_create); int32_t vchi_service_close(const VCHI_SERVICE_HANDLE_T handle) { int32_t ret = -1; - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; if (service) { VCHIQ_STATUS_T status = vchiq_close_service(service->handle); @@ -751,7 +748,7 @@ EXPORT_SYMBOL(vchi_service_close); int32_t vchi_service_destroy(const VCHI_SERVICE_HANDLE_T handle) { int32_t ret = -1; - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; if (service) { VCHIQ_STATUS_T status = vchiq_remove_service(service->handle); @@ -772,7 +769,7 @@ int32_t vchi_service_set_option(const VCHI_SERVICE_HANDLE_T handle, int value) { int32_t ret = -1; - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; VCHIQ_SERVICE_OPTION_T vchiq_option; switch (option) { @@ -801,7 +798,7 @@ EXPORT_SYMBOL(vchi_service_set_option); int32_t vchi_get_peer_version(const VCHI_SERVICE_HANDLE_T handle, short *peer_version) { int32_t ret = -1; - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; if (service) { @@ -828,7 +825,7 @@ int32_t vchi_service_use(const VCHI_SERVICE_HANDLE_T handle) { int32_t ret = -1; - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; if (service) ret = vchiq_status_to_vchi(vchiq_use_service(service->handle)); return ret; @@ -849,7 +846,7 @@ int32_t vchi_service_release(const VCHI_SERVICE_HANDLE_T handle) { int32_t ret = -1; - SHIM_SERVICE_T *service = (SHIM_SERVICE_T *)handle; + struct shim_service *service = (struct shim_service *)handle; if (service) ret = vchiq_status_to_vchi( vchiq_release_service(service->handle)); |