From patchwork Wed Apr 15 22:09:44 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Laurent Pinchart X-Patchwork-Id: 6223061 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 847189F691 for ; Wed, 15 Apr 2015 22:10:26 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 31DF520379 for ; Wed, 15 Apr 2015 22:10:25 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id C786E2037D for ; Wed, 15 Apr 2015 22:10:20 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 81EC46E912; Wed, 15 Apr 2015 15:10:14 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from galahad.ideasonboard.com (galahad.ideasonboard.com [185.26.127.97]) by gabe.freedesktop.org (Postfix) with ESMTP id B3BA66E90D for ; Wed, 15 Apr 2015 15:10:03 -0700 (PDT) Received: from avalon.ideasonboard.com (dsl-hkibrasgw3-50ddcc-40.dhcp.inet.fi [80.221.204.40]) by galahad.ideasonboard.com (Postfix) with ESMTPSA id 1442F20813; Thu, 16 Apr 2015 00:08:04 +0200 (CEST) From: Laurent Pinchart To: dri-devel@lists.freedesktop.org Subject: [PATCH 27/31] drm: omapdrm: Remove omap_crtc enabled field Date: Thu, 16 Apr 2015 01:09:44 +0300 Message-Id: <1429135788-31979-28-git-send-email-laurent.pinchart@ideasonboard.com> X-Mailer: git-send-email 2.0.5 In-Reply-To: <1429135788-31979-1-git-send-email-laurent.pinchart@ideasonboard.com> References: <1429135788-31979-1-git-send-email-laurent.pinchart@ideasonboard.com> Cc: Tomi Valkeinen X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The field tracks the CRTC state to avoid double-enable or -disable. As the DRM atomic core guarantees that the CRTC enable and disable functions won't be called on an already enabled or disabled CRTC, such tracking isn't needed. Remove the enabled field. Signed-off-by: Laurent Pinchart --- drivers/gpu/drm/omapdrm/omap_crtc.c | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/drivers/gpu/drm/omapdrm/omap_crtc.c b/drivers/gpu/drm/omapdrm/omap_crtc.c index 2986a60..d02b54d 100644 --- a/drivers/gpu/drm/omapdrm/omap_crtc.c +++ b/drivers/gpu/drm/omapdrm/omap_crtc.c @@ -47,7 +47,6 @@ struct omap_crtc { struct omap_overlay_manager *mgr; struct omap_video_timings timings; - bool enabled; struct omap_drm_irq vblank_irq; struct omap_drm_irq error_irq; @@ -127,7 +126,7 @@ static void omap_crtc_dss_start_update(struct omap_overlay_manager *mgr) { } -/* Called only from omap_crtc_setup and suspend/resume handlers. */ +/* Called only from omap_crtc_encoder_setup and suspend/resume handlers. */ static void omap_crtc_set_enabled(struct drm_crtc *crtc, bool enable) { struct drm_device *dev = crtc->dev; @@ -386,14 +385,14 @@ int omap_crtc_flush(struct drm_crtc *crtc) return 0; } -static void omap_crtc_setup(struct drm_crtc *crtc) +static void omap_crtc_encoder_setup(struct drm_crtc *crtc, bool enable) { struct omap_crtc *omap_crtc = to_omap_crtc(crtc); struct omap_drm_private *priv = crtc->dev->dev_private; struct drm_encoder *encoder = NULL; unsigned int i; - DBG("%s: enabled=%d", omap_crtc->name, omap_crtc->enabled); + DBG("%s: enable=%d", omap_crtc->name, enable); dispc_runtime_get(); @@ -409,14 +408,11 @@ static void omap_crtc_setup(struct drm_crtc *crtc) omap_crtc->current_encoder = encoder; - if (!omap_crtc->enabled) { - if (encoder) - omap_encoder_set_enabled(encoder, false); - } else { - if (encoder) { - omap_encoder_set_enabled(encoder, false); + if (encoder) { + omap_encoder_set_enabled(encoder, false); + if (enable) { omap_encoder_update(encoder, omap_crtc->mgr, - &omap_crtc->timings); + &omap_crtc->timings); omap_encoder_set_enabled(encoder, true); } } @@ -457,9 +453,6 @@ static void omap_crtc_enable(struct drm_crtc *crtc) DBG("%s", omap_crtc->name); - if (omap_crtc->enabled) - return; - /* Enable all planes associated with the CRTC. */ for (i = 0; i < priv->num_planes; i++) { struct drm_plane *plane = priv->planes[i]; @@ -468,9 +461,7 @@ static void omap_crtc_enable(struct drm_crtc *crtc) WARN_ON(omap_plane_set_enable(plane, true)); } - omap_crtc->enabled = true; - - omap_crtc_setup(crtc); + omap_crtc_encoder_setup(crtc, true); omap_crtc_flush(crtc); dispc_runtime_get(); @@ -486,9 +477,6 @@ static void omap_crtc_disable(struct drm_crtc *crtc) DBG("%s", omap_crtc->name); - if (!omap_crtc->enabled) - return; - omap_crtc_wait_page_flip(crtc); dispc_runtime_get(); drm_crtc_vblank_off(crtc); @@ -502,9 +490,7 @@ static void omap_crtc_disable(struct drm_crtc *crtc) WARN_ON(omap_plane_set_enable(plane, false)); } - omap_crtc->enabled = false; - - omap_crtc_setup(crtc); + omap_crtc_encoder_setup(crtc, false); omap_crtc_flush(crtc); }