From: Kieran Bingham <kieranbingham@gmail.com>
To: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>,
dri-devel@lists.freedesktop.org
Cc: linux-media@vger.kernel.org, linux-renesas-soc@vger.kernel.org
Subject: Re: [PATCH v2 06/14] v4l: vsp1: Add pipe index argument to the VSP-DU API
Date: Thu, 13 Jul 2017 14:16:03 +0100 [thread overview]
Message-ID: <915884a5-e69d-b821-4a53-afa73a03c233@gmail.com> (raw)
In-Reply-To: <20170626181226.29575-7-laurent.pinchart+renesas@ideasonboard.com>
On 26/06/17 19:12, Laurent Pinchart wrote:
> In the H3 ES2.0 SoC the VSP2-DL instance has two connections to DU
> channels that need to be configured independently. Extend the VSP-DU API
> with a pipeline index to identify which pipeline the caller wants to
> operate on.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
A bit of comment merge between this and the next patch but it's minor and not
worth the effort to change that ... so I'll happily ignore it if you do :)
Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
> ---
> drivers/gpu/drm/rcar-du/rcar_du_vsp.c | 12 ++++++------
> drivers/media/platform/vsp1/vsp1_drm.c | 32 ++++++++++++++++++++++----------
> include/media/vsp1.h | 10 ++++++----
> 3 files changed, 34 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> index f870445ebc8d..d46dce054442 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_vsp.c
> @@ -81,22 +81,22 @@ void rcar_du_vsp_enable(struct rcar_du_crtc *crtc)
> */
> crtc->group->need_restart = true;
>
> - vsp1_du_setup_lif(crtc->vsp->vsp, &cfg);
> + vsp1_du_setup_lif(crtc->vsp->vsp, 0, &cfg);
> }
>
> void rcar_du_vsp_disable(struct rcar_du_crtc *crtc)
> {
> - vsp1_du_setup_lif(crtc->vsp->vsp, NULL);
> + vsp1_du_setup_lif(crtc->vsp->vsp, 0, NULL);
> }
>
> void rcar_du_vsp_atomic_begin(struct rcar_du_crtc *crtc)
> {
> - vsp1_du_atomic_begin(crtc->vsp->vsp);
> + vsp1_du_atomic_begin(crtc->vsp->vsp, 0);
> }
>
> void rcar_du_vsp_atomic_flush(struct rcar_du_crtc *crtc)
> {
> - vsp1_du_atomic_flush(crtc->vsp->vsp);
> + vsp1_du_atomic_flush(crtc->vsp->vsp, 0);
> }
>
> /* Keep the two tables in sync. */
> @@ -192,7 +192,7 @@ static void rcar_du_vsp_plane_setup(struct rcar_du_vsp_plane *plane)
> }
> }
>
> - vsp1_du_atomic_update(plane->vsp->vsp, plane->index, &cfg);
> + vsp1_du_atomic_update(plane->vsp->vsp, 0, plane->index, &cfg);
> }
>
> static int rcar_du_vsp_plane_prepare_fb(struct drm_plane *plane,
> @@ -292,7 +292,7 @@ static void rcar_du_vsp_plane_atomic_update(struct drm_plane *plane,
> if (plane->state->crtc)
> rcar_du_vsp_plane_setup(rplane);
> else
> - vsp1_du_atomic_update(rplane->vsp->vsp, rplane->index, NULL);
> + vsp1_du_atomic_update(rplane->vsp->vsp, 0, rplane->index, NULL);
> }
>
> static const struct drm_plane_helper_funcs rcar_du_vsp_plane_helper_funcs = {
> diff --git a/drivers/media/platform/vsp1/vsp1_drm.c b/drivers/media/platform/vsp1/vsp1_drm.c
> index c72d021ff820..daaafe7885fa 100644
> --- a/drivers/media/platform/vsp1/vsp1_drm.c
> +++ b/drivers/media/platform/vsp1/vsp1_drm.c
> @@ -58,21 +58,26 @@ EXPORT_SYMBOL_GPL(vsp1_du_init);
> /**
> * vsp1_du_setup_lif - Setup the output part of the VSP pipeline
> * @dev: the VSP device
> + * @pipe_index: the DRM pipeline index
> * @cfg: the LIF configuration
> *
> * Configure the output part of VSP DRM pipeline for the given frame @cfg.width
> - * and @cfg.height. This sets up formats on the BRU source pad, the WPF0 sink
> - * and source pads, and the LIF sink pad.
> + * and @cfg.height. This sets up formats on the blend unit (BRU or BRS) source
> + * pad, the WPF sink and source pads, and the LIF sink pad.
> *
> - * As the media bus code on the BRU source pad is conditioned by the
> - * configuration of the BRU sink 0 pad, we also set up the formats on all BRU
> + * The @pipe_index argument selects which DRM pipeline to setup. The number of
> + * available pipelines depend on the VSP instance.
> + *
> + * As the media bus code on the blend unit source pad is conditioned by the
> + * configuration of its sink 0 pad, we also set up the formats on all blend unit
> * sinks, even if the configuration will be overwritten later by
> - * vsp1_du_setup_rpf(). This ensures that the BRU configuration is set to a well
> - * defined state.
> + * vsp1_du_setup_rpf(). This ensures that the blend unit configuration is set to
> + * a well defined state.
I presume those comment updates for the BRU/ blend-unit configuration are
actually for the next patch - but I don't think it matters here - and isn't
worth the effort to move the hunks.
It all reads OK.
> *
> * Return 0 on success or a negative error code on failure.
> */
> -int vsp1_du_setup_lif(struct device *dev, const struct vsp1_du_lif_config *cfg)
> +int vsp1_du_setup_lif(struct device *dev, unsigned int pipe_index,
> + const struct vsp1_du_lif_config *cfg)
> {
> struct vsp1_device *vsp1 = dev_get_drvdata(dev);
> struct vsp1_pipeline *pipe = &vsp1->drm->pipe;
> @@ -81,6 +86,9 @@ int vsp1_du_setup_lif(struct device *dev, const struct vsp1_du_lif_config *cfg)
> unsigned int i;
> int ret;
>
> + if (pipe_index > 0)
> + return -EINVAL;
> +
> if (!cfg) {
> /*
> * NULL configuration means the CRTC is being disabled, stop
> @@ -232,8 +240,9 @@ EXPORT_SYMBOL_GPL(vsp1_du_setup_lif);
> /**
> * vsp1_du_atomic_begin - Prepare for an atomic update
> * @dev: the VSP device
> + * @pipe_index: the DRM pipeline index
> */
> -void vsp1_du_atomic_begin(struct device *dev)
> +void vsp1_du_atomic_begin(struct device *dev, unsigned int pipe_index)
> {
> struct vsp1_device *vsp1 = dev_get_drvdata(dev);
> struct vsp1_pipeline *pipe = &vsp1->drm->pipe;
> @@ -245,6 +254,7 @@ EXPORT_SYMBOL_GPL(vsp1_du_atomic_begin);
> /**
> * vsp1_du_atomic_update - Setup one RPF input of the VSP pipeline
> * @dev: the VSP device
> + * @pipe_index: the DRM pipeline index
> * @rpf_index: index of the RPF to setup (0-based)
> * @cfg: the RPF configuration
> *
> @@ -271,7 +281,8 @@ EXPORT_SYMBOL_GPL(vsp1_du_atomic_begin);
> *
> * Return 0 on success or a negative error code on failure.
> */
> -int vsp1_du_atomic_update(struct device *dev, unsigned int rpf_index,
> +int vsp1_du_atomic_update(struct device *dev, unsigned int pipe_index,
> + unsigned int rpf_index,
> const struct vsp1_du_atomic_config *cfg)
> {
> struct vsp1_device *vsp1 = dev_get_drvdata(dev);
> @@ -437,8 +448,9 @@ static unsigned int rpf_zpos(struct vsp1_device *vsp1, struct vsp1_rwpf *rpf)
> /**
> * vsp1_du_atomic_flush - Commit an atomic update
> * @dev: the VSP device
> + * @pipe_index: the DRM pipeline index
> */
> -void vsp1_du_atomic_flush(struct device *dev)
> +void vsp1_du_atomic_flush(struct device *dev, unsigned int pipe_index)
> {
> struct vsp1_device *vsp1 = dev_get_drvdata(dev);
> struct vsp1_pipeline *pipe = &vsp1->drm->pipe;
> diff --git a/include/media/vsp1.h b/include/media/vsp1.h
> index c837383b2013..c8fc868fb0f2 100644
> --- a/include/media/vsp1.h
> +++ b/include/media/vsp1.h
> @@ -38,7 +38,8 @@ struct vsp1_du_lif_config {
> void *callback_data;
> };
>
> -int vsp1_du_setup_lif(struct device *dev, const struct vsp1_du_lif_config *cfg);
> +int vsp1_du_setup_lif(struct device *dev, unsigned int pipe_index,
> + const struct vsp1_du_lif_config *cfg);
>
> struct vsp1_du_atomic_config {
> u32 pixelformat;
> @@ -50,10 +51,11 @@ struct vsp1_du_atomic_config {
> unsigned int zpos;
> };
>
> -void vsp1_du_atomic_begin(struct device *dev);
> -int vsp1_du_atomic_update(struct device *dev, unsigned int rpf,
> +void vsp1_du_atomic_begin(struct device *dev, unsigned int pipe_index);
> +int vsp1_du_atomic_update(struct device *dev, unsigned int pipe_index,
> + unsigned int rpf,
> const struct vsp1_du_atomic_config *cfg);
> -void vsp1_du_atomic_flush(struct device *dev);
> +void vsp1_du_atomic_flush(struct device *dev, unsigned int pipe_index);
> int vsp1_du_map_sg(struct device *dev, struct sg_table *sgt);
> void vsp1_du_unmap_sg(struct device *dev, struct sg_table *sgt);
>
>
next prev parent reply other threads:[~2017-07-13 13:16 UTC|newest]
Thread overview: 67+ 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 11:26 ` Kieran Bingham
2017-07-13 11:36 ` Kieran Bingham
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 ` [PATCH v2 04/14] v4l: vsp1: Store source and sink pointers as vsp1_entity Laurent Pinchart
2017-07-13 13:00 ` 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:14 ` Kieran Bingham
2017-07-13 13:16 ` Kieran Bingham [this message]
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:16 ` Kieran Bingham
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-13 11:09 ` Kieran Bingham
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:04 ` Kieran Bingham
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 11:41 ` [PATCH v2 00/14] Renesas R-Car VSP: Add H3 ES2.0 support Kieran Bingham
2017-07-13 11:46 ` Kieran Bingham
2017-07-13 11:51 ` Kieran Bingham
2017-07-13 11:56 ` Kieran Bingham
2017-07-13 12:11 ` Kieran Bingham
2017-07-13 12:16 ` Kieran Bingham
2017-07-13 12:25 ` 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=915884a5-e69d-b821-4a53-afa73a03c233@gmail.com \
--to=kieranbingham@gmail.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=laurent.pinchart+renesas@ideasonboard.com \
--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