Thread (62 messages) 62 messages, 9 authors, 2016-04-05

[PATCH V5 02/15] acpi, pci, mcfg: Provide default RAW ACPI PCI config space accessors.

From: Lorenzo Pieralisi <hidden>
Date: 2016-02-17 12:37:35
Also in: linux-acpi, linux-pci, lkml

On Tue, Feb 16, 2016 at 02:53:32PM +0100, Tomasz Nowicki wrote:
Lets keep RAW ACPI PCI config space accessors empty by default,
since we are note sure if they are necessary accross all archs.
Once we sort this out, we can provide generic version or let
architectures to overwrite, like now x86.
"ACPICA code requires raw PCI bus accessors in order to give AML
access to PCI_Config regions in platforms where they are actually
used. The raw PCI bus accessors implementation is arch-dependent,
therefore this patch adds a weak generic implementation (for now
empty but can be generalized if common functionality is found among
arches) allowing arches where PCI_Config regions are currently required
to override it (eg x86) as needed and providing at the same time
default stubs for arches that do not require them".

?
quoted hunk ↗ jump to hunk
Suggested-by: Lorenzo Pieralisi <redacted>
Signed-off-by: Tomasz Nowicki <redacted>
Tested-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
Tested-by: Jeremy Linton <redacted>
Tested-by: Duc Dang <redacted>
Tested-by: Dongdong Liu <redacted>
Tested-by: Hanjun Guo <redacted>
Tested-by: Graeme Gregory <redacted>
Tested-by: Sinan Kaya <redacted>
---
 drivers/acpi/pci_mcfg.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
diff --git a/drivers/acpi/pci_mcfg.c b/drivers/acpi/pci_mcfg.c
index ea84365..0467b00 100644
--- a/drivers/acpi/pci_mcfg.c
+++ b/drivers/acpi/pci_mcfg.c
@@ -21,6 +21,26 @@
 static DEFINE_MUTEX(pci_mmcfg_lock);
 LIST_HEAD(pci_mmcfg_list);
 
+/*
+ * raw_pci_read/write - raw ACPI PCI config space accessors.
+ *
+ * By defauly (__weak) these accessors are empty and should be overwritten
s/defauly/default
+ * by architectures which support operations on ACPI PCI_Config regions,
+ * see osl.c file.
Add the path or remove the file reference.
+ */
+
+int __weak raw_pci_read(unsigned int domain, unsigned int bus,
+			unsigned int devfn, int reg, int len, u32 *val)
+{
+	return PCIBIOS_DEVICE_NOT_FOUND;
+}
+
+int __weak raw_pci_write(unsigned int domain, unsigned int bus,
+			 unsigned int devfn, int reg, int len, u32 val)
+{
+	return PCIBIOS_DEVICE_NOT_FOUND;
+}
+
 static void list_add_sorted(struct pci_mmcfg_region *new)
 {
 	struct pci_mmcfg_region *cfg;
Note: this patch is not strictly required, but it is nice because
it removes the raw/dumb/empty accessors from ARM64 code (where they do not
belong), so:

Reviewed-by: Lorenzo Pieralisi <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help