public inbox for linuxppc-dev@ozlabs.org 
 help / color / mirror / Atom feed
From: Yinghai Lu <yinghai@kernel•org>
To: Bjorn Helgaas <bhelgaas@google•com>,
	Jiang Liu <jiang.liu@huawei•com>,
	"Rafael J. Wysocki" <rjw@sisk•pl>,
	Taku Izumi <izumi.taku@jp•fujitsu.com>,
	Toshi Kani <toshi.kani@hp•com>
Cc: linux-ia64@vger•kernel.org,
	Mauro Carvalho Chehab <mchehab@redhat•com>,
	David Airlie <airlied@linux•ie>,
	linux-pci@vger•kernel.org, dri-devel@lists•freedesktop.org,
	David Howells <dhowells@redhat•com>,
	Paul Mackerras <paulus@samba•org>,
	sparclinux@vger•kernel.org, linux-am33-list@redhat•com,
	Russell King <linux@arm•linux.org.uk>,
	x86@kernel•org, linux-altix@sgi•com,
	Doug Thompson <dougthompson@xmission•com>,
	Matt Turner <mattst88@gmail•com>,
	linux-edac@vger•kernel.org, Fenghua Yu <fenghua.yu@intel•com>,
	microblaze-uclinux@itee•uq.edu.au,
	Ivan Kokshaysky <ink@jurassic•park.msu.ru>,
	Yinghai Lu <yinghai@kernel•org>,
	linux-arm-kernel@lists•infradead.org,
	Richard Henderson <rth@twiddle•net>,
	Michal Simek <monstr@monstr•eu>, Tony Luck <tony.luck@intel•com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation•org>,
	linux-alpha@vger•kernel.org,
	Koichi Yasutake <yasutake.koichi@jp•panasonic.com>,
	linuxppc-dev@lists•ozlabs.org,
	"David S. Miller" <davem@davemloft•net>
Subject: [PATCH v3 02/22] PCI: Add dummy bus_type for pci_host_bridge
Date: Sun, 27 Jan 2013 11:23:29 -0800	[thread overview]
Message-ID: <1359314629-18651-3-git-send-email-yinghai@kernel.org> (raw)
In-Reply-To: <1359314629-18651-1-git-send-email-yinghai@kernel.org>

Need to use it for looping registered host_bridge, and kill
pci_root_buses list.

Signed-off-by: Yinghai Lu <yinghai@kernel•org>
Cc: Mauro Carvalho Chehab <mchehab@redhat•com>
Cc: Doug Thompson <dougthompson@xmission•com>
Cc: linux-edac@vger•kernel.org
Cc: x86@kernel•org
Cc: David Airlie <airlied@linux•ie>
Cc: dri-devel@lists•freedesktop.org
Cc: "David S. Miller" <davem@davemloft•net>
Cc: sparclinux@vger•kernel.org
Cc: Tony Luck <tony.luck@intel•com>
Cc: Fenghua Yu <fenghua.yu@intel•com>
Cc: linux-ia64@vger•kernel.org
Cc: linux-altix@sgi•com
Cc: Richard Henderson <rth@twiddle•net>
Cc: Ivan Kokshaysky <ink@jurassic•park.msu.ru>
Cc: Matt Turner <mattst88@gmail•com>
Cc: linux-alpha@vger•kernel.org
Cc: Russell King <linux@arm•linux.org.uk>
Cc: linux-arm-kernel@lists•infradead.org
Cc: David Howells <dhowells@redhat•com>
Cc: Michal Simek <monstr@monstr•eu>
Cc: microblaze-uclinux@itee•uq.edu.au
Cc: Koichi Yasutake <yasutake.koichi@jp•panasonic.com>
Cc: linux-am33-list@redhat•com
Cc: Benjamin Herrenschmidt <benh@kernel•crashing.org>
Cc: Paul Mackerras <paulus@samba•org>
Cc: linuxppc-dev@lists•ozlabs.org
---
 drivers/pci/pci-driver.c |   11 ++++++++++-
 drivers/pci/probe.c      |    1 +
 include/linux/pci.h      |    2 ++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
index acdcc3c..9fb004b 100644
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -1278,11 +1278,20 @@ struct bus_type pci_bus_type = {
 	.pm		= PCI_PM_OPS_PTR,
 };
 
+struct bus_type pci_host_bridge_bus_type = {
+	.name           = "pci_host_bridge",
+};
+
+static int __init pci_host_bridge_driver_init(void)
+{
+	return bus_register(&pci_host_bridge_bus_type);
+}
+postcore_initcall(pci_host_bridge_driver_init);
+
 static int __init pci_driver_init(void)
 {
 	return bus_register(&pci_bus_type);
 }
-
 postcore_initcall(pci_driver_init);
 
 EXPORT_SYMBOL_GPL(pci_add_dynid);
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index ef50154..04ecf0d 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -1692,6 +1692,7 @@ struct pci_bus *pci_create_root_bus(struct device *parent, int bus,
 		goto err_out;
 
 	bridge->dev.parent = parent;
+	bridge->dev.bus = &pci_host_bridge_bus_type;
 	bridge->dev.release = pci_release_host_bridge_dev;
 	dev_set_name(&bridge->dev, "pci%04x:%02x", pci_domain_nr(b), bus);
 	error = pcibios_root_bridge_prepare(bridge);
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 056d3d6..9da06ec 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -669,6 +669,7 @@ enum pcie_bus_config_types {
 
 extern enum pcie_bus_config_types pcie_bus_config;
 
+extern struct bus_type pci_host_bridge_bus_type;
 extern struct bus_type pci_bus_type;
 
 /* Do NOT directly access these two variables, unless you are arch specific pci
@@ -740,6 +741,7 @@ void pci_stop_root_bus(struct pci_bus *bus);
 void pci_remove_root_bus(struct pci_bus *bus);
 void pci_setup_cardbus(struct pci_bus *bus);
 extern void pci_sort_breadthfirst(void);
+#define dev_is_pci_host_bridge(d) ((d)->bus == &pci_host_bridge_bus_type)
 #define dev_is_pci(d) ((d)->bus == &pci_bus_type)
 #define dev_is_pf(d) ((dev_is_pci(d) ? to_pci_dev(d)->is_physfn : false))
 #define dev_num_vf(d) ((dev_is_pci(d) ? pci_num_vf(to_pci_dev(d)) : 0))
-- 
1.7.10.4

  reply	other threads:[~2013-01-27 19:24 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAE9FiQXHG01NjnYNDbC-KEpbcvY-q4pBe97CxTOGS7W4vZQBYQ@mail.gmail.com>
2013-01-27 19:23 ` [PATCH v3 00/22] PCI: Iterate pci host bridge instead of pci root bus Yinghai Lu
2013-01-27 19:23   ` Yinghai Lu [this message]
2013-01-27 19:23   ` [PATCH v3 05/22] PCI: Add for_each_pci_host_bridge() and pci_get_next_host_bridge Yinghai Lu
2013-01-27 19:23   ` [PATCH v3 20/22] PCI, powerpc: Kill pci_root_buses in resources reservations Yinghai Lu
2013-01-28  3:48     ` Yijing Wang
2013-01-28  5:23       ` Yinghai Lu
2013-01-27 19:23   ` [PATCH v3 21/22] PCI: Kill pci_find_next_bus Yinghai Lu
2013-01-27 19:23   ` [PATCH v3 22/22] PCI: Kill pci_root_buses Yinghai Lu
2013-02-02 21:50   ` [PATCH v3 00/22] PCI: Iterate pci host bridge instead of pci root bus Bjorn Helgaas

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=1359314629-18651-3-git-send-email-yinghai@kernel.org \
    --to=yinghai@kernel$(echo .)org \
    --cc=airlied@linux$(echo .)ie \
    --cc=bhelgaas@google$(echo .)com \
    --cc=davem@davemloft$(echo .)net \
    --cc=dhowells@redhat$(echo .)com \
    --cc=dougthompson@xmission$(echo .)com \
    --cc=dri-devel@lists$(echo .)freedesktop.org \
    --cc=fenghua.yu@intel$(echo .)com \
    --cc=gregkh@linuxfoundation$(echo .)org \
    --cc=ink@jurassic$(echo .)park.msu.ru \
    --cc=izumi.taku@jp$(echo .)fujitsu.com \
    --cc=jiang.liu@huawei$(echo .)com \
    --cc=linux-alpha@vger$(echo .)kernel.org \
    --cc=linux-altix@sgi$(echo .)com \
    --cc=linux-am33-list@redhat$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    --cc=linux-edac@vger$(echo .)kernel.org \
    --cc=linux-ia64@vger$(echo .)kernel.org \
    --cc=linux-pci@vger$(echo .)kernel.org \
    --cc=linux@arm$(echo .)linux.org.uk \
    --cc=linuxppc-dev@lists$(echo .)ozlabs.org \
    --cc=mattst88@gmail$(echo .)com \
    --cc=mchehab@redhat$(echo .)com \
    --cc=microblaze-uclinux@itee$(echo .)uq.edu.au \
    --cc=monstr@monstr$(echo .)eu \
    --cc=paulus@samba$(echo .)org \
    --cc=rjw@sisk$(echo .)pl \
    --cc=rth@twiddle$(echo .)net \
    --cc=sparclinux@vger$(echo .)kernel.org \
    --cc=tony.luck@intel$(echo .)com \
    --cc=toshi.kani@hp$(echo .)com \
    --cc=x86@kernel$(echo .)org \
    --cc=yasutake.koichi@jp$(echo .)panasonic.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox