From patchwork Thu Jan 22 15:36:25 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Vetter X-Patchwork-Id: 5686091 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id EAAD3C058D for ; Thu, 22 Jan 2015 15:36:45 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 208FF20212 for ; Thu, 22 Jan 2015 15:36:45 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 3EF5220221 for ; Thu, 22 Jan 2015 15:36:44 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 650BD72099; Thu, 22 Jan 2015 07:36:41 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-wi0-f171.google.com (mail-wi0-f171.google.com [209.85.212.171]) by gabe.freedesktop.org (Postfix) with ESMTP id DAE8A72096 for ; Thu, 22 Jan 2015 07:36:39 -0800 (PST) Received: by mail-wi0-f171.google.com with SMTP id l15so34519828wiw.4 for ; Thu, 22 Jan 2015 07:36:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=iwknqpgI4zMcnCbcvmnRKjf7x/YA/68SemQ67HDOCgQ=; b=ABa3DsgdhnXVVan4nLwGKT174YIWHkEKfvi2p+RRcwGDIj6VkqfCYPZWuk2mxvPMRt KIXFhQgbqPHuxJhGs8I2yvUMP9T1dLXZYspdHo56qPFalFiZdnzB+V6o1RN61wYifDvh 1neHEEQVD23Xp1OqrupwLn7kJ5G4gU4vqXbt0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=iwknqpgI4zMcnCbcvmnRKjf7x/YA/68SemQ67HDOCgQ=; b=mOsI+JbRtG+plyIysBvDnrr3rcESMWiasw1V8qHjSKa7TG/RjdStjs2mpiPXRai9yI avJSf+QtVOckkSUudOE505qrzXtk6SbP/59jXJ/tWFnM8eSemapB6lAAGX8hotuwIrB4 cRvBmHvCQGB6gcXpMB9yavj4OeIyaSbmfHMqsb4SXUggr8lR379IquelRbakqqkf6z/G Aul3PVcZ7F1KpfkGzS7S8x05PqLOFPDDzuEfkhqRjZOrGksVpST+8tP6u22CF/6N3O+7 8SBWpQK6rcuNvkjiunz6+Qhe6Xd6bY4joeyd/vKUCnIUs8yJN9LyUQrMDmPWI2yvN4Yk w00A== X-Gm-Message-State: ALoCoQmEvvwakirWVJBJl7TkOyA0CZwzvhYzcFHzH3qqACJ3JlVuhVGHWopbdQGce5fP3PXRqZKg X-Received: by 10.180.94.163 with SMTP id dd3mr6417266wib.82.1421940999205; Thu, 22 Jan 2015 07:36:39 -0800 (PST) Received: from phenom.ffwll.local (80-219-119-195.dclient.hispeed.ch. [80.219.119.195]) by mx.google.com with ESMTPSA id da2sm4424049wjb.21.2015.01.22.07.36.37 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 22 Jan 2015 07:36:38 -0800 (PST) From: Daniel Vetter To: DRI Development Subject: [PATCH 5/5] drm/atomic-helper: debug output for modesets Date: Thu, 22 Jan 2015 16:36:25 +0100 Message-Id: <1421940985-5961-5-git-send-email-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1421940985-5961-1-git-send-email-daniel.vetter@ffwll.ch> References: <1421940985-5961-1-git-send-email-daniel.vetter@ffwll.ch> Cc: Daniel Vetter , Intel Graphics Development , Daniel Vetter 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.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID, 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 With the combination of ->enable and ->active it's a bit complicated to follow what exactly is going on sometimes within a full modeset. Add debug output to make this all traceable. Signed-off-by: Daniel Vetter --- drivers/gpu/drm/drm_atomic_helper.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index b67754035fec..b7ac83555b11 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -591,6 +591,9 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state) funcs = encoder->helper_private; + DRM_DEBUG_KMS("disabling [ENCODER:%d:%s]\n", + encoder->base.id, encoder->name); + /* * Each encoder has at most one connector (since we always steal * it away), so we won't call call disable hooks twice. @@ -627,6 +630,10 @@ disable_outputs(struct drm_device *dev, struct drm_atomic_state *old_state) funcs = crtc->helper_private; + DRM_DEBUG_KMS("disabling [CRTC:%d]\n", + crtc->base.id); + + /* Right function depends upon target state. */ if (crtc->state->enable && funcs->prepare) funcs->prepare(crtc); @@ -707,8 +714,12 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state) funcs = crtc->helper_private; - if (crtc->state->enable) + if (crtc->state->enable) { + DRM_DEBUG_KMS("modeset on [CRTC:%d]\n", + crtc->base.id); + funcs->mode_set_nofb(crtc); + } } for (i = 0; i < old_state->num_connector; i++) { @@ -732,6 +743,9 @@ crtc_set_mode(struct drm_device *dev, struct drm_atomic_state *old_state) if (!new_crtc_state->mode_changed) continue; + DRM_DEBUG_KMS("modeset on [ENCODER:%d:%s]\n", + encoder->base.id, encoder->name); + /* * Each encoder has at most one connector (since we always steal * it away), so we won't call call mode_set hooks twice. @@ -793,6 +807,9 @@ void drm_atomic_helper_commit_post_planes(struct drm_device *dev, funcs = crtc->helper_private; if (crtc->state->enable) { + DRM_DEBUG_KMS("enabling [CRTC:%d]\n", + crtc->base.id); + if (funcs->enable) funcs->enable(crtc); else @@ -816,6 +833,9 @@ void drm_atomic_helper_commit_post_planes(struct drm_device *dev, encoder = connector->state->best_encoder; funcs = encoder->helper_private; + DRM_DEBUG_KMS("enabling [ENCODER:%d:%s]\n", + encoder->base.id, encoder->name); + /* * Each encoder has at most one connector (since we always steal * it away), so we won't call call enable hooks twice.