From: Joonyoung Shim <jy0922.shim@samsung.com>
To: Daniel Vetter <daniel@ffwll.ch>, Gustavo Padovan <gustavo@padovan.org>
Cc: tjakobi@math.uni-bielefeld.de, linux-samsung-soc@vger.kernel.org,
Gustavo Padovan <gustavo.padovan@collabora.co.uk>,
dri-devel@lists.freedesktop.org,
Andrzej Hajda <a.hajda@samsung.com>
Subject: Re: [PATCH v2 12/23] drm/exynos: don't track enabled state at exynos_crtc
Date: Thu, 09 Jul 2015 17:09:48 +0900 [thread overview]
Message-ID: <559E2C4C.9030603@samsung.com> (raw)
In-Reply-To: <20150706174147.GB7568@phenom.ffwll.local>
+Cc Andrzej,
On 07/07/2015 02:41 AM, Daniel Vetter wrote:
> On Mon, Jul 06, 2015 at 11:20:13AM -0300, Gustavo Padovan wrote:
>> From: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
>>
>> struct drm_crtc already stores the enabled state of the crtc
>> thus we don't need to replicate enabled in exynos_drm_crtc.
>>
I think exynos_crtc->enabled can replace flags for power state of each
hw driver(e.g. "powered" of mixer driver, "suspended" of fimd driver).
Further, we can add other flag bit for instead of using special flag
in hw driver like vsync state("int_en" of mixer driver, "irq_flags" of
fimd driver.)
>> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
>
> Note that exynos_crtc->enabled doesn't match drm_crtc->enabled perfectly
> since the exynos one reflect hw state (including dpms). You want to look
> at crtc->state->active instead on functions enabling stuff, and
> old_crtc_state->active on functions disabling stuff (we don't wire that
> through everywhere yet).
> -Daniel
>
>> ---
>> drivers/gpu/drm/exynos/exynos_drm_crtc.c | 16 ----------------
>> drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 -
>> 2 files changed, 17 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
>> index 9bc2353..5ab8972 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
>> @@ -26,14 +26,9 @@ static void exynos_drm_crtc_enable(struct drm_crtc *crtc)
>> {
>> struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
>>
>> - if (exynos_crtc->enabled)
>> - return;
>> -
>> if (exynos_crtc->ops->enable)
>> exynos_crtc->ops->enable(exynos_crtc);
>>
>> - exynos_crtc->enabled = true;
>> -
>> drm_crtc_vblank_on(crtc);
>> }
>>
>> @@ -41,9 +36,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
>> {
>> struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
>>
>> - if (!exynos_crtc->enabled)
>> - return;
>> -
>> /* wait for the completion of page flip. */
>> if (!wait_event_timeout(exynos_crtc->pending_flip_queue,
>> (exynos_crtc->event == NULL), HZ/20))
>> @@ -53,8 +45,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
>>
>> if (exynos_crtc->ops->disable)
>> exynos_crtc->ops->disable(exynos_crtc);
>> -
>> - exynos_crtc->enabled = false;
>> }
>>
>> static bool
>> @@ -171,9 +161,6 @@ int exynos_drm_crtc_enable_vblank(struct drm_device *dev, int pipe)
>> struct exynos_drm_crtc *exynos_crtc =
>> to_exynos_crtc(private->crtc[pipe]);
>>
>> - if (!exynos_crtc->enabled)
>> - return -EPERM;
>> -
>> if (exynos_crtc->ops->enable_vblank)
>> return exynos_crtc->ops->enable_vblank(exynos_crtc);
>>
>> @@ -186,9 +173,6 @@ void exynos_drm_crtc_disable_vblank(struct drm_device *dev, int pipe)
>> struct exynos_drm_crtc *exynos_crtc =
>> to_exynos_crtc(private->crtc[pipe]);
>>
>> - if (!exynos_crtc->enabled)
>> - return;
>> -
>> if (exynos_crtc->ops->disable_vblank)
>> exynos_crtc->ops->disable_vblank(exynos_crtc);
>> }
>> diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h
>> index 5bd1d3c..d3a8f0a 100644
>> --- a/drivers/gpu/drm/exynos/exynos_drm_drv.h
>> +++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h
>> @@ -185,7 +185,6 @@ struct exynos_drm_crtc {
>> struct drm_crtc base;
>> enum exynos_drm_output_type type;
>> unsigned int pipe;
>> - bool enabled;
>> wait_queue_head_t pending_flip_queue;
>> struct drm_pending_vblank_event *event;
>> const struct exynos_drm_crtc_ops *ops;
>> --
>> 2.1.0
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel@lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
next prev parent reply other threads:[~2015-07-09 8:09 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-06 14:20 [PATCH v2 00/23] drm/exynos: atomic improvements + exynos_encoder removal Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 01/23] drm/exynos: pass the correct pipe number Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 02/23] drm/exynos: calculate vrefresh instead of use a fixed value Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 03/23] drm/exynos: use KMS version of DRM vblanks functions Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 04/23] drm/exynos: remove duplicated check for suspend Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 05/23] drm/exynos: add atomic asynchronous commit Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 06/23] drm/exynos: rename win_commit/disable to atomic-like names Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 07/23] drm/exynos: pass struct exynos_drm_plane in update/enable Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 08/23] drm/exynos: use drm atomic state directly Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 09/23] drm/exynos: remove unused fields from struct exynos_drm_plane Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 10/23] drm/exynos: unify exynos_drm_plane names with drm core Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 11/23] drm/exynos: return return value of exynos_crtc->enable_vblank Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 12/23] drm/exynos: don't track enabled state at exynos_crtc Gustavo Padovan
2015-07-06 17:41 ` Daniel Vetter
2015-07-09 8:09 ` Joonyoung Shim [this message]
2015-07-09 22:56 ` Gustavo Padovan
2015-07-10 0:47 ` Joonyoung Shim
2015-07-06 14:20 ` [PATCH v2 13/23] drm/exynos: split display's .dpms() into .enable() and .disable() Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 14/23] drm/exynos: remove wrappers for phy_power_{on,off} Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 15/23] drm/exynos: remove unused .remove() and .check_mode() ops from display Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 16/23] drm/exynos: simplify calculation of possible CRTCs Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 17/23] drm/exynos: remove struct exynos_drm_display Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 18/23] drm/exynos: remove extra call to hdmi_commit() Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 19/23] drm/exynos: remove extra call to exynos_dp_commit() Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 20/23] drm/exynos: remove exynos_encoder's .commit() op Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 21/23] drm/exynos: remove exynos_drm_create_enc_conn() Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 22/23] drm/exynos: fold encoder setup into exynos_drm_load() Gustavo Padovan
2015-07-06 14:20 ` [PATCH v2 23/23] drm/exynos: remove struct exynos_drm_encoder layer Gustavo Padovan
2015-07-14 7:34 ` [PATCH v2 00/23] drm/exynos: atomic improvements + exynos_encoder removal Joonyoung Shim
2015-07-16 15:26 ` 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=559E2C4C.9030603@samsung.com \
--to=jy0922.shim@samsung.com \
--cc=a.hajda@samsung.com \
--cc=daniel@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=gustavo.padovan@collabora.co.uk \
--cc=gustavo@padovan.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox