From patchwork Fri Aug 24 19:37:47 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alex Deucher X-Patchwork-Id: 1372451 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id 980533FC81 for ; Fri, 24 Aug 2012 19:38:07 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 60E6AA0F8E for ; Fri, 24 Aug 2012 12:38:07 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-qc0-f177.google.com (mail-qc0-f177.google.com [209.85.216.177]) by gabe.freedesktop.org (Postfix) with ESMTP id 35D51A0F57 for ; Fri, 24 Aug 2012 12:37:56 -0700 (PDT) Received: by qcsu28 with SMTP id u28so1499446qcs.36 for ; Fri, 24 Aug 2012 12:37:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:x-mailer; bh=RnicqZ8yxtarvBj/HxjZcy3FZHS3z+z3pNbn2Vamio0=; b=t5ry3VxoPr11dC8gohYGi3iisDb20YqH3lCnEqOGqr33pF1wAqzOb3SHzLiUa2psEC mkXYw431MNOjSUqqCi6xe69rM8LSj++bcysQnvp/GzpfQorH1afUDQK9vB310fVHa4Hk D2ek+Uamin5LGcAfG9jFDAiTs0m2PMw3F4oL9WeG43f5A+G2WJwjFLLe/hWULLa+XLge JzmdvUvZ2DYNwFpdJOWTwhQgFaOLbn5OMbyzvag5Tg64c6dGmS+YYPsMzYs/a5n/l2+L ETxTfgHVtlxlvHKUrFQm77Nu66uKAv9ZvzGNAEC7pGO5gagwynAH7pNSnB9SrL9MiPoW HdXA== Received: by 10.224.199.135 with SMTP id es7mr10680231qab.6.1345837075550; Fri, 24 Aug 2012 12:37:55 -0700 (PDT) Received: from localhost.localdomain (static-74-96-105-49.washdc.fios.verizon.net. [74.96.105.49]) by mx.google.com with ESMTPS id g3sm7925489qah.5.2012.08.24.12.37.53 (version=SSLv3 cipher=OTHER); Fri, 24 Aug 2012 12:37:54 -0700 (PDT) From: alexdeucher@gmail.com To: airlied@gmail.com, dri-devel@lists.freedesktop.org Subject: [PATCH 1/2] drm/radeon: don't disable plls that are in use by other crtcs Date: Fri, 24 Aug 2012 15:37:47 -0400 Message-Id: <1345837068-1799-1-git-send-email-alexdeucher@gmail.com> X-Mailer: git-send-email 1.7.7.5 Cc: Alex Deucher , stable@vger.kernel.org X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org From: Alex Deucher Some plls are shared for DP. Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org Reviewed-by: Michel Dänzer --- drivers/gpu/drm/radeon/atombios_crtc.c | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-) diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index bcc5cd3..6b274ff 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c @@ -1722,9 +1722,22 @@ static void atombios_crtc_disable(struct drm_crtc *crtc) struct drm_device *dev = crtc->dev; struct radeon_device *rdev = dev->dev_private; struct radeon_atom_ss ss; + int i; atombios_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); + for (i = 0; i < rdev->num_crtc; i++) { + if (rdev->mode_info.crtcs[i] && + rdev->mode_info.crtcs[i]->enabled && + i != radeon_crtc->crtc_id && + radeon_crtc->pll_id == rdev->mode_info.crtcs[i]->pll_id) { + /* one other crtc is using this pll don't turn + * off the pll + */ + goto done; + } + } + switch (radeon_crtc->pll_id) { case ATOM_PPLL1: case ATOM_PPLL2: @@ -1741,6 +1754,7 @@ static void atombios_crtc_disable(struct drm_crtc *crtc) default: break; } +done: radeon_crtc->pll_id = -1; }