From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: [PATCH 7/9] drm/i915: [sparse] forced __iomem ringbuffer fixes Date: Mon, 16 Apr 2012 14:07:46 -0700 Message-ID: <1334610468-9274-8-git-send-email-ben@bwidawsk.net> References: <1334610468-9274-1-git-send-email-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from cloud01.chad-versace.us (184-106-247-128.static.cloud-ips.com [184.106.247.128]) by gabe.freedesktop.org (Postfix) with ESMTP id 2EE029F727 for ; Mon, 16 Apr 2012 14:09:30 -0700 (PDT) In-Reply-To: <1334610468-9274-1-git-send-email-ben@bwidawsk.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org Cc: Ben Widawsky , Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org It should be safe to do this since GEN driver is only ever for x86, an __iomem and dma mem should be the same. However, these changes caused me to really think and try multiple solutions. Someone may come along and decide to do something better with these. Signed-off-by: Ben Widawsky --- drivers/gpu/drm/i915/intel_ringbuffer.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c index 62e11c5..8a0050f 100644 --- a/drivers/gpu/drm/i915/intel_ringbuffer.c +++ b/drivers/gpu/drm/i915/intel_ringbuffer.c @@ -869,7 +869,7 @@ static int init_status_page(struct intel_ring_buffer *ring) } ring->status_page.gfx_addr = obj->gtt_offset; - ring->status_page.page_addr = kmap(obj->pages[0]); + ring->status_page.page_addr = (uint32_t __iomem *)kmap(obj->pages[0]); if (ring->status_page.page_addr == NULL) { memset(&dev_priv->hws_map, 0, sizeof(dev_priv->hws_map)); goto err_unpin; @@ -1309,7 +1309,8 @@ int intel_init_render_ring_buffer(struct drm_device *dev) if (!I915_NEED_GFX_HWS(dev)) { - ring->status_page.page_addr = dev_priv->status_page_dmah->vaddr; + ring->status_page.page_addr = + (void __iomem *) dev_priv->status_page_dmah->vaddr; memset_io(ring->status_page.page_addr, 0, PAGE_SIZE); } @@ -1350,7 +1351,8 @@ int intel_render_ring_init_dri(struct drm_device *dev, u64 start, u32 size) ring->cleanup = render_ring_cleanup; if (!I915_NEED_GFX_HWS(dev)) - ring->status_page.page_addr = dev_priv->status_page_dmah->vaddr; + ring->status_page.page_addr = + (void __iomem *) dev_priv->status_page_dmah->vaddr; ring->dev = dev; INIT_LIST_HEAD(&ring->active_list); -- 1.7.10