From patchwork Tue Nov 19 02:32:33 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodrigo Vivi X-Patchwork-Id: 3199671 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id CC3569F43F for ; Tue, 19 Nov 2013 02:32:48 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id F2F302034C for ; Tue, 19 Nov 2013 02:32:47 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 0855C20218 for ; Tue, 19 Nov 2013 02:32:47 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id DBF22FBED0; Mon, 18 Nov 2013 18:32:45 -0800 (PST) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mail-pd0-f172.google.com (mail-pd0-f172.google.com [209.85.192.172]) by gabe.freedesktop.org (Postfix) with ESMTP id C1491FBED0 for ; Mon, 18 Nov 2013 18:32:42 -0800 (PST) Received: by mail-pd0-f172.google.com with SMTP id g10so3069090pdj.31 for ; Mon, 18 Nov 2013 18:32:42 -0800 (PST) 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; bh=2jnPsZVlEywTVdnBdasrAypUO/Pl4rqza1smbUXlr4M=; b=VnBnUJMLaaB6twQdcUP6vAMWKmZrO6W//pEdJZCZZ03GjQSM6oy+/FmWvrvAO6n2bE Rl5DpeVxDXPLOfRXYZlGGpB0fSsQ74j3dmDzhhSB8YCIyRVwHdm/ZaSQpatBbUZ9wlvF OTdFkTQR17cE7SArYWlhXzXRXvH4D9XKJAZBsyWM0OCJn51LjXoQ8SzucmxgyzbsXpL6 dnIkxx98TYgTIqWMCQfZRRwRyZ1dQPmBlaIUKmo8IZJi3xNZlB65KMiELz4UV7Vkyllg bnW/GIeQSsWSXRm0M8DGbIADbT9SdcvoheUG4QBGCubqdl5OHMGI06PoKtW63Jq6dPdm /Edg== X-Received: by 10.68.211.1 with SMTP id my1mr8729965pbc.55.1384828362675; Mon, 18 Nov 2013 18:32:42 -0800 (PST) Received: from localhost (jfdmzpr05-ext.jf.intel.com. [134.134.139.74]) by mx.google.com with ESMTPSA id uf2sm26631550pbc.28.2013.11.18.18.32.41 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 18 Nov 2013 18:32:41 -0800 (PST) From: Rodrigo Vivi To: intel-gfx@lists.freedesktop.org Date: Mon, 18 Nov 2013 18:32:33 -0800 Message-Id: <1384828358-31563-5-git-send-email-rodrigo.vivi@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1384828358-31563-1-git-send-email-rodrigo.vivi@gmail.com> References: <1384828358-31563-1-git-send-email-rodrigo.vivi@gmail.com> Subject: [Intel-gfx] [PATCH 4/9] drm/i915: Do hw quiescing first during unload X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org X-Spam-Status: No, score=-4.6 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=ham 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: Chris Wilson If we force the hw to idle as our first step during unload, we can abort the unload upon failure. Later we can probe whether the hardware remain active even after we try to shut it down. Signed-off-by: Chris Wilson Reviewed-by: Rodrigo Vivi --- drivers/gpu/drm/i915/i915_dma.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 0cab2d0..479abc0 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -1704,6 +1704,12 @@ int i915_driver_unload(struct drm_device *dev) struct drm_i915_private *dev_priv = dev->dev_private; int ret; + ret = i915_gem_suspend(dev); + if (ret) { + DRM_ERROR("failed to idle hardware: %d\n", ret); + return ret; + } + intel_gpu_ips_teardown(); if (HAS_POWER_WELL(dev)) { @@ -1719,10 +1725,6 @@ int i915_driver_unload(struct drm_device *dev) if (dev_priv->mm.inactive_shrinker.scan_objects) unregister_shrinker(&dev_priv->mm.inactive_shrinker); - ret = i915_gem_suspend(dev); - if (ret) - DRM_ERROR("failed to idle hardware: %d\n", ret); - io_mapping_free(dev_priv->gtt.mappable); arch_phys_wc_del(dev_priv->gtt.mtrr);