mirror of https://github.com/thesofproject/sof.git
pipeline: move some static APIs to where they are used.
Certain static inline APIs are only used in one place so move them there. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
This commit is contained in:
parent
093589899a
commit
f8107edba0
|
@ -31,6 +31,62 @@ DECLARE_TR_CTX(pipe_tr, SOF_UUID(pipe_uuid), LOG_LEVEL_INFO);
|
|||
|
||||
static SHARED_DATA struct pipeline_posn pipeline_posn;
|
||||
|
||||
/**
|
||||
* \brief Retrieves pipeline position structure.
|
||||
* \return Pointer to pipeline position structure.
|
||||
*/
|
||||
static inline struct pipeline_posn *pipeline_posn_get(void)
|
||||
{
|
||||
return sof_get()->pipeline_posn;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Retrieves first free pipeline position offset.
|
||||
* \param[in,out] posn_offset Pipeline position offset to be set.
|
||||
* \return Error code.
|
||||
*/
|
||||
static inline int pipeline_posn_offset_get(uint32_t *posn_offset)
|
||||
{
|
||||
struct pipeline_posn *pipeline_posn = pipeline_posn_get();
|
||||
int ret = -EINVAL;
|
||||
uint32_t i;
|
||||
|
||||
spin_lock(&pipeline_posn->lock);
|
||||
|
||||
for (i = 0; i < PPL_POSN_OFFSETS; ++i) {
|
||||
if (!pipeline_posn->posn_offset[i]) {
|
||||
*posn_offset = i * sizeof(struct sof_ipc_stream_posn);
|
||||
pipeline_posn->posn_offset[i] = true;
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
platform_shared_commit(pipeline_posn, sizeof(*pipeline_posn));
|
||||
|
||||
spin_unlock(&pipeline_posn->lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Frees pipeline position offset.
|
||||
* \param[in] posn_offset Pipeline position offset to be freed.
|
||||
*/
|
||||
static inline void pipeline_posn_offset_put(uint32_t posn_offset)
|
||||
{
|
||||
struct pipeline_posn *pipeline_posn = pipeline_posn_get();
|
||||
int i = posn_offset / sizeof(struct sof_ipc_stream_posn);
|
||||
|
||||
spin_lock(&pipeline_posn->lock);
|
||||
|
||||
pipeline_posn->posn_offset[i] = false;
|
||||
|
||||
platform_shared_commit(pipeline_posn, sizeof(*pipeline_posn));
|
||||
|
||||
spin_unlock(&pipeline_posn->lock);
|
||||
}
|
||||
|
||||
void pipeline_posn_init(struct sof *sof)
|
||||
{
|
||||
sof->pipeline_posn = platform_shared_get(&pipeline_posn,
|
||||
|
|
|
@ -111,68 +111,12 @@ struct pipeline_posn {
|
|||
spinlock_t lock; /**< lock mechanism */
|
||||
};
|
||||
|
||||
/**
|
||||
* \brief Retrieves pipeline position structure.
|
||||
* \return Pointer to pipeline position structure.
|
||||
*/
|
||||
static inline struct pipeline_posn *pipeline_posn_get(void)
|
||||
{
|
||||
return sof_get()->pipeline_posn;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Initializes pipeline position structure.
|
||||
* \param[in,out] sof Pointer to sof structure.
|
||||
*/
|
||||
void pipeline_posn_init(struct sof *sof);
|
||||
|
||||
/**
|
||||
* \brief Retrieves first free pipeline position offset.
|
||||
* \param[in,out] posn_offset Pipeline position offset to be set.
|
||||
* \return Error code.
|
||||
*/
|
||||
static inline int pipeline_posn_offset_get(uint32_t *posn_offset)
|
||||
{
|
||||
struct pipeline_posn *pipeline_posn = pipeline_posn_get();
|
||||
int ret = -EINVAL;
|
||||
uint32_t i;
|
||||
|
||||
spin_lock(&pipeline_posn->lock);
|
||||
|
||||
for (i = 0; i < PPL_POSN_OFFSETS; ++i) {
|
||||
if (!pipeline_posn->posn_offset[i]) {
|
||||
*posn_offset = i * sizeof(struct sof_ipc_stream_posn);
|
||||
pipeline_posn->posn_offset[i] = true;
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
platform_shared_commit(pipeline_posn, sizeof(*pipeline_posn));
|
||||
|
||||
spin_unlock(&pipeline_posn->lock);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* \brief Frees pipeline position offset.
|
||||
* \param[in] posn_offset Pipeline position offset to be freed.
|
||||
*/
|
||||
static inline void pipeline_posn_offset_put(uint32_t posn_offset)
|
||||
{
|
||||
struct pipeline_posn *pipeline_posn = pipeline_posn_get();
|
||||
int i = posn_offset / sizeof(struct sof_ipc_stream_posn);
|
||||
|
||||
spin_lock(&pipeline_posn->lock);
|
||||
|
||||
pipeline_posn->posn_offset[i] = false;
|
||||
|
||||
platform_shared_commit(pipeline_posn, sizeof(*pipeline_posn));
|
||||
|
||||
spin_unlock(&pipeline_posn->lock);
|
||||
}
|
||||
|
||||
/* checks if two pipelines have the same scheduling component */
|
||||
static inline bool pipeline_is_same_sched_comp(struct pipeline *current,
|
||||
struct pipeline *previous)
|
||||
|
|
Loading…
Reference in New Issue