From: "Jernej Škrabec" <jernej.skrabec@siol.net>
To: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: wens@csie.org, airlied@linux.ie, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org,
linux-arm-kernel@lists.infradead.org, icenowy@aosc.io,
linux-sunxi@googlegroups.com
Subject: Re: [PATCH 08/17] drm/sun4i: Add support for DE2 VI planes
Date: Tue, 28 Nov 2017 22:28:31 +0100 [thread overview]
Message-ID: <4054154.28n3JIyj6e@jernej-laptop> (raw)
In-Reply-To: <20171128210001.zhncdfkjzvwwxnnf@flea.home>
Hi!
Dne torek, 28. november 2017 ob 22:00:01 CET je Maxime Ripard napisal(a):
> Hi,
>
> On Mon, Nov 27, 2017 at 09:57:41PM +0100, Jernej Skrabec wrote:
> > This commit adds basic support for VI planes. They are meant for video
> > overlay and because of that they support YUV formats too. However, using
> > YUV planes is not straightforward, so only RGB support for now.
> >
> > Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
> > ---
> >
> > drivers/gpu/drm/sun4i/sun8i_layer.c | 40 +++++++---
> > drivers/gpu/drm/sun4i/sun8i_mixer.c | 144
> > +++++++++++++++++++++++++++++++++--- drivers/gpu/drm/sun4i/sun8i_mixer.h
> > | 38 ++++++++--
> > 3 files changed, 196 insertions(+), 26 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/sun4i/sun8i_layer.c
> > b/drivers/gpu/drm/sun4i/sun8i_layer.c index 49ccdd0149bd..e1b6ad82145e
> > 100644
> > --- a/drivers/gpu/drm/sun4i/sun8i_layer.c
> > +++ b/drivers/gpu/drm/sun4i/sun8i_layer.c
> > @@ -47,13 +47,22 @@ static int sun8i_mixer_layer_atomic_check(struct
> > drm_plane *plane,>
> > true, true);
> >
> > }
> >
> > +static void sun8i_mixer_layer_enable(struct sun8i_layer *layer, bool
> > enable) +{
> > + struct sun8i_mixer *mixer = layer->mixer;
> > +
> > + if (layer->id < mixer->cfg->vi_num)
> > + sun8i_mixer_vi_layer_enable(mixer, layer->id, enable);
> > + else
> > + sun8i_mixer_ui_layer_enable(mixer, layer->id, enable);
> > +}
> > +
> >
> > static void sun8i_mixer_layer_atomic_disable(struct drm_plane *plane,
> >
> > struct drm_plane_state *old_state)
> >
> > {
> >
> > struct sun8i_layer *layer = plane_to_sun8i_layer(plane);
> >
> > - struct sun8i_mixer *mixer = layer->mixer;
> >
> > - sun8i_mixer_layer_enable(mixer, layer->id, false);
> > + sun8i_mixer_layer_enable(layer, false);
> >
> > }
> >
> > static void sun8i_mixer_layer_atomic_update(struct drm_plane *plane,
> >
> > @@ -63,14 +72,21 @@ static void sun8i_mixer_layer_atomic_update(struct
> > drm_plane *plane,>
> > struct sun8i_mixer *mixer = layer->mixer;
> >
> > if (!plane->state->visible) {
> >
> > - sun8i_mixer_layer_enable(mixer, layer->id, false);
> > + sun8i_mixer_layer_enable(layer, false);
> >
> > return;
> >
> > }
> >
> > - sun8i_mixer_update_layer_coord(mixer, layer->id, plane);
> > - sun8i_mixer_update_layer_formats(mixer, layer->id, plane);
> > - sun8i_mixer_update_layer_buffer(mixer, layer->id, plane);
> > - sun8i_mixer_layer_enable(mixer, layer->id, true);
> > + if (layer->id < mixer->cfg->vi_num) {
> > + sun8i_mixer_update_vi_layer_coord(mixer, layer->id, plane);
> > + sun8i_mixer_update_vi_layer_formats(mixer, layer->id, plane);
> > + sun8i_mixer_update_vi_layer_buffer(mixer, layer->id, plane);
> > + } else {
> > + sun8i_mixer_update_ui_layer_coord(mixer, layer->id, plane);
> > + sun8i_mixer_update_ui_layer_formats(mixer, layer->id, plane);
> > + sun8i_mixer_update_ui_layer_buffer(mixer, layer->id, plane);
> > + }
> > +
> > + sun8i_mixer_layer_enable(layer, true);
>
> So you can probably tell by the patches I had in my other serie, but
> we should really split the UI and VI support in two files, especially
> since it has pretty much no code path or data in common (if you
> combine this patch with the YUV support).
Yeah, that would probably be best. But how to split it? sun8i_layer.c seems to
be pretty common apart from those calls. Or would you prefer sun8i_[ui|
vi]_layer.c anyway? But that would mean having two sun8i_layers_init()
functions which doesn't fit well into current concept afaik.
How would you split sun8i_mixer.c ? Leave common code (HW initialization) in
it and create two new files sun8i_[ui|vi]_channel.c ? Common code could be
later extended with zpos adjusting code.
Best regards,
Jernej
>
> Maxime
>
> --
> Maxime Ripard, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
next prev parent reply other threads:[~2017-11-28 21:28 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-27 20:57 [PATCH 00/17] Improve DE2 support Jernej Skrabec
2017-11-27 20:57 ` [PATCH 01/17] drm/sun4i: Refactor DE2 code Jernej Skrabec
2017-11-28 15:54 ` Maxime Ripard
2017-11-28 18:49 ` Jernej Škrabec
2017-11-27 20:57 ` [PATCH 02/17] drm/sun4i: Start using layer id in DE2 driver Jernej Skrabec
2017-11-28 20:21 ` Maxime Ripard
2017-11-27 20:57 ` [PATCH 03/17] drm/sun4i: Add constraints checking to " Jernej Skrabec
2017-11-27 20:57 ` [PATCH 04/17] drm/sun4i: Use values calculated by atomic check Jernej Skrabec
2017-11-27 20:57 ` [PATCH 05/17] drm/sun4i: Reorder some code in DE2 Jernej Skrabec
2017-11-28 20:26 ` Maxime Ripard
2017-11-27 20:57 ` [PATCH 06/17] drm/sun4i: Add multi plane support to DE2 driver Jernej Skrabec
2017-11-27 20:57 ` [PATCH 07/17] drm/sun4i: Add support for all HW supported DE2 RGB formats Jernej Skrabec
2017-11-27 20:57 ` [PATCH 08/17] drm/sun4i: Add support for DE2 VI planes Jernej Skrabec
2017-11-28 21:00 ` Maxime Ripard
2017-11-28 21:28 ` Jernej Škrabec [this message]
2017-11-29 22:01 ` Jernej Škrabec
2017-11-27 20:57 ` [PATCH 09/17] drm/sun4i: Add scaler library for DE2 Jernej Skrabec
2017-11-28 20:40 ` Maxime Ripard
2017-11-27 20:57 ` [PATCH 10/17] drm/sun4i: Add scaler configuration to DE2 mixers Jernej Skrabec
2017-11-28 20:31 ` Maxime Ripard
2017-11-27 20:57 ` [PATCH 11/17] drm/sun4i: Wire in DE2 scaler support Jernej Skrabec
2017-11-28 20:42 ` Maxime Ripard
2017-11-29 21:48 ` [linux-sunxi] " Julian Calaby
2017-11-29 21:59 ` Jernej Škrabec
2017-11-27 20:57 ` [PATCH 12/17] drm/sun4i: Add CCSC property to DE2 configuration Jernej Skrabec
2017-11-28 12:02 ` Icenowy Zheng
2017-11-28 20:43 ` Maxime Ripard
2017-11-28 20:44 ` Maxime Ripard
2017-11-27 20:57 ` [PATCH 13/17] drm/sun4i: Add DE2 CSC library Jernej Skrabec
2017-11-28 20:55 ` Maxime Ripard
2017-11-28 21:43 ` Jernej Škrabec
2017-11-29 3:20 ` Chen-Yu Tsai
2017-11-29 15:27 ` Maxime Ripard
2017-11-27 20:57 ` [PATCH 14/17] drm/sun4i: Add DE2 definitions for YUV formats Jernej Skrabec
2017-11-27 20:57 ` [PATCH 15/17] drm/sun4i: Expand DE2 scaler lib with YUV support Jernej Skrabec
2017-11-27 20:57 ` [PATCH 16/17] drm/sun4i: Wire in DE2 " Jernej Skrabec
2017-11-27 20:57 ` [PATCH 17/17] [DO NOT MERGE]drm/sun4i: Change zpos of bottom VI plane Jernej Skrabec
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=4054154.28n3JIyj6e@jernej-laptop \
--to=jernej.skrabec@siol.net \
--cc=airlied@linux.ie \
--cc=dri-devel@lists.freedesktop.org \
--cc=icenowy@aosc.io \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sunxi@googlegroups.com \
--cc=maxime.ripard@free-electrons.com \
--cc=wens@csie.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).