remoteproc: adopt the driver core's alloc/add/del/put naming

To make remoteproc's API more intuitive for developers, we adopt
the driver core's naming, i.e. alloc -> add -> del -> put. We'll also
add register/unregister when their first user shows up.

Otherwise - there's no functional change here.

Suggested by Russell King <linux@arm.linux.org.uk>.

Cc: Russell King <linux@arm.linux.org.uk>
Cc: Fernando Guzman Lugo <fernando.lugo@ti.com>
Cc: Sjur Brændeland <sjur.brandeland@stericsson.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
This commit is contained in:
Ohad Ben-Cohen 2012-07-04 16:25:06 +03:00
parent 40e575b1d0
commit 160e7c840f
4 changed files with 32 additions and 32 deletions

View File

@ -90,21 +90,21 @@ int dummy_rproc_example(struct rproc *my_rproc)
This function should be used by rproc implementations during This function should be used by rproc implementations during
initialization of the remote processor. initialization of the remote processor.
After creating an rproc handle using this function, and when ready, After creating an rproc handle using this function, and when ready,
implementations should then call rproc_register() to complete implementations should then call rproc_add() to complete
the registration of the remote processor. the registration of the remote processor.
On success, the new rproc is returned, and on failure, NULL. On success, the new rproc is returned, and on failure, NULL.
Note: _never_ directly deallocate @rproc, even if it was not registered Note: _never_ directly deallocate @rproc, even if it was not registered
yet. Instead, when you need to unroll rproc_alloc(), use rproc_free(). yet. Instead, when you need to unroll rproc_alloc(), use rproc_put().
void rproc_free(struct rproc *rproc) void rproc_put(struct rproc *rproc)
- Free an rproc handle that was allocated by rproc_alloc. - Free an rproc handle that was allocated by rproc_alloc.
This function essentially unrolls rproc_alloc(), by decrementing the This function essentially unrolls rproc_alloc(), by decrementing the
rproc's refcount. It doesn't directly free rproc; that would happen rproc's refcount. It doesn't directly free rproc; that would happen
only if there are no other references to rproc and its refcount now only if there are no other references to rproc and its refcount now
dropped to zero. dropped to zero.
int rproc_register(struct rproc *rproc) int rproc_add(struct rproc *rproc)
- Register @rproc with the remoteproc framework, after it has been - Register @rproc with the remoteproc framework, after it has been
allocated with rproc_alloc(). allocated with rproc_alloc().
This is called by the platform-specific rproc implementation, whenever This is called by the platform-specific rproc implementation, whenever
@ -117,15 +117,15 @@ int dummy_rproc_example(struct rproc *my_rproc)
of registering this remote processor, additional virtio drivers might get of registering this remote processor, additional virtio drivers might get
probed. probed.
int rproc_unregister(struct rproc *rproc) int rproc_del(struct rproc *rproc)
- Unroll rproc_register(). - Unroll rproc_add().
This function should be called when the platform specific rproc This function should be called when the platform specific rproc
implementation decides to remove the rproc device. it should implementation decides to remove the rproc device. it should
_only_ be called if a previous invocation of rproc_register() _only_ be called if a previous invocation of rproc_add()
has completed successfully. has completed successfully.
After rproc_unregister() returns, @rproc is still valid, and its After rproc_del() returns, @rproc is still valid, and its
last refcount should be decremented by calling rproc_free(). last refcount should be decremented by calling rproc_put().
Returns 0 on success and -EINVAL if @rproc isn't valid. Returns 0 on success and -EINVAL if @rproc isn't valid.

View File

@ -199,14 +199,14 @@ static int __devinit omap_rproc_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, rproc); platform_set_drvdata(pdev, rproc);
ret = rproc_register(rproc); ret = rproc_add(rproc);
if (ret) if (ret)
goto free_rproc; goto free_rproc;
return 0; return 0;
free_rproc: free_rproc:
rproc_free(rproc); rproc_put(rproc);
return ret; return ret;
} }
@ -214,8 +214,8 @@ static int __devexit omap_rproc_remove(struct platform_device *pdev)
{ {
struct rproc *rproc = platform_get_drvdata(pdev); struct rproc *rproc = platform_get_drvdata(pdev);
rproc_unregister(rproc); rproc_del(rproc);
rproc_free(rproc); rproc_put(rproc);
return 0; return 0;
} }

View File

@ -1101,7 +1101,7 @@ static void rproc_fw_config_virtio(const struct firmware *fw, void *context)
out: out:
release_firmware(fw); release_firmware(fw);
/* allow rproc_unregister() contexts, if any, to proceed */ /* allow rproc_del() contexts, if any, to proceed */
complete_all(&rproc->firmware_loading_complete); complete_all(&rproc->firmware_loading_complete);
} }
@ -1238,7 +1238,7 @@ out:
EXPORT_SYMBOL(rproc_shutdown); EXPORT_SYMBOL(rproc_shutdown);
/** /**
* rproc_register() - register a remote processor * rproc_add() - register a remote processor
* @rproc: the remote processor handle to register * @rproc: the remote processor handle to register
* *
* Registers @rproc with the remoteproc framework, after it has been * Registers @rproc with the remoteproc framework, after it has been
@ -1257,7 +1257,7 @@ EXPORT_SYMBOL(rproc_shutdown);
* of registering this remote processor, additional virtio drivers might be * of registering this remote processor, additional virtio drivers might be
* probed. * probed.
*/ */
int rproc_register(struct rproc *rproc) int rproc_add(struct rproc *rproc)
{ {
struct device *dev = &rproc->dev; struct device *dev = &rproc->dev;
int ret = 0; int ret = 0;
@ -1274,7 +1274,7 @@ int rproc_register(struct rproc *rproc)
/* create debugfs entries */ /* create debugfs entries */
rproc_create_debug_dir(rproc); rproc_create_debug_dir(rproc);
/* rproc_unregister() calls must wait until async loader completes */ /* rproc_del() calls must wait until async loader completes */
init_completion(&rproc->firmware_loading_complete); init_completion(&rproc->firmware_loading_complete);
/* /*
@ -1295,7 +1295,7 @@ int rproc_register(struct rproc *rproc)
return ret; return ret;
} }
EXPORT_SYMBOL(rproc_register); EXPORT_SYMBOL(rproc_add);
/** /**
* rproc_type_release() - release a remote processor instance * rproc_type_release() - release a remote processor instance
@ -1343,13 +1343,13 @@ static struct device_type rproc_type = {
* of the remote processor. * of the remote processor.
* *
* After creating an rproc handle using this function, and when ready, * After creating an rproc handle using this function, and when ready,
* implementations should then call rproc_register() to complete * implementations should then call rproc_add() to complete
* the registration of the remote processor. * the registration of the remote processor.
* *
* On success the new rproc is returned, and on failure, NULL. * On success the new rproc is returned, and on failure, NULL.
* *
* Note: _never_ directly deallocate @rproc, even if it was not registered * Note: _never_ directly deallocate @rproc, even if it was not registered
* yet. Instead, when you need to unroll rproc_alloc(), use rproc_free(). * yet. Instead, when you need to unroll rproc_alloc(), use rproc_put().
*/ */
struct rproc *rproc_alloc(struct device *dev, const char *name, struct rproc *rproc_alloc(struct device *dev, const char *name,
const struct rproc_ops *ops, const struct rproc_ops *ops,
@ -1403,7 +1403,7 @@ struct rproc *rproc_alloc(struct device *dev, const char *name,
EXPORT_SYMBOL(rproc_alloc); EXPORT_SYMBOL(rproc_alloc);
/** /**
* rproc_free() - unroll rproc_alloc() * rproc_put() - unroll rproc_alloc()
* @rproc: the remote processor handle * @rproc: the remote processor handle
* *
* This function decrements the rproc dev refcount. * This function decrements the rproc dev refcount.
@ -1411,28 +1411,28 @@ EXPORT_SYMBOL(rproc_alloc);
* If no one holds any reference to rproc anymore, then its refcount would * If no one holds any reference to rproc anymore, then its refcount would
* now drop to zero, and it would be freed. * now drop to zero, and it would be freed.
*/ */
void rproc_free(struct rproc *rproc) void rproc_put(struct rproc *rproc)
{ {
put_device(&rproc->dev); put_device(&rproc->dev);
} }
EXPORT_SYMBOL(rproc_free); EXPORT_SYMBOL(rproc_put);
/** /**
* rproc_unregister() - unregister a remote processor * rproc_del() - unregister a remote processor
* @rproc: rproc handle to unregister * @rproc: rproc handle to unregister
* *
* This function should be called when the platform specific rproc * This function should be called when the platform specific rproc
* implementation decides to remove the rproc device. it should * implementation decides to remove the rproc device. it should
* _only_ be called if a previous invocation of rproc_register() * _only_ be called if a previous invocation of rproc_add()
* has completed successfully. * has completed successfully.
* *
* After rproc_unregister() returns, @rproc isn't freed yet, because * After rproc_del() returns, @rproc isn't freed yet, because
* of the outstanding reference created by rproc_alloc. To decrement that * of the outstanding reference created by rproc_alloc. To decrement that
* one last refcount, one still needs to call rproc_free(). * one last refcount, one still needs to call rproc_put().
* *
* Returns 0 on success and -EINVAL if @rproc isn't valid. * Returns 0 on success and -EINVAL if @rproc isn't valid.
*/ */
int rproc_unregister(struct rproc *rproc) int rproc_del(struct rproc *rproc)
{ {
struct rproc_vdev *rvdev, *tmp; struct rproc_vdev *rvdev, *tmp;
@ -1450,7 +1450,7 @@ int rproc_unregister(struct rproc *rproc)
return 0; return 0;
} }
EXPORT_SYMBOL(rproc_unregister); EXPORT_SYMBOL(rproc_del);
static int __init remoteproc_init(void) static int __init remoteproc_init(void)
{ {

View File

@ -452,9 +452,9 @@ struct rproc_vdev {
struct rproc *rproc_alloc(struct device *dev, const char *name, struct rproc *rproc_alloc(struct device *dev, const char *name,
const struct rproc_ops *ops, const struct rproc_ops *ops,
const char *firmware, int len); const char *firmware, int len);
void rproc_free(struct rproc *rproc); void rproc_put(struct rproc *rproc);
int rproc_register(struct rproc *rproc); int rproc_add(struct rproc *rproc);
int rproc_unregister(struct rproc *rproc); int rproc_del(struct rproc *rproc);
int rproc_boot(struct rproc *rproc); int rproc_boot(struct rproc *rproc);
void rproc_shutdown(struct rproc *rproc); void rproc_shutdown(struct rproc *rproc);