coresight: add API to get sink from path
Add an API allowing external code to quickly get a handle on the sink within a path. The sink is always last, but adding an API allows to keep the path's node structure private and remove redundant checks. Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b3e9440594
commit
b6404e21f0
|
@ -54,6 +54,7 @@ static inline void CS_UNLOCK(void __iomem *addr)
|
|||
|
||||
void coresight_disable_path(struct list_head *path);
|
||||
int coresight_enable_path(struct list_head *path);
|
||||
struct coresight_device *coresight_get_sink(struct list_head *path);
|
||||
struct list_head *coresight_build_path(struct coresight_device *csdev);
|
||||
void coresight_release_path(struct list_head *path);
|
||||
|
||||
|
|
|
@ -321,6 +321,21 @@ err:
|
|||
goto out;
|
||||
}
|
||||
|
||||
struct coresight_device *coresight_get_sink(struct list_head *path)
|
||||
{
|
||||
struct coresight_device *csdev;
|
||||
|
||||
if (!path)
|
||||
return NULL;
|
||||
|
||||
csdev = list_last_entry(path, struct coresight_node, link)->csdev;
|
||||
if (csdev->type != CORESIGHT_DEV_TYPE_SINK &&
|
||||
csdev->type != CORESIGHT_DEV_TYPE_LINKSINK)
|
||||
return NULL;
|
||||
|
||||
return csdev;
|
||||
}
|
||||
|
||||
/**
|
||||
* _coresight_build_path - recursively build a path from a @csdev to a sink.
|
||||
* @csdev: The device to start from.
|
||||
|
|
Loading…
Reference in New Issue