From patchwork Tue Jan 7 00:56:17 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bjorn Helgaas X-Patchwork-Id: 3445041 X-Patchwork-Delegate: bhelgaas@google.com Return-Path: X-Original-To: patchwork-linux-pci@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id EBB01C02DC for ; Tue, 7 Jan 2014 00:58:22 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 512D62017A for ; Tue, 7 Jan 2014 00:58:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7D66C2016D for ; Tue, 7 Jan 2014 00:58:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757843AbaAGA4W (ORCPT ); Mon, 6 Jan 2014 19:56:22 -0500 Received: from mail-ig0-f170.google.com ([209.85.213.170]:52999 "EHLO mail-ig0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757840AbaAGA4T (ORCPT ); Mon, 6 Jan 2014 19:56:19 -0500 Received: by mail-ig0-f170.google.com with SMTP id k19so8812412igc.1 for ; Mon, 06 Jan 2014 16:56:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=subject:to:from:cc:date:message-id:in-reply-to:references :user-agent:mime-version:content-type:content-transfer-encoding; bh=m6Tpq4+PdMe+J0JvVTSwjjkmuHdU9hVJ/FWRZzp1cFU=; b=mY4Z4/RMr+c2TewBHjT/3s6l6xhZu7djXCrabbikmWq6y0FeR9iKsVZQZn+AVqR6Gr TuRLZYaHoyrEnuLux6ypXSwQxzSEIt6Mup6ePtuq288wuEEZu3Y9IkVuRB5WY0tKcrPW cPF+q5KIKMQsAH21IheyOqS5CHJfPJ0CHHqeyoS2wCUXMmGuDxh+zMzOiCxIHwcfU5oZ nmF8Z54GV1xzerYOu/4AYntOy16Apw54jyy9Sev8EwCOCixVqJXyw9d13/23pPy1GWxC 3rRGLnmz3lX6lFE35C+pICENWCBx5lCLfycjAa8d+RVYTGGJWhSxRz7H1labmm2rzmoq 0hdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:from:cc:date:message-id:in-reply-to :references:user-agent:mime-version:content-type :content-transfer-encoding; bh=m6Tpq4+PdMe+J0JvVTSwjjkmuHdU9hVJ/FWRZzp1cFU=; b=L0QZth4jAdiiL2MUjGXk3hAT9Br+o0VhBzn9QQrQMxDAoc71vnJwQUiEUojaJO2Vrq rDUxzjHb8vBhD1GlvWCOpyadJ4Vilbdp1boYxcJQTwJMj42OPeM22fD5I5IUY2M1G1MU DzkkWq2ZqjesB2rrhAdkkqVpSCI5DzzAh2KX0rk4CZ87rDGZAbtn/R0B16tILNVLJCF7 7eXRmFjiPe3bBtt2wOtiDmQvL7alumoSGtmc/n8NeNpoVo6RhHA6a7MzXRIr5/GHw16A T0FTim/gZAbK3TnqK/YAGQwiCTvVOj2CLmcxoWWDFOYeX3w5pp3XxEsI88Wzw/TRvPbj ChDw== X-Gm-Message-State: ALoCoQlWsswkiE8pr30lpQYNRCc7oyIpJTsNi7iQf9DynWjY7AqcLBS6zpMiMKdUj1ZUFiemgMyjJPpJdIv1ukuozmODn4wIu9KOUe1KagS0ldV71Z7Jtx+D5+iNlhe1RLlA8FOkv18bXuQ2wJ9BhEs0PVaWPVSiLebRozhXDbItT3Iwqkaasrz4gz1vq3maT8NnWJRZHAlNV+KX99CewbjHWXTUfJHBjfzmVooyZlDm/4kQMgH9YYY= X-Received: by 10.42.97.193 with SMTP id p1mr81767941icn.32.1389056178985; Mon, 06 Jan 2014 16:56:18 -0800 (PST) Received: from localhost ([172.29.127.26]) by mx.google.com with ESMTPSA id f5sm907144igc.4.2014.01.06.16.56.18 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Mon, 06 Jan 2014 16:56:18 -0800 (PST) Subject: [PATCH v7 09/15] agp/intel: Use pci_bus_address() to get MMADR bus address To: linux-pci@vger.kernel.org, Daniel Vetter From: Bjorn Helgaas Cc: David Airlie , Yinghai Lu , Guo Chao , linux-kernel@vger.kernel.org Date: Mon, 06 Jan 2014 17:56:17 -0700 Message-ID: <20140107005617.10786.81226.stgit@bhelgaas-glaptop.roam.corp.google.com> In-Reply-To: <20140107005003.10786.85164.stgit@bhelgaas-glaptop.roam.corp.google.com> References: <20140107005003.10786.85164.stgit@bhelgaas-glaptop.roam.corp.google.com> User-Agent: StGit/0.16 MIME-Version: 1.0 Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, RCVD_IN_DNSWL_HI, 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 Per the Intel 915G/915GV/... Chipset spec (document number 301467-005), MMADR is a standard PCI BAR. The PCI core reads MMADR at enumeration-time. Use pci_bus_address() instead of reading it again in the driver. This works correctly for both 32-bit and 64-bit BARs. The spec above only mentions 32-bit MMADR, but we should still use the standard interface. Also, stop clearing the low 19 bits of the bus address because it's invalid to use addresses outside the region defined by the BAR. The spec claims MMADR is 512KB; if that's the case, those bits will be zero anyway. Signed-off-by: Bjorn Helgaas --- drivers/char/agp/intel-agp.h | 4 ++-- drivers/char/agp/intel-gtt.c | 10 +++------- 2 files changed, 5 insertions(+), 9 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/drivers/char/agp/intel-agp.h b/drivers/char/agp/intel-agp.h index 0bf5590fd0f9..18bbaafb8509 100644 --- a/drivers/char/agp/intel-agp.h +++ b/drivers/char/agp/intel-agp.h @@ -56,7 +56,7 @@ /* Intel i810 registers */ #define I810_GMADR_BAR 0 -#define I810_MMADDR 0x14 +#define I810_MMADR_BAR 1 #define I810_PTE_BASE 0x10000 #define I810_PTE_MAIN_UNCACHED 0x00000000 #define I810_PTE_LOCAL 0x00000002 @@ -114,7 +114,7 @@ /* intel 915G registers */ #define I915_GMADR_BAR 2 -#define I915_MMADDR 0x10 +#define I915_MMADR_BAR 0 #define I915_PTEADDR 0x1C #define I915_GMCH_GMS_STOLEN_48M (0x6 << 4) #define I915_GMCH_GMS_STOLEN_64M (0x7 << 4) diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c index 560f66bffebb..58916f32c0f3 100644 --- a/drivers/char/agp/intel-gtt.c +++ b/drivers/char/agp/intel-gtt.c @@ -181,8 +181,7 @@ static int i810_setup(void) return -ENOMEM; intel_private.i81x_gtt_table = gtt_table; - pci_read_config_dword(intel_private.pcidev, I810_MMADDR, ®_addr); - reg_addr &= 0xfff80000; + reg_addr = pci_bus_address(intel_private.pcidev, I810_MMADR_BAR); intel_private.registers = ioremap(reg_addr, KB(64)); if (!intel_private.registers) @@ -785,8 +784,7 @@ static int i830_setup(void) { u32 reg_addr; - pci_read_config_dword(intel_private.pcidev, I810_MMADDR, ®_addr); - reg_addr &= 0xfff80000; + reg_addr = pci_bus_address(intel_private.pcidev, I810_MMADR_BAR); intel_private.registers = ioremap(reg_addr, KB(64)); if (!intel_private.registers) @@ -1107,9 +1105,7 @@ static int i9xx_setup(void) u32 reg_addr, gtt_addr; int size = KB(512); - pci_read_config_dword(intel_private.pcidev, I915_MMADDR, ®_addr); - - reg_addr &= 0xfff80000; + reg_addr = pci_bus_address(intel_private.pcidev, I915_MMADR_BAR); intel_private.registers = ioremap(reg_addr, size); if (!intel_private.registers)