From: Inki Dae <inki.dae@samsung.com>
To: Gustavo Padovan <gustavo@padovan.org>, linux-samsung-soc@vger.kernel.org
Cc: dri-devel@lists.freedesktop.org, jy0922.shim@samsung.com,
tjakobi@math.uni-bielefeld.de,
Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Subject: Re: [PATCH 03/11] drm/exynos: add prepare and cleanup phases for planes
Date: Mon, 24 Aug 2015 21:56:19 +0900 [thread overview]
Message-ID: <55DB1473.40109@samsung.com> (raw)
In-Reply-To: <1439655980-32146-4-git-send-email-gustavo@padovan.org>
On 2015년 08월 16일 01:26, Gustavo Padovan wrote:
> From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
>
> .prepare_plane() and .cleanup_plane() allows to perform extra operations
> before and after the update of planes. For FIMD for example this will
> be used to enable disable the shadow protection bit.
>
> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
> ---
> drivers/gpu/drm/exynos/exynos_drm_crtc.c | 19 +++++++++++++++++++
> drivers/gpu/drm/exynos/exynos_drm_drv.h | 6 ++++++
> 2 files changed, 25 insertions(+)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> index 5a19e16..3a89fc9 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
> @@ -72,15 +72,34 @@ exynos_drm_crtc_mode_set_nofb(struct drm_crtc *crtc)
> static void exynos_crtc_atomic_begin(struct drm_crtc *crtc)
> {
> struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
> + struct drm_plane *plane;
>
> if (crtc->state->event) {
> WARN_ON(drm_crtc_vblank_get(crtc) != 0);
> exynos_crtc->event = crtc->state->event;
> }
> +
> + drm_atomic_crtc_for_each_plane(plane, crtc) {
> + struct exynos_drm_plane *exynos_plane = to_exynos_plane(plane);
> +
> + if (exynos_crtc->ops->prepare_plane)
> + exynos_crtc->ops->prepare_plane(exynos_crtc,
> + exynos_plane);
There is no any reason to use prepare_plane/cleanup_plane callback
names. How about using atomic_begin/atomic_flush callback names instead
for consistency between framework and device drivers?
Thanks,
Inki Dae
> + }
> }
>
> static void exynos_crtc_atomic_flush(struct drm_crtc *crtc)
> {
> + struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
> + struct drm_plane *plane;
> +
> + drm_atomic_crtc_for_each_plane(plane, crtc) {
> + struct exynos_drm_plane *exynos_plane = to_exynos_plane(plane);
> +
> + if (exynos_crtc->ops->cleanup_plane)
> + exynos_crtc->ops->cleanup_plane(exynos_crtc,
> + exynos_plane);
> + }
> }
>
> static struct drm_crtc_helper_funcs exynos_crtc_helper_funcs = {
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h
> index a993aac..9f2b5c9 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h
> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h
> @@ -87,6 +87,8 @@ struct exynos_drm_plane {
> * @disable_vblank: specific driver callback for disabling vblank interrupt.
> * @wait_for_vblank: wait for vblank interrupt to make sure that
> * hardware overlay is updated.
> + * @prepare_plane: prepare a window to receive a update
> + * @cleanup_plane: mark the end of a window update
> * @update_plane: apply hardware specific overlay data to registers.
> * @disable_plane: disable hardware specific overlay.
> * @te_handler: trigger to transfer video image at the tearing effect
> @@ -107,10 +109,14 @@ struct exynos_drm_crtc_ops {
> int (*enable_vblank)(struct exynos_drm_crtc *crtc);
> void (*disable_vblank)(struct exynos_drm_crtc *crtc);
> void (*wait_for_vblank)(struct exynos_drm_crtc *crtc);
> + void (*prepare_plane)(struct exynos_drm_crtc *crtc,
> + struct exynos_drm_plane *plane);
> void (*update_plane)(struct exynos_drm_crtc *crtc,
> struct exynos_drm_plane *plane);
> void (*disable_plane)(struct exynos_drm_crtc *crtc,
> struct exynos_drm_plane *plane);
> + void (*cleanup_plane)(struct exynos_drm_crtc *crtc,
> + struct exynos_drm_plane *plane);
> void (*te_handler)(struct exynos_drm_crtc *crtc);
> void (*clock_enable)(struct exynos_drm_crtc *crtc, bool enable);
> };
>
next prev parent reply other threads:[~2015-08-24 12:56 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-15 16:26 [PATCH 00/11] drm/exynos: improve atomic modesetting Gustavo Padovan
2015-08-15 16:26 ` [PATCH 01/11] drm/exynos: don't track enabled state at exynos_crtc Gustavo Padovan
2015-08-15 16:26 ` [PATCH 02/11] drm/exynos: fimd: unify call to exynos_drm_crtc_finish_pageflip() Gustavo Padovan
2015-08-15 16:26 ` [PATCH 03/11] drm/exynos: add prepare and cleanup phases for planes Gustavo Padovan
2015-08-24 12:56 ` Inki Dae [this message]
2015-08-26 15:45 ` Gustavo Padovan
2015-08-27 8:14 ` Inki Dae
2015-08-15 16:26 ` [PATCH 04/11] drm/exynos: fimd: move window protect code to prepare/cleanup_plane Gustavo Padovan
2015-08-15 16:26 ` [PATCH 05/11] drm/exynos: check for pending fb before finish update Gustavo Padovan
2015-08-15 16:26 ` [PATCH 06/11] drm/exynos: add macro to get the address of START_S reg Gustavo Padovan
2015-08-15 16:26 ` [PATCH 07/11] drm/exynos: fimd: only finish update if START == START_S Gustavo Padovan
2015-08-15 16:26 ` [PATCH 08/11] drm/exynos: add atomic asynchronous commit Gustavo Padovan
2015-08-15 16:26 ` [PATCH 09/11] drm/exynos: wait all planes updates to finish Gustavo Padovan
2015-08-15 16:26 ` [PATCH 10/11] drm/exynos: remove wait queue for pending page flip Gustavo Padovan
2015-08-15 16:26 ` [PATCH 11/11] drm/exynos: Enable atomic modesetting feature Gustavo Padovan
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=55DB1473.40109@samsung.com \
--to=inki.dae@samsung.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gustavo.padovan@collabora.co.uk \
--cc=gustavo@padovan.org \
--cc=jy0922.shim@samsung.com \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=tjakobi@math.uni-bielefeld.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.