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
next prev parent 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