From patchwork Fri Jun 19 14:32:16 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jerome Glisse X-Patchwork-Id: 6645581 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 D88D5C0020 for ; Fri, 19 Jun 2015 14:32:40 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 04DD32094E for ; Fri, 19 Jun 2015 14:32:40 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 11FCF2094B for ; Fri, 19 Jun 2015 14:32:39 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id EC92B6E385; Fri, 19 Jun 2015 07:32:36 -0700 (PDT) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from mail-qk0-f181.google.com (mail-qk0-f181.google.com [209.85.220.181]) by gabe.freedesktop.org (Postfix) with ESMTP id 536E96E155 for ; Fri, 19 Jun 2015 07:32:35 -0700 (PDT) Received: by qkbp125 with SMTP id p125so57476729qkb.2 for ; Fri, 19 Jun 2015 07:32:35 -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:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=2JdBD0868l/XdZRAyBiyyxzLZrPyCubphcuKx/tCBd0=; b=h95JdumMrpUwj12KftdD/nRQ2sleOAwCQTQ2xb7PxN3oT9OmtWIlh+YuBVSZlbzQzB 6x6lPDrQsmRLJkbQS915HP2JnS/8qm/ptHBpUMdwcpaqkg/FYp+dVWQRO8tfUZ6Njuo+ Z6mWIeqHpFDPzKopaHO2SXMAhPGB2k8oV0Qj/rn1sbf3r8ezzlB9ZBRMRNMjquLjY576 sAVaYfv5eoWyeiIo/jq3zqjTv/c8EcHzVNe873GHx2/cM7MLd9LMMcHRLKUXynXaMDXj baRTxjQsdmbcvPvZjDL0MNfy5db7v/rnshoYPagtIvdxHtHtm+bSYL/A0LQX+LzPffkQ +jCw== X-Received: by 10.55.41.233 with SMTP id p102mr8685921qkp.32.1434724354967; Fri, 19 Jun 2015 07:32:34 -0700 (PDT) Received: from localhost.localdomain.com (c-24-61-14-213.hsd1.ma.comcast.net. [24.61.14.213]) by mx.google.com with ESMTPSA id 67sm5674611qhw.43.2015.06.19.07.32.34 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Jun 2015 07:32:34 -0700 (PDT) From: j.glisse@gmail.com To: dri-devel@lists.freedesktop.org Subject: [PATCH 2/2] drm/radeon: SDMA fix hibernation (CI GPU family). Date: Fri, 19 Jun 2015 10:32:16 -0400 Message-Id: <1434724336-15761-2-git-send-email-j.glisse@gmail.com> X-Mailer: git-send-email 2.1.0 In-Reply-To: <1434724336-15761-1-git-send-email-j.glisse@gmail.com> References: <1434724336-15761-1-git-send-email-j.glisse@gmail.com> MIME-Version: 1.0 Cc: =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , stable@vger.kernel.org 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: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_MED, RP_MATCHES_RCVD, T_DKIM_INVALID, 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: Jérôme Glisse In order for hibernation to reliably work we need to properly turn off the SDMA block, sadly after numerous attemps i haven't not found proper sequence for clean and full shutdown. So simply reset both SDMA block, this makes hibernation works reliably on sea island GPU family (CI) Hibernation and suspend to ram were tested (several times) on : Bonaire Hawaii Mullins Kaveri Kabini Cc: stable@vger.kernel.org Signed-off-by: Jérôme Glisse Reviewed-by: Christian König --- drivers/gpu/drm/radeon/cik_sdma.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/radeon/cik_sdma.c b/drivers/gpu/drm/radeon/cik_sdma.c index f86eb54..d16f2ee 100644 --- a/drivers/gpu/drm/radeon/cik_sdma.c +++ b/drivers/gpu/drm/radeon/cik_sdma.c @@ -268,6 +268,17 @@ static void cik_sdma_gfx_stop(struct radeon_device *rdev) } rdev->ring[R600_RING_TYPE_DMA_INDEX].ready = false; rdev->ring[CAYMAN_RING_TYPE_DMA1_INDEX].ready = false; + + /* FIXME use something else than big hammer but after few days can not + * seem to find good combination so reset SDMA blocks as it seems we + * do not shut them down properly. This fix hibernation and does not + * affect suspend to ram. + */ + WREG32(SRBM_SOFT_RESET, SOFT_RESET_SDMA | SOFT_RESET_SDMA1); + (void)RREG32(SRBM_SOFT_RESET); + udelay(50); + WREG32(SRBM_SOFT_RESET, 0); + (void)RREG32(SRBM_SOFT_RESET); } /**