aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64
diff options
context:
space:
mode:
authorHanjun Guo <hanjun.guo@linaro.org>2015-03-24 10:02:40 -0400
committerWill Deacon <will.deacon@arm.com>2015-03-25 07:49:31 -0400
commita9cb97fe71d84df103994861f00112fe2cba91be (patch)
treecb484bd1afb69d8b95460acf9fc31a624e63a5cd /arch/arm64
parent6e0a0ea12962a2175a9f47621f9fe7a4c866cb12 (diff)
ARM64 / ACPI: Introduce PCI stub functions for ACPI
CONFIG_ACPI depends CONFIG_PCI on x86 and ia64, in ARM64 server world we will have PCIe in most cases, but some of them may not, make CONFIG_ACPI depend CONFIG_PCI on ARM64 will satisfy both. With that case, we need some arch dependent PCI functions to access the config space before the PCI root bridge is created, and pci_acpi_scan_root() to create the PCI root bus. So introduce some stub function here to make ACPI core compile and revisit them later when implemented on ARM64. CC: Liviu Dudau <Liviu.Dudau@arm.com> CC: Catalin Marinas <catalin.marinas@arm.com> CC: Will Deacon <will.deacon@arm.com> Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com> Tested-by: Yijing Wang <wangyijing@huawei.com> Tested-by: Mark Langsdorf <mlangsdo@redhat.com> Tested-by: Jon Masters <jcm@redhat.com> Tested-by: Timur Tabi <timur@codeaurora.org> Tested-by: Robert Richter <rrichter@cavium.com> Acked-by: Robert Richter <rrichter@cavium.com> Reviewed-by: Grant Likely <grant.likely@linaro.org> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64')
-rw-r--r--arch/arm64/include/asm/pci.h6
-rw-r--r--arch/arm64/kernel/pci.c25
2 files changed, 31 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/pci.h b/arch/arm64/include/asm/pci.h
index 872ba939fcb2..b008a72f8bc0 100644
--- a/arch/arm64/include/asm/pci.h
+++ b/arch/arm64/include/asm/pci.h
@@ -27,6 +27,12 @@
27extern int isa_dma_bridge_buggy; 27extern int isa_dma_bridge_buggy;
28 28
29#ifdef CONFIG_PCI 29#ifdef CONFIG_PCI
30static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
31{
32 /* no legacy IRQ on arm64 */
33 return -ENODEV;
34}
35
30static inline int pci_proc_domain(struct pci_bus *bus) 36static inline int pci_proc_domain(struct pci_bus *bus)
31{ 37{
32 return 1; 38 return 1;
diff --git a/arch/arm64/kernel/pci.c b/arch/arm64/kernel/pci.c
index 6f93c24ca801..4095379dc069 100644
--- a/arch/arm64/kernel/pci.c
+++ b/arch/arm64/kernel/pci.c
@@ -10,6 +10,7 @@
10 * 10 *
11 */ 11 */
12 12
13#include <linux/acpi.h>
13#include <linux/init.h> 14#include <linux/init.h>
14#include <linux/io.h> 15#include <linux/io.h>
15#include <linux/kernel.h> 16#include <linux/kernel.h>
@@ -46,3 +47,27 @@ int pcibios_add_device(struct pci_dev *dev)
46 47
47 return 0; 48 return 0;
48} 49}
50
51/*
52 * raw_pci_read/write - Platform-specific PCI config space access.
53 */
54int raw_pci_read(unsigned int domain, unsigned int bus,
55 unsigned int devfn, int reg, int len, u32 *val)
56{
57 return -ENXIO;
58}
59
60int raw_pci_write(unsigned int domain, unsigned int bus,
61 unsigned int devfn, int reg, int len, u32 val)
62{
63 return -ENXIO;
64}
65
66#ifdef CONFIG_ACPI
67/* Root bridge scanning */
68struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
69{
70 /* TODO: Should be revisited when implementing PCI on ACPI */
71 return NULL;
72}
73#endif