From patchwork Tue Dec 18 18:31:26 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ben Widawsky X-Patchwork-Id: 1893451 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork2.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork2.kernel.org (Postfix) with ESMTP id A804FDF2F6 for ; Tue, 18 Dec 2012 18:47:30 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 953B3E6334 for ; Tue, 18 Dec 2012 10:47:30 -0800 (PST) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 124FAE63B0 for ; Tue, 18 Dec 2012 10:35:21 -0800 (PST) Received: from mail-pb0-f71.google.com ([209.85.160.71]) by mga09.intel.com with ESMTP/TLS/RC4-SHA; 18 Dec 2012 10:34:28 -0800 Received: by mail-pb0-f71.google.com with SMTP id wz17so916968pbc.6 for ; Tue, 18 Dec 2012 10:35:20 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:x-received:from:to:cc:subject:date:message-id:x-mailer :in-reply-to:references:x-gm-message-state; bh=wWY9C6KHC0NTnla5kRjqdorJY+UBkHth5Mx2C5BMtX0=; b=jeq8MwqILR9NDSjEEja0hq2G/BsOcCT/SXZ7KgPI2tZYj5/NVcQTmLshuWbaLAtXs9 LcbiIi3XSIEIGkWSkM9Papva+Z5ynfUf/NzHv2+XaOR4fGjSLcN4bO4JoQ2ATFH3i5s2 pshRljBWHPCtL0hPRb6eY9uxmoWUZ3gMejz3UKUTjM2ipfLHliSMn0bxqdb44RtKQ3S0 q17ZJwpCbdDLwt8vNZ6m1AA8bLCFynntQqaKEsdxQ317Qq0C2ZqaKIlLJo1ObK5dxySA goV1Aoemx8WF/M3/Yr9Icyp4jPl0cykW1Lgyuv8n8QvSb5xCeNaEDokx3eSQ77vASN4m Q27Q== X-Received: by 10.68.143.162 with SMTP id sf2mr9285444pbb.137.1355855720422; Tue, 18 Dec 2012 10:35:20 -0800 (PST) X-Received: by 10.68.143.162 with SMTP id sf2mr9285425pbb.137.1355855720281; Tue, 18 Dec 2012 10:35:20 -0800 (PST) Received: from norris.jf.intel.com ([192.55.55.41]) by mx.google.com with ESMTPS id ip8sm1552525pbc.36.2012.12.18.10.35.19 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 18 Dec 2012 10:35:19 -0800 (PST) From: Ben Widawsky To: intel-gfx@lists.freedesktop.org Date: Tue, 18 Dec 2012 10:31:26 -0800 Message-Id: <1355855487-20424-5-git-send-email-ben@bwidawsk.net> X-Mailer: git-send-email 1.8.0.1 In-Reply-To: <1355855487-20424-1-git-send-email-ben@bwidawsk.net> References: <1355855487-20424-1-git-send-email-ben@bwidawsk.net> X-Gm-Message-State: ALoCoQny2s0itdfAwUhYMuUgVgQn5/weQu/kvih2ujrTkismozJG2Wb6zbfJWeLJX4E7tI2EvshXGF5TwWYdPeYhawjyoLgayuEkw6vwpb+2FZXO32Mw7Og+CKXdEh/YbCt9cGm82IHknxvkfVIjUUate8f2oGuB9WCYgDEh51eU5rz0N0YU5mc= X-Mailman-Approved-At: Tue, 18 Dec 2012 10:45:20 -0800 Cc: Ben Widawsky Subject: [Intel-gfx] [PATCH 5/6] drm/i915: Move GSM mapping into dev_priv 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+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+patchwork-intel-gfx=patchwork.kernel.org@lists.freedesktop.org This removes an unused field from the AGP structure and moves it into the dev_priv structure (with a slightly better name). This builds upon the kill-agp series already merged. GSM is a well defined term in the bspec: GSM: Graphics Stolen Memory GTT stolen space is defined for storage of the GFX GTT entries in physical memory. IA can not access GSM directly , it can only access via GTTMMADR. GT can access GSM directly or through GTTMMADR. This is not the entire stolen space. Signed-off-by: Ben Widawsky Reviewed-by: Mika Kuoppala --- drivers/char/agp/intel-gtt.c | 1 - drivers/gpu/drm/i915/i915_drv.h | 3 +++ drivers/gpu/drm/i915/i915_gem_gtt.c | 14 +++++++------- include/drm/intel-gtt.h | 2 -- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c index dbd901e..c8d9dcb 100644 --- a/drivers/char/agp/intel-gtt.c +++ b/drivers/char/agp/intel-gtt.c @@ -602,7 +602,6 @@ static int intel_gtt_init(void) iounmap(intel_private.registers); return -ENOMEM; } - intel_private.base.gtt = intel_private.gtt; global_cache_flush(); /* FIXME: ? */ diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 75003c3..49f465a 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -799,6 +799,9 @@ typedef struct drm_i915_private { unsigned long gtt_end; unsigned long stolen_base; /* limited to low memory (32-bit) */ + /** "Graphics Stolen Memory" holds the global PTEs */ + uint32_t __iomem *gsm; + struct io_mapping *gtt_mapping; phys_addr_t gtt_base_addr; int gtt_mtrr; diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c index fc3c08a..b4c1e34 100644 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c @@ -290,7 +290,7 @@ void i915_gem_init_ppgtt(struct drm_device *dev) return; - pd_addr = dev_priv->mm.gtt->gtt + ppgtt->pd_offset/sizeof(gtt_pte_t); + pd_addr = dev_priv->mm.gsm + ppgtt->pd_offset/sizeof(gtt_pte_t); for (i = 0; i < ppgtt->num_pd_entries; i++) { dma_addr_t pt_addr; @@ -367,7 +367,7 @@ static void i915_ggtt_clear_range(struct drm_device *dev, { struct drm_i915_private *dev_priv = dev->dev_private; gtt_pte_t scratch_pte; - gtt_pte_t __iomem *gtt_base = dev_priv->mm.gtt->gtt + first_entry; + gtt_pte_t __iomem *gtt_base = (gtt_pte_t __iomem *) dev_priv->mm.gsm + first_entry; const int max_entries = dev_priv->mm.gtt->gtt_total_entries - first_entry; int i; @@ -432,7 +432,7 @@ static void gen6_ggtt_bind_object(struct drm_i915_gem_object *obj, struct scatterlist *sg = st->sgl; const int first_entry = obj->gtt_space->start >> PAGE_SHIFT; const int max_entries = dev_priv->mm.gtt->gtt_total_entries - first_entry; - gtt_pte_t __iomem *gtt_entries = dev_priv->mm.gtt->gtt + first_entry; + gtt_pte_t __iomem *gtt_entries = dev_priv->mm.gsm + first_entry; int unused, i = 0; unsigned int len, m = 0; dma_addr_t addr; @@ -751,9 +751,9 @@ int i915_gem_gtt_init(struct drm_device *dev) goto err_out; } - dev_priv->mm.gtt->gtt = ioremap_wc(gtt_bus_addr, - dev_priv->mm.gtt->gtt_total_entries * sizeof(gtt_pte_t)); - if (!dev_priv->mm.gtt->gtt) { + dev_priv->mm.gsm = ioremap_wc(gtt_bus_addr, + dev_priv->mm.gtt->gtt_total_entries * sizeof(gtt_pte_t)); + if (!dev_priv->mm.gsm) { DRM_ERROR("Failed to map the gtt page table\n"); teardown_scratch_page(dev); ret = -ENOMEM; @@ -777,7 +777,7 @@ err_out: void i915_gem_gtt_fini(struct drm_device *dev) { struct drm_i915_private *dev_priv = dev->dev_private; - iounmap(dev_priv->mm.gtt->gtt); + iounmap(dev_priv->mm.gsm); teardown_scratch_page(dev); if (INTEL_INFO(dev)->gen < 6) intel_gmch_remove(); diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h index 6eb76a1..3e3a166 100644 --- a/include/drm/intel-gtt.h +++ b/include/drm/intel-gtt.h @@ -18,8 +18,6 @@ struct intel_gtt { /* Share the scratch page dma with ppgtts. */ dma_addr_t scratch_page_dma; struct page *scratch_page; - /* for ppgtt PDE access */ - u32 __iomem *gtt; /* needed for ioremap in drm/i915 */ phys_addr_t gma_bus_addr; } *intel_gtt_get(void);