[PATCH v8 21/55] [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. Signed-off-by: Mauro Carvalho Chehab diff --git a/include/media/media-entity.h b/include/media/media-entity.h index bb89cedb0c40..b4923a24efd5 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 */ -- 2.4.3 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v8 21/55] [media] media: make media_link more generic to handle interace links
On 08/30/2015 05:06 AM, Mauro Carvalho Chehab wrote: > 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. > > Signed-off-by: Mauro Carvalho Chehab Acked-by: Hans Verkuil > > diff --git a/include/media/media-entity.h b/include/media/media-entity.h > index bb89cedb0c40..b4923a24efd5 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 */ > > -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v8 21/55] [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. Signed-off-by: Mauro Carvalho Chehab Acked-by: Hans Verkuil diff --git a/include/media/media-entity.h b/include/media/media-entity.h index 7016f0619415..6015e996f213 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 */ -- 2.4.3 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html