drivers/rptun: Add 'RPTUN_CONFIG' interface.
Change-Id: I1c6177ffe0c49c385f0d784b1ff0dbb69b6432f8 Signed-off-by: zhongan <zhongan@xiaomi.com>
This commit is contained in:
parent
b256b2055f
commit
2818b6b2c0
|
@ -112,6 +112,7 @@ static int rptun_mmap(FAR struct remoteproc *rproc,
|
||||||
FAR metal_phys_addr_t *pa, FAR metal_phys_addr_t *da,
|
FAR metal_phys_addr_t *pa, FAR metal_phys_addr_t *da,
|
||||||
FAR void **va, size_t size, unsigned int attribute,
|
FAR void **va, size_t size, unsigned int attribute,
|
||||||
FAR struct metal_io_region **io_);
|
FAR struct metal_io_region **io_);
|
||||||
|
static int rptun_config(struct remoteproc *rproc, void *data);
|
||||||
static int rptun_start(FAR struct remoteproc *rproc);
|
static int rptun_start(FAR struct remoteproc *rproc);
|
||||||
static int rptun_stop(FAR struct remoteproc *rproc);
|
static int rptun_stop(FAR struct remoteproc *rproc);
|
||||||
static int rptun_notify(FAR struct remoteproc *rproc, uint32_t id);
|
static int rptun_notify(FAR struct remoteproc *rproc, uint32_t id);
|
||||||
|
@ -147,6 +148,7 @@ static struct remoteproc_ops g_rptun_ops =
|
||||||
.init = rptun_init,
|
.init = rptun_init,
|
||||||
.remove = rptun_remove,
|
.remove = rptun_remove,
|
||||||
.mmap = rptun_mmap,
|
.mmap = rptun_mmap,
|
||||||
|
.config = rptun_config,
|
||||||
.start = rptun_start,
|
.start = rptun_start,
|
||||||
.stop = rptun_stop,
|
.stop = rptun_stop,
|
||||||
.notify = rptun_notify,
|
.notify = rptun_notify,
|
||||||
|
@ -269,6 +271,18 @@ static int rptun_mmap(FAR struct remoteproc *rproc,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int rptun_config(struct remoteproc *rproc, void *data)
|
||||||
|
{
|
||||||
|
struct rptun_priv_s *priv = rproc->priv;
|
||||||
|
|
||||||
|
if (RPTUN_IS_MASTER(priv->dev))
|
||||||
|
{
|
||||||
|
return RPTUN_CONFIG(priv->dev, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int rptun_start(FAR struct remoteproc *rproc)
|
static int rptun_start(FAR struct remoteproc *rproc)
|
||||||
{
|
{
|
||||||
FAR struct rptun_priv_s *priv = rproc->priv;
|
FAR struct rptun_priv_s *priv = rproc->priv;
|
||||||
|
|
|
@ -156,6 +156,22 @@
|
||||||
|
|
||||||
#define RPTUN_IS_MASTER(d) ((d)->ops->is_master(d))
|
#define RPTUN_IS_MASTER(d) ((d)->ops->is_master(d))
|
||||||
|
|
||||||
|
/****************************************************************************
|
||||||
|
* Name: RPTUN_CONFIG
|
||||||
|
*
|
||||||
|
* Description:
|
||||||
|
* CONFIG remote cpu
|
||||||
|
*
|
||||||
|
* Input Parameters:
|
||||||
|
* dev - Device-specific state data
|
||||||
|
* data - Device-specific private data
|
||||||
|
*
|
||||||
|
* Returned Value:
|
||||||
|
* OK unless an error occurs. Then a negated errno value is returned
|
||||||
|
*
|
||||||
|
****************************************************************************/
|
||||||
|
#define RPTUN_CONFIG(d, p) ((d)->ops->config(d, p))
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Name: RPTUN_START
|
* Name: RPTUN_START
|
||||||
*
|
*
|
||||||
|
@ -276,6 +292,7 @@ struct rptun_ops_s
|
||||||
CODE bool (*is_autostart)(FAR struct rptun_dev_s *dev);
|
CODE bool (*is_autostart)(FAR struct rptun_dev_s *dev);
|
||||||
CODE bool (*is_master)(FAR struct rptun_dev_s *dev);
|
CODE bool (*is_master)(FAR struct rptun_dev_s *dev);
|
||||||
|
|
||||||
|
CODE int (*config)(struct rptun_dev_s *dev, void *data);
|
||||||
CODE int (*start)(FAR struct rptun_dev_s *dev);
|
CODE int (*start)(FAR struct rptun_dev_s *dev);
|
||||||
CODE int (*stop)(FAR struct rptun_dev_s *dev);
|
CODE int (*stop)(FAR struct rptun_dev_s *dev);
|
||||||
CODE int (*notify)(FAR struct rptun_dev_s *dev, uint32_t vqid);
|
CODE int (*notify)(FAR struct rptun_dev_s *dev, uint32_t vqid);
|
||||||
|
|
Loading…
Reference in New Issue