Re: [PATCH v8 21/55] [media] media: make media_link more generic to handle interace links

2015-08-31 Thread Hans Verkuil
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

2015-09-06 Thread Mauro Carvalho Chehab
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