[media] media-device: supress backlinks at G_TOPOLOGY ioctl
Due to the graph traversal algorithm currently in usage, we need a copy of all data links. Those backlinks should not be send to userspace, as otherwise, all links there will be duplicated. Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
parent
28b6ba1106
commit
39d1ebc609
|
@ -333,6 +333,9 @@ static long __media_device_get_topology(struct media_device *mdev,
|
|||
/* Get links and number of links */
|
||||
i = 0;
|
||||
media_device_for_each_link(link, mdev) {
|
||||
if (link->is_backlink)
|
||||
continue;
|
||||
|
||||
i++;
|
||||
|
||||
if (ret || !topo->links)
|
||||
|
|
|
@ -625,6 +625,7 @@ media_create_pad_link(struct media_entity *source, u16 source_pad,
|
|||
backlink->source = &source->pads[source_pad];
|
||||
backlink->sink = &sink->pads[sink_pad];
|
||||
backlink->flags = flags;
|
||||
backlink->is_backlink = true;
|
||||
|
||||
/* Initialize graph object embedded at the new link */
|
||||
media_gobj_init(sink->graph_obj.mdev, MEDIA_GRAPH_LINK,
|
||||
|
|
|
@ -96,6 +96,7 @@ struct media_pipeline {
|
|||
* @reverse: Pointer to the link for the reverse direction of a pad to pad
|
||||
* link.
|
||||
* @flags: Link flags, as defined in uapi/media.h (MEDIA_LNK_FL_*)
|
||||
* @is_backlink: Indicate if the link is a backlink.
|
||||
*/
|
||||
struct media_link {
|
||||
struct media_gobj graph_obj;
|
||||
|
@ -112,6 +113,7 @@ struct media_link {
|
|||
};
|
||||
struct media_link *reverse;
|
||||
unsigned long flags;
|
||||
bool is_backlink;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue