mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Paul Burton <paul.burton@imgtec.com>
To: <linux-mips@linux-mips.org>, Ralf Baechle <ralf@linux-mips.org>
Cc: Paul Burton <paul.burton@imgtec.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	<linux-kernel@vger.kernel.org>,
	Sergey Ryazanov <ryazanov.s.a@gmail.com>,
	Yinghai Lu <yinghai@kernel.org>,
	Will Deacon <will.deacon@arm.com>
Subject: [PATCH v2 01/26] MIPS: PCI: Support for CONFIG_PCI_DOMAINS_GENERIC
Date: Tue, 30 Aug 2016 18:29:04 +0100	[thread overview]
Message-ID: <20160830172929.16948-2-paul.burton@imgtec.com> (raw)
In-Reply-To: <20160830172929.16948-1-paul.burton@imgtec.com>

Introduce support for CONFIG_PCI_DOMAINS_GENERIC, allowing for platforms
to make use of generic PCI domains instead of the MIPS-specific
implementation. The set_pci_need_domain_info function is introduced to
abstract away the removed need_domain_info field in struct
pci_controller, and pcibios_scanbus is adjusted to use the pci_domain_nr
accessor instead of directly accessing the index field.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
---

Changes in v2: None

 arch/mips/Kconfig           |  3 +++
 arch/mips/include/asm/pci.h | 21 ++++++++++++++++++++-
 arch/mips/pci/pci.c         |  4 ++--
 3 files changed, 25 insertions(+), 3 deletions(-)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 45bbddf..88c0c0d 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -2980,6 +2980,9 @@ config HT_PCI
 config PCI_DOMAINS
 	bool
 
+config PCI_DOMAINS_GENERIC
+	bool
+
 source "drivers/pci/Kconfig"
 
 #
diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h
index 547e113..0564692 100644
--- a/arch/mips/include/asm/pci.h
+++ b/arch/mips/include/asm/pci.h
@@ -39,10 +39,12 @@ struct pci_controller {
 	struct resource *busn_resource;
 	unsigned long busn_offset;
 
+#ifndef CONFIG_PCI_DOMAINS_GENERIC
 	unsigned int index;
 	/* For compatibility with current (as of July 2003) pciutils
 	   and XFree86. Eventually will be removed. */
 	unsigned int need_domain_info;
+#endif
 
 	/* Optional access methods for reading/writing the bus number
 	   of the PCI controller */
@@ -101,7 +103,18 @@ struct pci_dev;
  */
 #define PCI_DMA_BUS_IS_PHYS     (1)
 
-#ifdef CONFIG_PCI_DOMAINS
+#ifdef CONFIG_PCI_DOMAINS_GENERIC
+static inline int pci_proc_domain(struct pci_bus *bus)
+{
+	return pci_domain_nr(bus);
+}
+
+static inline void set_pci_need_domain_info(struct pci_controller *hose,
+					    int need_domain_info)
+{
+	/* nothing to do */
+}
+#elif defined(CONFIG_PCI_DOMAINS)
 #define pci_domain_nr(bus) ((struct pci_controller *)(bus)->sysdata)->index
 
 static inline int pci_proc_domain(struct pci_bus *bus)
@@ -109,6 +122,12 @@ static inline int pci_proc_domain(struct pci_bus *bus)
 	struct pci_controller *hose = bus->sysdata;
 	return hose->need_domain_info;
 }
+
+static inline void set_pci_need_domain_info(struct pci_controller *hose,
+					    int need_domain_info)
+{
+	hose->need_domain_info = need_domain_info;
+}
 #endif /* CONFIG_PCI_DOMAINS */
 
 #endif /* __KERNEL__ */
diff --git a/arch/mips/pci/pci.c b/arch/mips/pci/pci.c
index 644ae96..5207c04 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -95,8 +95,8 @@ static void pcibios_scanbus(struct pci_controller *hose)
 				&resources);
 	hose->bus = bus;
 
-	need_domain_info = need_domain_info || hose->index;
-	hose->need_domain_info = need_domain_info;
+	need_domain_info = need_domain_info || pci_domain_nr(bus);
+	set_pci_need_domain_info(hose, need_domain_info);
 
 	if (!bus) {
 		pci_free_resource_list(&resources);
-- 
2.9.3

  reply	other threads:[~2016-08-30 17:30 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-30 17:29 [PATCH v2 00/26] MIPS generic kernels, SEAD-3 & Boston support Paul Burton
2016-08-30 17:29 ` Paul Burton [this message]
2016-08-30 17:29 ` [PATCH v2 02/26] MIPS: PCI: Make pcibios_set_cache_line_size an initcall Paul Burton
2016-08-30 17:29 ` [PATCH v2 03/26] MIPS: PCI: Inline pcibios_assign_all_busses Paul Burton
2016-08-30 17:29 ` [PATCH v2 04/26] MIPS: PCI: Split pci.c into pci.c & pci-legacy.c Paul Burton
2016-08-30 17:29 ` [PATCH v2 05/26] MIPS: PCI: Introduce CONFIG_PCI_DRIVERS_LEGACY Paul Burton
2016-08-30 17:29 ` [PATCH v2 06/26] MIPS: PCI: Support generic drivers Paul Burton
2016-08-30 17:29 ` [PATCH v2 07/26] MIPS: Sanitise coherentio semantics Paul Burton
2016-08-30 17:29 ` [PATCH v2 08/26] MIPS: dma-default: Don't check hw_coherentio if device is non-coherent Paul Burton
2016-08-30 17:29 ` [PATCH v2 09/26] MIPS: Support per-device DMA coherence Paul Burton
2016-08-30 17:29 ` [PATCH v2 10/26] MIPS: Print CM error reports upon bus errors Paul Burton
2016-08-30 17:29 ` [PATCH v2 11/26] dt-bindings: Document mti,mips-cpc binding Paul Burton
2016-08-30 17:29 ` [PATCH v2 12/26] MIPS: CPC: Provide a default mips_cpc_default_phys_base Paul Burton
2016-08-31 10:21   ` Sergei Shtylyov
2016-08-30 17:29 ` [PATCH v2 13/26] dt-bindings: Document mti,mips-cdmm binding Paul Burton
2016-08-30 17:29 ` [PATCH v2 14/26] MIPS: CDMM: Allow CDMM base address to be specified via DT Paul Burton
2016-08-30 17:29 ` [PATCH v2 15/26] irqchip: mips-cpu: Replace magic 0x100 with IE_SW0 Paul Burton
2016-08-30 17:29 ` [PATCH v2 16/26] irqchip: mips-cpu: Prepare for non-legacy IRQ domains Paul Burton
2016-08-30 17:29 ` [PATCH v2 17/26] irqchip: mips-cpu: Introduce IPI IRQ domain support Paul Burton
2016-09-01 19:46   ` Jason Cooper
2016-08-30 17:29 ` [PATCH v2 18/26] MIPS: smp-mt: Use CPU interrupt controller " Paul Burton
2016-08-30 17:29 ` [PATCH v2 19/26] MIPS: Stengthen IPI IRQ domain sanity check Paul Burton
2016-08-30 17:29 ` [PATCH v2 20/26] MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0 Paul Burton
2016-08-30 17:29 ` [PATCH v2 21/26] MIPS: Support generating Flattened Image Trees (.itb) Paul Burton
2016-08-30 17:29 ` [PATCH v2 22/26] MIPS: generic: Introduce generic DT-based board support Paul Burton
2016-08-30 17:29 ` [PATCH v2 23/26] MIPS: generic: Convert SEAD-3 to a generic board Paul Burton
2016-08-30 17:29 ` [PATCH v2 24/26] dt-bindings: Document img,boston-clock binding Paul Burton
2016-08-30 17:29 ` [PATCH v2 25/26] clk: boston: Add a driver for MIPS Boston board clocks Paul Burton
2016-08-30 17:29 ` [PATCH v2 26/26] MIPS: generic: Support MIPS Boston development boards Paul Burton

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=20160830172929.16948-2-paul.burton@imgtec.com \
    --to=paul.burton@imgtec.com \
    --cc=bhelgaas@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=ralf@linux-mips.org \
    --cc=ryazanov.s.a@gmail.com \
    --cc=will.deacon@arm.com \
    --cc=yinghai@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®