rpmsg.c: move onceinit judge logic to common part
move rptun/rpmsg_virtio onceinit judge logic to rpmsg_register. Signed-off-by: Yongrong Wang <wangyongrong@xiaomi.com>
This commit is contained in:
parent
d2d8d49359
commit
88ec55f6af
2 changed files with 14 additions and 13 deletions
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <metal/sys.h>
|
||||
#include <nuttx/kmalloc.h>
|
||||
#include <nuttx/mutex.h>
|
||||
#include <nuttx/semaphore.h>
|
||||
|
|
@ -455,8 +456,21 @@ void rpmsg_device_destory(FAR struct rpmsg_s *rpmsg)
|
|||
int rpmsg_register(FAR const char *path, FAR struct rpmsg_s *rpmsg,
|
||||
FAR const struct rpmsg_ops_s *ops)
|
||||
{
|
||||
struct metal_init_params params = METAL_INIT_DEFAULTS;
|
||||
static bool onceinit = false;
|
||||
int ret;
|
||||
|
||||
if (!onceinit)
|
||||
{
|
||||
ret = metal_init(¶ms);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
onceinit = true;
|
||||
}
|
||||
|
||||
ret = register_driver(path, &g_rpmsg_dev_ops, 0222, rpmsg);
|
||||
if (ret < 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -971,25 +971,12 @@ static metal_phys_addr_t rptun_da_to_pa(FAR struct rptun_dev_s *dev,
|
|||
|
||||
int rptun_initialize(FAR struct rptun_dev_s *dev)
|
||||
{
|
||||
struct metal_init_params params = METAL_INIT_DEFAULTS;
|
||||
FAR struct rptun_priv_s *priv;
|
||||
static bool onceinit = false;
|
||||
FAR char *argv[3];
|
||||
char arg1[32];
|
||||
char name[32];
|
||||
int ret;
|
||||
|
||||
if (!onceinit)
|
||||
{
|
||||
ret = metal_init(¶ms);
|
||||
if (ret < 0)
|
||||
{
|
||||
return ret;
|
||||
}
|
||||
|
||||
onceinit = true;
|
||||
}
|
||||
|
||||
priv = kmm_zalloc(sizeof(struct rptun_priv_s));
|
||||
if (priv == NULL)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue