All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yinghai Lu <yinghai@kernel.org>
To: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>,
	Jesse Barnes <jbarnes@virtuousgeek.org>,
	"Eric W. Biederman" <ebiederm@xmission.com>,
	Alex Chiang <achiang@hp.com>,
	Bjorn Helgaas <bjorn.helgaas@hp.com>
Cc: Ingo Molnar <mingo@elte.hu>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Subject: [PATCH 1/9] pci: separate pci_setup_bridge to small functions
Date: Fri, 27 Nov 2009 23:34:55 -0800	[thread overview]
Message-ID: <4B10D29F.2000800@kernel.org> (raw)
In-Reply-To: <4B10D084.8070608@kernel.org>


prepare to use those small functions according to resource type later

Signed-off-by: Yinghai Lu <yinghai@kernel.org>

---
 drivers/pci/setup-bus.c |   54 +++++++++++++++++++++++++++++++++++++++---------
 1 file changed, 44 insertions(+), 10 deletions(-)

Index: linux-2.6/drivers/pci/setup-bus.c
===================================================================
--- linux-2.6.orig/drivers/pci/setup-bus.c
+++ linux-2.6/drivers/pci/setup-bus.c
@@ -134,19 +134,12 @@ EXPORT_SYMBOL(pci_setup_cardbus);
    config space writes, so it's quite possible that an I/O window of
    the bridge will have some undesirable address (e.g. 0) after the
    first write. Ditto 64-bit prefetchable MMIO.  */
-static void pci_setup_bridge(struct pci_bus *bus)
+static void pci_setup_bridge_io(struct pci_bus *bus)
 {
 	struct pci_dev *bridge = bus->self;
 	struct resource *res;
 	struct pci_bus_region region;
-	u32 l, bu, lu, io_upper16;
-	int pref_mem64;
-
-	if (pci_is_enabled(bridge))
-		return;
-
-	dev_info(&bridge->dev, "PCI bridge to [bus %02x-%02x]\n",
-		 bus->secondary, bus->subordinate);
+	u32 l, io_upper16;
 
 	/* Set up the top and bottom of the PCI I/O segment for this bus. */
 	res = bus->resource[0];
@@ -172,7 +165,13 @@ static void pci_setup_bridge(struct pci_
 	pci_write_config_dword(bridge, PCI_IO_BASE, l);
 	/* Update upper 16 bits of I/O base/limit. */
 	pci_write_config_dword(bridge, PCI_IO_BASE_UPPER16, io_upper16);
-
+}
+static void pci_setup_bridge_mmio(struct pci_bus *bus)
+{
+	struct pci_dev *bridge = bus->self;
+	struct resource *res;
+	struct pci_bus_region region;
+	u32 l;
 	/* Set up the top and bottom of the PCI Memory segment
 	   for this bus. */
 	res = bus->resource[1];
@@ -187,6 +186,14 @@ static void pci_setup_bridge(struct pci_
 		dev_info(&bridge->dev, "  bridge window [mem disabled]\n");
 	}
 	pci_write_config_dword(bridge, PCI_MEMORY_BASE, l);
+}
+static void pci_setup_bridge_mmio_pref(struct pci_bus *bus)
+{
+	struct pci_dev *bridge = bus->self;
+	struct resource *res;
+	struct pci_bus_region region;
+	u32 l, bu, lu;
+	int pref_mem64;
 
 	/* Clear out the upper 32 bits of PREF limit.
 	   If PCI_PREF_BASE_UPPER32 was non-zero, this temporarily
@@ -219,10 +226,37 @@ static void pci_setup_bridge(struct pci_
 		pci_write_config_dword(bridge, PCI_PREF_BASE_UPPER32, bu);
 		pci_write_config_dword(bridge, PCI_PREF_LIMIT_UPPER32, lu);
 	}
+}
+static void __pci_setup_bridge(struct pci_bus *bus, unsigned long type)
+{
+	struct pci_dev *bridge = bus->self;
+
+	if (pci_is_enabled(bridge))
+		return;
+
+	dev_info(&bridge->dev, "PCI bridge to [bus %02x-%02x]\n",
+		 bus->secondary, bus->subordinate);
+
+	if (type & IORESOURCE_IO)
+		pci_setup_bridge_io(bus);
+
+	if (type & IORESOURCE_MEM)
+		pci_setup_bridge_mmio(bus);
+
+	if (type & IORESOURCE_PREFETCH)
+		pci_setup_bridge_mmio_pref(bus);
 
 	pci_write_config_word(bridge, PCI_BRIDGE_CONTROL, bus->bridge_ctl);
 }
 
+static void pci_setup_bridge(struct pci_bus *bus)
+{
+	unsigned long type = IORESOURCE_IO | IORESOURCE_MEM |
+				  IORESOURCE_PREFETCH;
+
+	__pci_setup_bridge(bus, type);
+}
+
 /* Check whether the bridge supports optional I/O and
    prefetchable memory ranges. If not, the respective
    base/limit registers must be read-only and read as 0. */


  parent reply	other threads:[~2009-11-28  7:40 UTC|newest]

Thread overview: 129+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-10-21  7:19 [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices Yinghai Lu
2009-10-21 18:57 ` Alex Chiang
2009-10-22  0:29   ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices - v2 Yinghai Lu
2009-10-26  4:54 ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices Kenji Kaneshige
2009-10-26  5:49   ` Yinghai Lu
2009-10-26  7:48     ` Kenji Kaneshige
2009-10-26  8:25       ` Yinghai Lu
2009-10-26 10:27         ` Kenji Kaneshige
2009-10-26 17:59           ` Yinghai Lu
2009-10-26 18:52             ` Yinghai Lu
2009-10-28  8:31               ` Kenji Kaneshige
2009-10-28 17:44                 ` Yinghai Lu
2009-10-28 17:52                   ` Bjorn Helgaas
2009-10-28 18:37                     ` Yinghai Lu
2009-10-28 19:00                   ` Eric W. Biederman
2009-10-28 19:12                     ` Yinghai Lu
2009-10-28 19:36                       ` Eric W. Biederman
2009-10-28 19:50                         ` Yinghai Lu
2009-10-28 21:30                           ` Eric W. Biederman
2009-10-28 21:39                             ` Yinghai Lu
2009-10-28 22:25                               ` Yinghai Lu
2009-10-28 22:26                                 ` Yinghai Lu
2009-10-29  8:16                                 ` Eric W. Biederman
2009-10-29  9:03                                   ` Yinghai Lu
2009-10-29 15:43                                     ` Eric W. Biederman
2009-10-29 17:00                                       ` Yinghai Lu
2009-10-29 19:48                                         ` Eric W. Biederman
2009-10-29 19:55                                           ` Yinghai Lu
2009-10-30  8:36                                           ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v8 Yinghai Lu
2009-10-30  8:37                                             ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v8 Yinghai Lu
2009-11-10  8:00                                             ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v8 Kenji Kaneshige
2009-10-29 13:21                                   ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices Bjorn Helgaas
2009-10-29 15:13                                     ` Eric W. Biederman
2009-10-29 15:43                                       ` Bjorn Helgaas
2009-10-29 19:28                                         ` Eric W. Biederman
2009-10-29 19:36                                           ` Bjorn Helgaas
     [not found]                     ` <4AE89933.8030809@kernel.org>
2009-10-28 19:20                       ` [PATCH 2/2] pci: only release that resource index is less than 3 -v5 Yinghai Lu
2009-10-29  6:34                         ` Kenji Kaneshige
2009-10-29  9:03                           ` Yinghai Lu
2009-10-28 19:21                     ` [PATCH 1/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v4 Yinghai Lu
2009-10-29  8:28                       ` Kenji Kaneshige
2009-10-29  8:30                         ` Yinghai Lu
2009-10-29  8:55                           ` Kenji Kaneshige
2009-10-29  8:57                             ` Yinghai Lu
2009-10-29  9:52                             ` [PATCH 1/2] pci: release that leaf bridge' resource index is not used -v6 Yinghai Lu
2009-10-29 16:31                               ` Jesse Barnes
2009-10-29 17:10                                 ` Yinghai Lu
2009-10-29 17:51                                   ` Jesse Barnes
     [not found]                             ` <4AE9657F.7010302@kernel.org>
2009-10-29  9:52                               ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v5 Yinghai Lu
2009-11-04 17:30                                 ` Jesse Barnes
2009-11-04 18:52                                   ` Yinghai Lu
2009-11-05  1:40                                     ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v9 Yinghai Lu
2009-11-05  1:40                                       ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v9 Yinghai Lu
2009-11-05 20:47                                         ` Alex Chiang
2009-11-05 21:06                                           ` Yinghai Lu
2009-11-07  5:41                                         ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v10 Yinghai Lu
2009-11-07  5:43                                         ` Yinghai Lu
2009-11-10  8:07                                           ` Kenji Kaneshige
2009-11-10  9:48                                             ` Yinghai Lu
2009-11-13  6:08                                               ` Kenji Kaneshige
2009-11-13  6:26                                                 ` Yinghai Lu
2009-11-13  8:33                                                   ` Kenji Kaneshige
2009-11-14  8:50                                                     ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v11 Yinghai Lu
2009-11-24  1:08                                                       ` Kenji Kaneshige
2009-11-24  1:14                                                         ` Yinghai Lu
     [not found]                                                           ` <4B0B3C13.9030502@jp.fujit! su.com>
2009-11-24  1:51                                                           ` Kenji Kaneshige
2009-11-24  2:32                                                             ` Yinghai Lu
2009-11-24 23:18                                                             ` Yinghai Lu
2009-11-25 11:24                                                               ` Kenji Kaneshige
2009-11-25 11:25                                                                 ` [PATCH 1/2] pciehp: remove redundancy in bridge resource allocation Kenji Kaneshige
2009-11-25 17:37                                                                   ` Yinghai Lu
2009-11-25 11:27                                                                 ` [PATCH 2/2] pciehp: add support for bridge resource reallocation Kenji Kaneshige
2009-11-25 17:44                                                                 ` [PATCH 1/2] pci: release that leaf bridge' resource that is not big -v11 Yinghai Lu
2009-11-26  6:43                                                                   ` Kenji Kaneshige
2009-11-26  7:30                                                                     ` Yinghai
2009-11-27  7:12                                                                       ` Kenji Kaneshige
2009-11-27  7:52                                                                         ` Yinghai Lu
2009-11-27  8:26                                                                           ` Kenji Kaneshige
2009-11-27 23:13                                                                             ` Yinghai Lu
2009-11-25 19:58                                                                 ` [PATCH 0/9] pci: update pci bridge resource to get more big range for devices under it - v12 Yinghai Lu
     [not found]                                                                 ` <4B0D88A4.5050904@kerne! l.org>
     [not found]                                                                   ` <4B0D88A4.5050904@kernel.org>
2009-11-25 19:59                                                                     ` [PATCH 1/9] pci: separate pci_setup_bridge to small functions Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 2/9] pci: add pci_bridge_release_unused_res and pci_bus_release_unused_bridge_res Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 3/9] pci: don't dump it when bus resource flags is not set Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 4/9] pci: add failed_list to record failed one for pci_bus_assign_resources Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 5/9] pci: update leaf bridge res to get more big range in pci assign unssign Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 6/9] pci: don't shrink bridge resources Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 7/9] pci: introduce pci_assign_unassigned_bridge_resources Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 8/9] pci: pciehp clean flow in pciehp_configure_device Yinghai Lu
2009-11-25 19:59                                                                     ` [PATCH 9/9] pci: pciehp second try to get big range for pcie devices Yinghai Lu
2009-11-28  7:34                                                                 ` [PATCH 0/9] pci: update pci bridge resource to get more big range for devices under it - v13 Yinghai Lu
2009-11-28  8:15                                                                   ` Yinghai Lu
2009-11-30  7:10                                                                   ` Kenji Kaneshige
2009-11-30  7:14                                                                     ` Yinghai Lu
2009-11-30  7:26                                                                       ` Kenji Kaneshige
2009-11-30  7:43                                                                         ` Yinghai Lu
2009-11-30  8:19                                                                         ` Yinghai Lu
2009-11-30  8:44                                                                           ` Kenji Kaneshige
2009-12-16 20:54                                                                   ` Jesse Barnes
2009-12-16 21:11                                                                     ` Alex Chiang
2009-12-16 22:21                                                                       ` Yinghai Lu
2009-12-16 22:27                                                                       ` Yinghai Lu
2009-12-16 22:44                                                                         ` Alex Chiang
     [not found]                                                                 ` <4B10D084.8070608@kerne! l.org>
     [not found]                                                                   ` <4B10D084.8070608@kernel.org>
2009-11-28  7:34                                                                     ` Yinghai Lu [this message]
2009-12-16 20:41                                                                       ` [PATCH 1/9] pci: separate pci_setup_bridge to small functions Jesse Barnes
2009-12-17 11:03                                                                         ` Rolf Eike Beer
2009-11-28  7:35                                                                     ` [PATCH 2/9] pci: add pci_bridge_release_unused_res and pci_bus_release_unused_bridge_res Yinghai Lu
2009-12-16 20:49                                                                       ` Jesse Barnes
2009-12-16 22:19                                                                         ` Yinghai Lu
2009-11-28  7:35                                                                     ` [PATCH 3/9] pci: don't dump it when bus resource flags is not used Yinghai Lu
2009-12-16 20:50                                                                       ` Jesse Barnes
2009-12-16 22:20                                                                         ` Yinghai Lu
2009-11-28  7:35                                                                     ` [PATCH 4/9] pci: add failed_list to record failed one for pci_bus_assign_resources -v2 Yinghai Lu
2009-11-28  7:35                                                                     ` [PATCH 5/9] pci: update leaf bridge res to get more big range in pci assign unssign -v2 Yinghai Lu
2009-11-30 21:55                                                                       ` [PATCH 5/9] pci: update leaf bridge res to get more big range in pci assign unssign -v3 Yinghai Lu
2009-11-28  7:36                                                                     ` [PATCH 6/9] pci: don't shrink bridge resources Yinghai Lu
2009-11-28  7:36                                                                     ` [PATCH 7/9] pci: introduce pci_assign_unassigned_bridge_resources -v2 Yinghai Lu
2009-11-28  7:36                                                                     ` [PATCH 8/9] pci: pciehp clean flow in pciehp_configure_device Yinghai Lu
2009-11-28  7:36                                                                     ` [PATCH 9/9] pci: pciehp second try to get big range for pcie devices -v2 Yinghai Lu
2009-12-01  1:19                                                                       ` [PATCH 1/2] pci: pci_bridge_release_res Yinghai Lu
2009-12-07 21:42                                                                         ` Patrick Keller
2009-12-07 21:57                                                                           ` Yinghai Lu
2009-12-01  1:21                                                                       ` [PATCH 2/2] pciehp: add support for bridge resource reallocation -v2 Yinghai Lu
2009-11-14  8:51                                                     ` [PATCH 2/2] pci: pciehp update the slot bridge res to get big range for pcie devices - v11 Yinghai Lu
2009-10-26  8:27       ` [PATCH] pci: pciehp update the slot bridge res to get big range for pcie devices - v3 Yinghai Lu
2009-10-27  8:09         ` [PATCH 1/4] pci: pciehp update the slot bridge res to get big range for pcie devices - v4 Yinghai Lu
     [not found]         ` <4AE6A9CA.4060106@kernel.org>
2009-10-27  8:09           ` [PATCH 2/4] pci: revert "get larger bridge ranges when space is available" Yinghai Lu
2009-10-27  8:10           ` [PATCH 3/4] pci: only release that resource index is less than 3 -v3 Yinghai Lu
2009-10-27  8:10           ` [PATCH 4/4] pci: remove min_size for hotplug bridge Yinghai Lu
2009-10-27  9:20             ` Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4B10D29F.2000800@kernel.org \
    --to=yinghai@kernel.org \
    --cc=achiang@hp.com \
    --cc=bjorn.helgaas@hp.com \
    --cc=ebiederm@xmission.com \
    --cc=ink@jurassic.park.msu.ru \
    --cc=jbarnes@virtuousgeek.org \
    --cc=kaneshige.kenji@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mingo@elte.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.