From patchwork Wed Jun 10 14:08:29 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gustavo Padovan X-Patchwork-Id: 6580441 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 0E46B9F326 for ; Wed, 10 Jun 2015 14:08:42 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 032FF205C1 for ; Wed, 10 Jun 2015 14:08:41 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 0803120551 for ; Wed, 10 Jun 2015 14:08:40 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 5C6876E8D0; Wed, 10 Jun 2015 07:08:39 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-yh0-f47.google.com (mail-yh0-f47.google.com [209.85.213.47]) by gabe.freedesktop.org (Postfix) with ESMTP id B83F46E8D1 for ; Wed, 10 Jun 2015 07:08:37 -0700 (PDT) Received: by yhak3 with SMTP id k3so20913738yha.2 for ; Wed, 10 Jun 2015 07:08:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=from:to:cc:subject:date:message-id; bh=+PonsnlFHgADWXghelBSKibZ0hVl/4PkEnspQXUsrCs=; b=PB4cTa64ZF153P+IzxTfyqbp+GdmmEw57zy4RW8ZsFdvUUOvuX/xRZf7ZHiGsF6DLi t2Xczd9Vz0dd6vfem37O8upOwnxNY4qLNYS5Z4auDwGCuC/awBbW5Pz8yYAAOwdrEj+6 SnddKS0i02qqOWMaIucjWQCruEVHj52RQdu8YW08zZGS5iLkmIpFTIG/kUjiqxXe23XC NvrTF0U6ng3H5j+Q4MxRPjNtDnv9OFCRuHdgkpediEymKZg9Pp4bbqOa5d46v/OMrpzM IZu+16u5hS/QBbBMMaRLOCwAgDZCy2GzCjaCRMro6uBL0Fmwe5wXIL1pn3EZ8n6Zd+mX mvCw== X-Received: by 10.13.214.18 with SMTP id y18mr4243230ywd.30.1433945317097; Wed, 10 Jun 2015 07:08:37 -0700 (PDT) Received: from jade.localdomain ([187.64.235.140]) by mx.google.com with ESMTPSA id t5sm4016794yho.47.2015.06.10.07.08.33 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 10 Jun 2015 07:08:35 -0700 (PDT) From: Gustavo Padovan To: linux-samsung-soc@vger.kernel.org Subject: [PATCH] drm/exynos: mixer: remove chained calls to enable/disable planes Date: Wed, 10 Jun 2015 11:08:29 -0300 Message-Id: <1433945309-19650-1-git-send-email-gustavo@padovan.org> X-Mailer: git-send-email 2.1.0 Cc: dri-devel@lists.freedesktop.org, tjakobi@math.uni-bielefeld.de, Gustavo Padovan , m.szyprowski@samsung.com 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 From: Gustavo Padovan With atomic modesetting all the control for CRTC, Planes, Encoders and Connectors should come from DRM core, so the driver is not allowed to disable planes from inside the crtc_disable() call. This patch removes this chainned calls from mixer code letting only DRM core touch planes. Signed-off-by: Gustavo Padovan --- drivers/gpu/drm/exynos/exynos_mixer.c | 35 ----------------------------------- 1 file changed, 35 deletions(-) diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c index 6bab717..0e4d083 100644 --- a/drivers/gpu/drm/exynos/exynos_mixer.c +++ b/drivers/gpu/drm/exynos/exynos_mixer.c @@ -937,8 +937,6 @@ static void mixer_win_commit(struct exynos_drm_crtc *crtc, unsigned int win) vp_video_buffer(mixer_ctx, win); else mixer_graph_buffer(mixer_ctx, win); - - mixer_ctx->planes[win].enabled = true; } static void mixer_win_disable(struct exynos_drm_crtc *crtc, unsigned int win) @@ -952,7 +950,6 @@ static void mixer_win_disable(struct exynos_drm_crtc *crtc, unsigned int win) mutex_lock(&mixer_ctx->mixer_mutex); if (!mixer_ctx->powered) { mutex_unlock(&mixer_ctx->mixer_mutex); - mixer_ctx->planes[win].resume = false; return; } mutex_unlock(&mixer_ctx->mixer_mutex); @@ -964,8 +961,6 @@ static void mixer_win_disable(struct exynos_drm_crtc *crtc, unsigned int win) mixer_vsync_set_update(mixer_ctx, true); spin_unlock_irqrestore(&res->reg_slock, flags); - - mixer_ctx->planes[win].enabled = false; } static void mixer_wait_for_vblank(struct exynos_drm_crtc *crtc) @@ -1000,33 +995,6 @@ static void mixer_wait_for_vblank(struct exynos_drm_crtc *crtc) drm_vblank_put(mixer_ctx->drm_dev, mixer_ctx->pipe); } -static void mixer_window_suspend(struct mixer_context *ctx) -{ - struct exynos_drm_plane *plane; - int i; - - for (i = 0; i < MIXER_WIN_NR; i++) { - plane = &ctx->planes[i]; - plane->resume = plane->enabled; - mixer_win_disable(ctx->crtc, i); - } - mixer_wait_for_vblank(ctx->crtc); -} - -static void mixer_window_resume(struct mixer_context *ctx) -{ - struct exynos_drm_plane *plane; - int i; - - for (i = 0; i < MIXER_WIN_NR; i++) { - plane = &ctx->planes[i]; - plane->enabled = plane->resume; - plane->resume = false; - if (plane->enabled) - mixer_win_commit(ctx->crtc, i); - } -} - static void mixer_enable(struct exynos_drm_crtc *crtc) { struct mixer_context *ctx = crtc->ctx; @@ -1058,8 +1026,6 @@ static void mixer_enable(struct exynos_drm_crtc *crtc) mixer_reg_write(res, MXR_INT_EN, ctx->int_en); mixer_win_reset(ctx); - - mixer_window_resume(ctx); } static void mixer_disable(struct exynos_drm_crtc *crtc) @@ -1076,7 +1042,6 @@ static void mixer_disable(struct exynos_drm_crtc *crtc) mixer_stop(ctx); mixer_regs_dump(ctx); - mixer_window_suspend(ctx); ctx->int_en = mixer_reg_read(res, MXR_INT_EN);