aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/tidspbridge
diff options
context:
space:
mode:
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>2012-03-08 19:03:52 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-03-09 16:21:08 -0500
commit4d3bfdda15d2019a3c2c91c9043ee4c3f5627708 (patch)
tree34b862e5532ab01b95fb8803fdaa171767ec1871 /drivers/staging/tidspbridge
parent81e8b88a1431bf1209d882da047c94eb8bcc1f14 (diff)
staging: tidspbridge: remove nldr_init() and nldr_exit()
The dynamic loader was called by node.c with an interface. This interface was also modified to avoid the use of nldr_init() and nldr_exit(). There is not functional changes. Signed-off-by: Víctor Manuel Jáquez Leal <vjaquez@igalia.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/tidspbridge')
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/nldr.h2
-rw-r--r--drivers/staging/tidspbridge/include/dspbridge/nldrdefs.h34
-rw-r--r--drivers/staging/tidspbridge/rmgr/nldr.c19
-rw-r--r--drivers/staging/tidspbridge/rmgr/node.c7
4 files changed, 0 insertions, 62 deletions
diff --git a/drivers/staging/tidspbridge/include/dspbridge/nldr.h b/drivers/staging/tidspbridge/include/dspbridge/nldr.h
index d9653ee667e..c5e48ca6c54 100644
--- a/drivers/staging/tidspbridge/include/dspbridge/nldr.h
+++ b/drivers/staging/tidspbridge/include/dspbridge/nldr.h
@@ -36,7 +36,6 @@ extern int nldr_create(struct nldr_object **nldr,
36 const struct nldr_attrs *pattrs); 36 const struct nldr_attrs *pattrs);
37 37
38extern void nldr_delete(struct nldr_object *nldr_obj); 38extern void nldr_delete(struct nldr_object *nldr_obj);
39extern void nldr_exit(void);
40 39
41extern int nldr_get_fxn_addr(struct nldr_nodeobject *nldr_node_obj, 40extern int nldr_get_fxn_addr(struct nldr_nodeobject *nldr_node_obj,
42 char *str_fxn, u32 * addr); 41 char *str_fxn, u32 * addr);
@@ -44,7 +43,6 @@ extern int nldr_get_fxn_addr(struct nldr_nodeobject *nldr_node_obj,
44extern int nldr_get_rmm_manager(struct nldr_object *nldr, 43extern int nldr_get_rmm_manager(struct nldr_object *nldr,
45 struct rmm_target_obj **rmm_mgr); 44 struct rmm_target_obj **rmm_mgr);
46 45
47extern bool nldr_init(void);
48extern int nldr_load(struct nldr_nodeobject *nldr_node_obj, 46extern int nldr_load(struct nldr_nodeobject *nldr_node_obj,
49 enum nldr_phase phase); 47 enum nldr_phase phase);
50extern int nldr_unload(struct nldr_nodeobject *nldr_node_obj, 48extern int nldr_unload(struct nldr_nodeobject *nldr_node_obj,
diff --git a/drivers/staging/tidspbridge/include/dspbridge/nldrdefs.h b/drivers/staging/tidspbridge/include/dspbridge/nldrdefs.h
index ee3a85f08fc..7e3c7f58b49 100644
--- a/drivers/staging/tidspbridge/include/dspbridge/nldrdefs.h
+++ b/drivers/staging/tidspbridge/include/dspbridge/nldrdefs.h
@@ -119,7 +119,6 @@ enum nldr_phase {
119 * 0: Success. 119 * 0: Success.
120 * -ENOMEM: Insufficient memory on GPP. 120 * -ENOMEM: Insufficient memory on GPP.
121 * Requires: 121 * Requires:
122 * nldr_init(void) called.
123 * Valid nldr_obj. 122 * Valid nldr_obj.
124 * node_props != NULL. 123 * node_props != NULL.
125 * nldr_nodeobj != NULL. 124 * nldr_nodeobj != NULL.
@@ -148,7 +147,6 @@ typedef int(*nldr_allocatefxn) (struct nldr_object *nldr_obj,
148 * 0: Success; 147 * 0: Success;
149 * -ENOMEM: Insufficient memory for requested resources. 148 * -ENOMEM: Insufficient memory for requested resources.
150 * Requires: 149 * Requires:
151 * nldr_init(void) called.
152 * nldr != NULL. 150 * nldr != NULL.
153 * hdev_obj != NULL. 151 * hdev_obj != NULL.
154 * pattrs != NULL. 152 * pattrs != NULL.
@@ -168,7 +166,6 @@ typedef int(*nldr_createfxn) (struct nldr_object **nldr,
168 * nldr_obj: Node manager object. 166 * nldr_obj: Node manager object.
169 * Returns: 167 * Returns:
170 * Requires: 168 * Requires:
171 * nldr_init(void) called.
172 * Valid nldr_obj. 169 * Valid nldr_obj.
173 * Ensures: 170 * Ensures:
174 * nldr_obj invalid 171 * nldr_obj invalid
@@ -176,20 +173,6 @@ typedef int(*nldr_createfxn) (struct nldr_object **nldr,
176typedef void (*nldr_deletefxn) (struct nldr_object *nldr_obj); 173typedef void (*nldr_deletefxn) (struct nldr_object *nldr_obj);
177 174
178/* 175/*
179 * ======== nldr_exit ========
180 * Discontinue usage of NLDR module.
181 *
182 * Parameters:
183 * Returns:
184 * Requires:
185 * nldr_init(void) successfully called before.
186 * Ensures:
187 * Any resources acquired in nldr_init(void) will be freed when last NLDR
188 * client calls nldr_exit(void).
189 */
190typedef void (*nldr_exitfxn) (void);
191
192/*
193 * ======== NLDR_Free ======== 176 * ======== NLDR_Free ========
194 * Free resources allocated in nldr_allocate. 177 * Free resources allocated in nldr_allocate.
195 * 178 *
@@ -197,7 +180,6 @@ typedef void (*nldr_exitfxn) (void);
197 * nldr_node_obj: Handle returned from nldr_allocate(). 180 * nldr_node_obj: Handle returned from nldr_allocate().
198 * Returns: 181 * Returns:
199 * Requires: 182 * Requires:
200 * nldr_init(void) called.
201 * Valid nldr_node_obj. 183 * Valid nldr_node_obj.
202 * Ensures: 184 * Ensures:
203 */ 185 */
@@ -216,7 +198,6 @@ typedef void (*nldr_freefxn) (struct nldr_nodeobject *nldr_node_obj);
216 * 0: Success. 198 * 0: Success.
217 * -ESPIPE: Address of function not found. 199 * -ESPIPE: Address of function not found.
218 * Requires: 200 * Requires:
219 * nldr_init(void) called.
220 * Valid nldr_node_obj. 201 * Valid nldr_node_obj.
221 * addr != NULL; 202 * addr != NULL;
222 * str_fxn != NULL; 203 * str_fxn != NULL;
@@ -227,17 +208,6 @@ typedef int(*nldr_getfxnaddrfxn) (struct nldr_nodeobject
227 char *str_fxn, u32 * addr); 208 char *str_fxn, u32 * addr);
228 209
229/* 210/*
230 * ======== nldr_init ========
231 * Initialize the NLDR module.
232 *
233 * Parameters:
234 * Returns:
235 * TRUE if initialization succeeded, FALSE otherwise.
236 * Ensures:
237 */
238typedef bool(*nldr_initfxn) (void);
239
240/*
241 * ======== nldr_load ======== 211 * ======== nldr_load ========
242 * Load create, delete, or execute phase function of a node on the DSP. 212 * Load create, delete, or execute phase function of a node on the DSP.
243 * 213 *
@@ -251,7 +221,6 @@ typedef bool(*nldr_initfxn) (void);
251 * is already in use. 221 * is already in use.
252 * -EILSEQ: Failure in dynamic loader library. 222 * -EILSEQ: Failure in dynamic loader library.
253 * Requires: 223 * Requires:
254 * nldr_init(void) called.
255 * Valid nldr_node_obj. 224 * Valid nldr_node_obj.
256 * Ensures: 225 * Ensures:
257 */ 226 */
@@ -269,7 +238,6 @@ typedef int(*nldr_loadfxn) (struct nldr_nodeobject *nldr_node_obj,
269 * 0: Success. 238 * 0: Success.
270 * -ENOMEM: Insufficient memory on GPP. 239 * -ENOMEM: Insufficient memory on GPP.
271 * Requires: 240 * Requires:
272 * nldr_init(void) called.
273 * Valid nldr_node_obj. 241 * Valid nldr_node_obj.
274 * Ensures: 242 * Ensures:
275 */ 243 */
@@ -283,9 +251,7 @@ struct node_ldr_fxns {
283 nldr_allocatefxn allocate; 251 nldr_allocatefxn allocate;
284 nldr_createfxn create; 252 nldr_createfxn create;
285 nldr_deletefxn delete; 253 nldr_deletefxn delete;
286 nldr_exitfxn exit;
287 nldr_getfxnaddrfxn get_fxn_addr; 254 nldr_getfxnaddrfxn get_fxn_addr;
288 nldr_initfxn init;
289 nldr_loadfxn load; 255 nldr_loadfxn load;
290 nldr_unloadfxn unload; 256 nldr_unloadfxn unload;
291}; 257};
diff --git a/drivers/staging/tidspbridge/rmgr/nldr.c b/drivers/staging/tidspbridge/rmgr/nldr.c
index 46086b5b04c..30d5480fcdc 100644
--- a/drivers/staging/tidspbridge/rmgr/nldr.c
+++ b/drivers/staging/tidspbridge/rmgr/nldr.c
@@ -620,15 +620,6 @@ void nldr_delete(struct nldr_object *nldr_obj)
620} 620}
621 621
622/* 622/*
623 * ======== nldr_exit ========
624 * Discontinue usage of NLDR module.
625 */
626void nldr_exit(void)
627{
628 /* do nothing */
629}
630
631/*
632 * ======== nldr_get_fxn_addr ======== 623 * ======== nldr_get_fxn_addr ========
633 */ 624 */
634int nldr_get_fxn_addr(struct nldr_nodeobject *nldr_node_obj, 625int nldr_get_fxn_addr(struct nldr_nodeobject *nldr_node_obj,
@@ -736,16 +727,6 @@ int nldr_get_rmm_manager(struct nldr_object *nldr,
736} 727}
737 728
738/* 729/*
739 * ======== nldr_init ========
740 * Initialize the NLDR module.
741 */
742bool nldr_init(void)
743{
744 /* do nothing */
745 return true;
746}
747
748/*
749 * ======== nldr_load ======== 730 * ======== nldr_load ========
750 */ 731 */
751int nldr_load(struct nldr_nodeobject *nldr_node_obj, 732int nldr_load(struct nldr_nodeobject *nldr_node_obj,
diff --git a/drivers/staging/tidspbridge/rmgr/node.c b/drivers/staging/tidspbridge/rmgr/node.c
index 908cd1e761c..7fb426c5251 100644
--- a/drivers/staging/tidspbridge/rmgr/node.c
+++ b/drivers/staging/tidspbridge/rmgr/node.c
@@ -159,7 +159,6 @@ struct node_mgr {
159 /* Loader properties */ 159 /* Loader properties */
160 struct nldr_object *nldr_obj; /* Handle to loader */ 160 struct nldr_object *nldr_obj; /* Handle to loader */
161 struct node_ldr_fxns nldr_fxns; /* Handle to loader functions */ 161 struct node_ldr_fxns nldr_fxns; /* Handle to loader functions */
162 bool loader_init; /* Loader Init function succeeded? */
163}; 162};
164 163
165/* 164/*
@@ -266,9 +265,7 @@ static struct node_ldr_fxns nldr_fxns = {
266 nldr_allocate, 265 nldr_allocate,
267 nldr_create, 266 nldr_create,
268 nldr_delete, 267 nldr_delete,
269 nldr_exit,
270 nldr_get_fxn_addr, 268 nldr_get_fxn_addr,
271 nldr_init,
272 nldr_load, 269 nldr_load,
273 nldr_unload, 270 nldr_unload,
274}; 271};
@@ -1337,7 +1334,6 @@ int node_create_mgr(struct node_mgr **node_man,
1337 nldr_attrs_obj.write = mem_write; 1334 nldr_attrs_obj.write = mem_write;
1338 nldr_attrs_obj.dsp_word_size = node_mgr_obj->dsp_word_size; 1335 nldr_attrs_obj.dsp_word_size = node_mgr_obj->dsp_word_size;
1339 nldr_attrs_obj.dsp_mau_size = node_mgr_obj->dsp_mau_size; 1336 nldr_attrs_obj.dsp_mau_size = node_mgr_obj->dsp_mau_size;
1340 node_mgr_obj->loader_init = node_mgr_obj->nldr_fxns.init();
1341 status = node_mgr_obj->nldr_fxns.create(&node_mgr_obj->nldr_obj, 1337 status = node_mgr_obj->nldr_fxns.create(&node_mgr_obj->nldr_obj,
1342 hdev_obj, 1338 hdev_obj,
1343 &nldr_attrs_obj); 1339 &nldr_attrs_obj);
@@ -2507,9 +2503,6 @@ static void delete_node_mgr(struct node_mgr *hnode_mgr)
2507 if (hnode_mgr->nldr_obj) 2503 if (hnode_mgr->nldr_obj)
2508 hnode_mgr->nldr_fxns.delete(hnode_mgr->nldr_obj); 2504 hnode_mgr->nldr_fxns.delete(hnode_mgr->nldr_obj);
2509 2505
2510 if (hnode_mgr->loader_init)
2511 hnode_mgr->nldr_fxns.exit();
2512
2513 kfree(hnode_mgr); 2506 kfree(hnode_mgr);
2514 } 2507 }
2515} 2508}