diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-28 09:44:56 -0700 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-10-28 09:44:56 -0700 |
commit | e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7 (patch) | |
tree | ea51b391f7d74ca695dcb9f5e46eb02688a92ed9 /drivers/staging/tidspbridge/pmgr/dspapi.c | |
parent | 81280572ca6f54009edfa4deee563e8678784218 (diff) | |
parent | a4ac0d847af9dd34d5953a5e264400326144b6b2 (diff) | |
download | op-kernel-dev-e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7.zip op-kernel-dev-e4c5bf8e3dca827a1b3a6fac494eae8c74b7e1e7.tar.gz |
Merge 'staging-next' to Linus's tree
This merges the staging-next tree to Linus's tree and resolves
some conflicts that were present due to changes in other trees that were
affected by files here.
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/tidspbridge/pmgr/dspapi.c')
-rw-r--r-- | drivers/staging/tidspbridge/pmgr/dspapi.c | 62 |
1 files changed, 24 insertions, 38 deletions
diff --git a/drivers/staging/tidspbridge/pmgr/dspapi.c b/drivers/staging/tidspbridge/pmgr/dspapi.c index 7b42f72..981551c 100644 --- a/drivers/staging/tidspbridge/pmgr/dspapi.c +++ b/drivers/staging/tidspbridge/pmgr/dspapi.c @@ -28,9 +28,7 @@ #include <dspbridge/dbc.h> /* ----------------------------------- OS Adaptation Layer */ -#include <dspbridge/cfg.h> #include <dspbridge/ntfy.h> -#include <dspbridge/services.h> /* ----------------------------------- Platform Manager */ #include <dspbridge/chnl.h> @@ -381,8 +379,8 @@ int api_init_complete2(void) int status = 0; struct cfg_devnode *dev_node; struct dev_object *hdev_obj; + struct drv_data *drv_datap; u8 dev_type; - u32 tmp; DBC_REQUIRE(api_c_refs > 0); @@ -397,10 +395,12 @@ int api_init_complete2(void) if (dev_get_dev_type(hdev_obj, &dev_type)) continue; - if ((dev_type == DSP_UNIT) || (dev_type == IVA_UNIT)) - if (cfg_get_auto_start(dev_node, &tmp) == 0 - && tmp) + if ((dev_type == DSP_UNIT) || (dev_type == IVA_UNIT)) { + drv_datap = dev_get_drvdata(bridge); + + if (drv_datap && drv_datap->base_img) proc_auto_start(dev_node, hdev_obj); + } } return status; @@ -493,8 +493,10 @@ u32 mgrwrap_register_object(union trapped_args *args, void *pr_ctxt) args->args_mgr_registerobject.psz_path_name) + 1; psz_path_name = kmalloc(path_size, GFP_KERNEL); - if (!psz_path_name) + if (!psz_path_name) { + status = -ENOMEM; goto func_end; + } ret = strncpy_from_user(psz_path_name, (char *)args->args_mgr_registerobject. psz_path_name, path_size); @@ -503,8 +505,10 @@ u32 mgrwrap_register_object(union trapped_args *args, void *pr_ctxt) goto func_end; } - if (args->args_mgr_registerobject.obj_type >= DSP_DCDMAXOBJTYPE) - return -EINVAL; + if (args->args_mgr_registerobject.obj_type >= DSP_DCDMAXOBJTYPE) { + status = -EINVAL; + goto func_end; + } status = dcd_register_object(&uuid_obj, args->args_mgr_registerobject.obj_type, @@ -872,7 +876,11 @@ u32 procwrap_load(union trapped_args *args, void *pr_ctxt) /* number of elements in the envp array including NULL */ count = 0; do { - get_user(temp, args->args_proc_load.user_envp + count); + if (get_user(temp, + args->args_proc_load.user_envp + count)) { + status = -EFAULT; + goto func_cont; + } count++; } while (temp); envp = kmalloc(count * sizeof(u8 *), GFP_KERNEL); @@ -985,27 +993,10 @@ u32 procwrap_register_notify(union trapped_args *args, void *pr_ctxt) /* * ======== procwrap_reserve_memory ======== */ -u32 procwrap_reserve_memory(union trapped_args *args, void *pr_ctxt) +u32 __deprecated procwrap_reserve_memory(union trapped_args *args, + void *pr_ctxt) { - int status; - void *prsv_addr; - void *hprocessor = ((struct process_context *)pr_ctxt)->hprocessor; - - if ((args->args_proc_rsvmem.ul_size <= 0) || - (args->args_proc_rsvmem.ul_size & (PG_SIZE4K - 1)) != 0) - return -EINVAL; - - status = proc_reserve_memory(hprocessor, - args->args_proc_rsvmem.ul_size, &prsv_addr, - pr_ctxt); - if (!status) { - if (put_user(prsv_addr, args->args_proc_rsvmem.pp_rsv_addr)) { - status = -EINVAL; - proc_un_reserve_memory(args->args_proc_rsvmem. - hprocessor, prsv_addr, pr_ctxt); - } - } - return status; + return 0; } /* @@ -1034,15 +1025,10 @@ u32 procwrap_un_map(union trapped_args *args, void *pr_ctxt) /* * ======== procwrap_un_reserve_memory ======== */ -u32 procwrap_un_reserve_memory(union trapped_args *args, void *pr_ctxt) +u32 __deprecated procwrap_un_reserve_memory(union trapped_args *args, + void *pr_ctxt) { - int status; - void *hprocessor = ((struct process_context *)pr_ctxt)->hprocessor; - - status = proc_un_reserve_memory(hprocessor, - args->args_proc_unrsvmem.prsv_addr, - pr_ctxt); - return status; + return 0; } /* |