diff options
author | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2015-08-20 09:10:07 -0300 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@osg.samsung.com> | 2016-01-11 12:18:47 -0200 |
commit | 4b8a3c08592ae0d530c87e2e1672ed8d9184dc09 (patch) | |
tree | ce30e4322f8d14919013d9227bca3e9901690fe2 | |
parent | 23615de5ee742f2f49833777ab015cf1a83fcbc3 (diff) | |
download | op-kernel-dev-4b8a3c08592ae0d530c87e2e1672ed8d9184dc09.zip op-kernel-dev-4b8a3c08592ae0d530c87e2e1672ed8d9184dc09.tar.gz |
[media] media: make media_link more generic to handle interace links
By adding an union at media_link, we get for free a way to
represent interface->entity links.
No need to change anything at the code, just at the internal
header file.
Acked-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
-rw-r--r-- | include/media/media-entity.h | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/include/media/media-entity.h b/include/media/media-entity.h index 2e5646c..a7b21a7 100644 --- a/include/media/media-entity.h +++ b/include/media/media-entity.h @@ -75,14 +75,20 @@ struct media_pipeline { struct media_link { struct media_gobj graph_obj; struct list_head list; - struct media_pad *source; /* Source pad */ - struct media_pad *sink; /* Sink pad */ + union { + struct media_gobj *gobj0; + struct media_pad *source; + }; + union { + struct media_gobj *gobj1; + struct media_pad *sink; + }; struct media_link *reverse; /* Link in the reverse direction */ unsigned long flags; /* Link flags (MEDIA_LNK_FL_*) */ }; struct media_pad { - struct media_gobj graph_obj; + struct media_gobj graph_obj; /* must be first field in struct */ struct media_entity *entity; /* Entity this pad belongs to */ u16 index; /* Pad index in the entity pads array */ unsigned long flags; /* Pad flags (MEDIA_PAD_FL_*) */ @@ -105,7 +111,7 @@ struct media_entity_operations { }; struct media_entity { - struct media_gobj graph_obj; + struct media_gobj graph_obj; /* must be first field in struct */ struct list_head list; const char *name; /* Entity name */ u32 type; /* Entity type (MEDIA_ENT_T_*) */ @@ -119,7 +125,7 @@ struct media_entity { u16 num_backlinks; /* Number of backlinks */ struct media_pad *pads; /* Pads array (num_pads objects) */ - struct list_head links; /* Links list */ + struct list_head links; /* Pad-to-pad links list */ const struct media_entity_operations *ops; /* Entity operations */ |