From: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
To: dri-devel@lists.freedesktop.org
Cc: linux-renesas-soc@vger.kernel.org, linux-media@vger.kernel.org
Subject: [PATCH v2 04/14] v4l: vsp1: Store source and sink pointers as vsp1_entity
Date: Mon, 26 Jun 2017 21:12:16 +0300 [thread overview]
Message-ID: <20170626181226.29575-5-laurent.pinchart+renesas@ideasonboard.com> (raw)
In-Reply-To: <20170626181226.29575-1-laurent.pinchart+renesas@ideasonboard.com>
The internal VSP entity source and sink pointers are stored as
media_entity pointers, which are then cast to a vsp1_entity. As all
sources and sinks are vsp1_entity instances, we can store the
vsp1_entity pointers directly.
Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
---
drivers/media/platform/vsp1/vsp1_drm.c | 4 ++--
drivers/media/platform/vsp1/vsp1_drv.c | 2 +-
drivers/media/platform/vsp1/vsp1_entity.c | 26 +++++++++++++-------------
drivers/media/platform/vsp1/vsp1_entity.h | 4 ++--
4 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/drivers/media/platform/vsp1/vsp1_drm.c b/drivers/media/platform/vsp1/vsp1_drm.c
index bc3fd9bc7126..2d5a74e95e09 100644
--- a/drivers/media/platform/vsp1/vsp1_drm.c
+++ b/drivers/media/platform/vsp1/vsp1_drm.c
@@ -587,7 +587,7 @@ int vsp1_drm_create_links(struct vsp1_device *vsp1)
if (ret < 0)
return ret;
- rpf->entity.sink = &vsp1->bru->entity.subdev.entity;
+ rpf->entity.sink = &vsp1->bru->entity;
rpf->entity.sink_pad = i;
}
@@ -598,7 +598,7 @@ int vsp1_drm_create_links(struct vsp1_device *vsp1)
if (ret < 0)
return ret;
- vsp1->bru->entity.sink = &vsp1->wpf[0]->entity.subdev.entity;
+ vsp1->bru->entity.sink = &vsp1->wpf[0]->entity;
vsp1->bru->entity.sink_pad = RWPF_PAD_SINK;
ret = media_create_pad_link(&vsp1->wpf[0]->entity.subdev.entity,
diff --git a/drivers/media/platform/vsp1/vsp1_drv.c b/drivers/media/platform/vsp1/vsp1_drv.c
index 35087d5573ce..9b3a0790f92a 100644
--- a/drivers/media/platform/vsp1/vsp1_drv.c
+++ b/drivers/media/platform/vsp1/vsp1_drv.c
@@ -121,7 +121,7 @@ static int vsp1_create_sink_links(struct vsp1_device *vsp1,
return ret;
if (flags & MEDIA_LNK_FL_ENABLED)
- source->sink = entity;
+ source->sink = sink;
}
}
diff --git a/drivers/media/platform/vsp1/vsp1_entity.c b/drivers/media/platform/vsp1/vsp1_entity.c
index 4bdb3b141611..71dd903263ad 100644
--- a/drivers/media/platform/vsp1/vsp1_entity.c
+++ b/drivers/media/platform/vsp1/vsp1_entity.c
@@ -24,18 +24,11 @@
#include "vsp1_pipe.h"
#include "vsp1_rwpf.h"
-static inline struct vsp1_entity *
-media_entity_to_vsp1_entity(struct media_entity *entity)
-{
- return container_of(entity, struct vsp1_entity, subdev.entity);
-}
-
void vsp1_entity_route_setup(struct vsp1_entity *entity,
struct vsp1_pipeline *pipe,
struct vsp1_dl_list *dl)
{
struct vsp1_entity *source;
- struct vsp1_entity *sink;
if (entity->type == VSP1_ENTITY_HGO) {
u32 smppt;
@@ -44,7 +37,7 @@ void vsp1_entity_route_setup(struct vsp1_entity *entity,
* The HGO is a special case, its routing is configured on the
* sink pad.
*/
- source = media_entity_to_vsp1_entity(entity->sources[0]);
+ source = entity->sources[0];
smppt = (pipe->output->entity.index << VI6_DPR_SMPPT_TGW_SHIFT)
| (source->route->output << VI6_DPR_SMPPT_PT_SHIFT);
@@ -57,7 +50,7 @@ void vsp1_entity_route_setup(struct vsp1_entity *entity,
* The HGT is a special case, its routing is configured on the
* sink pad.
*/
- source = media_entity_to_vsp1_entity(entity->sources[0]);
+ source = entity->sources[0];
smppt = (pipe->output->entity.index << VI6_DPR_SMPPT_TGW_SHIFT)
| (source->route->output << VI6_DPR_SMPPT_PT_SHIFT);
@@ -69,9 +62,8 @@ void vsp1_entity_route_setup(struct vsp1_entity *entity,
if (source->route->reg == 0)
return;
- sink = media_entity_to_vsp1_entity(source->sink);
vsp1_dl_list_write(dl, source->route->reg,
- sink->route->inputs[source->sink_pad]);
+ source->sink->route->inputs[source->sink_pad]);
}
/* -----------------------------------------------------------------------------
@@ -316,6 +308,12 @@ int vsp1_subdev_enum_frame_size(struct v4l2_subdev *subdev,
* Media Operations
*/
+static inline struct vsp1_entity *
+media_entity_to_vsp1_entity(struct media_entity *entity)
+{
+ return container_of(entity, struct vsp1_entity, subdev.entity);
+}
+
static int vsp1_entity_link_setup_source(const struct media_pad *source_pad,
const struct media_pad *sink_pad,
u32 flags)
@@ -339,7 +337,7 @@ static int vsp1_entity_link_setup_source(const struct media_pad *source_pad,
sink->type != VSP1_ENTITY_HGT) {
if (source->sink)
return -EBUSY;
- source->sink = sink_pad->entity;
+ source->sink = sink;
source->sink_pad = sink_pad->index;
}
} else {
@@ -355,15 +353,17 @@ static int vsp1_entity_link_setup_sink(const struct media_pad *source_pad,
u32 flags)
{
struct vsp1_entity *sink;
+ struct vsp1_entity *source;
sink = media_entity_to_vsp1_entity(sink_pad->entity);
+ source = media_entity_to_vsp1_entity(source_pad->entity);
if (flags & MEDIA_LNK_FL_ENABLED) {
/* Fan-in is limited to one. */
if (sink->sources[sink_pad->index])
return -EBUSY;
- sink->sources[sink_pad->index] = source_pad->entity;
+ sink->sources[sink_pad->index] = source;
} else {
sink->sources[sink_pad->index] = NULL;
}
diff --git a/drivers/media/platform/vsp1/vsp1_entity.h b/drivers/media/platform/vsp1/vsp1_entity.h
index c169a060b6d2..4362cd4e90ba 100644
--- a/drivers/media/platform/vsp1/vsp1_entity.h
+++ b/drivers/media/platform/vsp1/vsp1_entity.h
@@ -104,8 +104,8 @@ struct vsp1_entity {
struct media_pad *pads;
unsigned int source_pad;
- struct media_entity **sources;
- struct media_entity *sink;
+ struct vsp1_entity **sources;
+ struct vsp1_entity *sink;
unsigned int sink_pad;
struct v4l2_subdev subdev;
--
Regards,
Laurent Pinchart
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2017-06-26 18:12 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-26 18:12 [PATCH v2 00/14] Renesas R-Car VSP: Add H3 ES2.0 support Laurent Pinchart
2017-06-26 18:12 ` [PATCH v2 01/14] v4l: vsp1: Fill display list headers without holding dlm spinlock Laurent Pinchart
2017-07-13 12:48 ` Kieran Bingham
2017-07-20 13:50 ` Mauro Carvalho Chehab
2017-06-26 18:12 ` [PATCH v2 02/14] v4l: vsp1: Don't recycle active list at display start Laurent Pinchart
2017-07-13 17:02 ` Kieran Bingham
2017-07-20 13:51 ` Mauro Carvalho Chehab
2017-06-26 18:12 ` [PATCH v2 03/14] v4l: vsp1: Don't set WPF sink pointer Laurent Pinchart
2017-07-13 12:50 ` Kieran Bingham
2017-07-20 13:52 ` Mauro Carvalho Chehab
2017-06-26 18:12 ` Laurent Pinchart [this message]
2017-07-13 13:00 ` [PATCH v2 04/14] v4l: vsp1: Store source and sink pointers as vsp1_entity Kieran Bingham
2017-07-20 13:53 ` Mauro Carvalho Chehab
2017-06-26 18:12 ` [PATCH v2 05/14] v4l: vsp1: Don't create links for DRM pipeline Laurent Pinchart
2017-07-13 13:06 ` Kieran Bingham
2017-07-20 13:54 ` Mauro Carvalho Chehab
2017-06-26 18:12 ` [PATCH v2 06/14] v4l: vsp1: Add pipe index argument to the VSP-DU API Laurent Pinchart
2017-07-13 13:16 ` Kieran Bingham
2017-07-13 23:04 ` Laurent Pinchart
2017-07-20 13:56 ` Mauro Carvalho Chehab
2017-06-26 18:12 ` [PATCH v2 07/14] v4l: vsp1: Add support for the BRS entity Laurent Pinchart
2017-07-13 13:38 ` Kieran Bingham
2017-07-20 13:58 ` Mauro Carvalho Chehab
2017-06-26 18:12 ` [PATCH v2 08/14] v4l: vsp1: Add support for new VSP2-BS, VSP2-DL and VSP2-D instances Laurent Pinchart
2017-07-13 17:49 ` Kieran Bingham
2017-07-13 23:31 ` Laurent Pinchart
2017-07-14 7:36 ` Kieran Bingham
2017-07-14 0:35 ` [PATCH v2.1 " Laurent Pinchart
2017-07-20 13:59 ` Mauro Carvalho Chehab
2017-06-26 18:12 ` [PATCH v2 09/14] v4l: vsp1: Add support for multiple LIF instances Laurent Pinchart
2017-07-13 17:57 ` Kieran Bingham
2017-07-20 14:00 ` Mauro Carvalho Chehab
2017-06-26 18:12 ` [PATCH v2 10/14] v4l: vsp1: Add support for multiple DRM pipelines Laurent Pinchart
2017-07-20 14:02 ` Mauro Carvalho Chehab
2017-08-01 18:39 ` Kieran Bingham
2017-06-26 18:12 ` [PATCH v2 11/14] v4l: vsp1: Add support for header display lists in continuous mode Laurent Pinchart
2017-07-20 14:03 ` Mauro Carvalho Chehab
2017-08-01 17:35 ` Kieran Bingham
2017-08-01 18:47 ` Laurent Pinchart
2017-08-02 11:06 ` Kieran Bingham
2017-06-26 18:12 ` [PATCH v2 12/14] drm: rcar-du: Support multiple sources from the same VSP Laurent Pinchart
2017-08-01 18:10 ` Kieran Bingham
2017-08-01 19:01 ` Laurent Pinchart
2017-06-26 18:12 ` [PATCH v2 13/14] drm: rcar-du: Restrict DPLL duty cycle workaround to H3 ES1.x Laurent Pinchart
2017-08-01 14:06 ` Kieran Bingham
2017-08-01 18:39 ` Laurent Pinchart
2017-12-11 20:58 ` Laurent Pinchart
2017-06-26 18:12 ` [PATCH v2 14/14] drm: rcar-du: Configure DPAD0 routing through last group on Gen3 Laurent Pinchart
2017-08-01 13:46 ` Kieran Bingham
2017-08-01 13:51 ` Laurent Pinchart
2017-08-01 17:20 ` [PATCH v2.1 " Laurent Pinchart
2017-08-01 17:23 ` Kieran Bingham
2017-07-13 12:25 ` [PATCH v2 00/14] Renesas R-Car VSP: Add H3 ES2.0 support Kieran Bingham
2017-07-14 0:54 ` Laurent Pinchart
2017-07-18 13:03 ` Hans Verkuil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170626181226.29575-5-laurent.pinchart+renesas@ideasonboard.com \
--to=laurent.pinchart+renesas@ideasonboard.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-renesas-soc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).