Thread (27 messages) 27 messages, 5 authors, 2015-02-18

[PATCH 6/6] pci, acpi: Share ACPI PCI config space accessors.

From: Tomasz Nowicki <hidden>
Date: 2014-11-19 16:24:30
Also in: linux-acpi, linux-pci, lkml

On 19.11.2014 17:19, Arnd Bergmann wrote:
On Wednesday 19 November 2014 17:04:51 Tomasz Nowicki wrote:
quoted
+/*
+ * raw_pci_read/write - ACPI PCI config space accessors.
+ *
+ * ACPI spec defines MMCFG as the way we can access PCI config space,
+ * so let MMCFG be default (__weak).
+ *
+ * If platform needs more fancy stuff, should provides its own implementation.
+ */
+int __weak raw_pci_read(unsigned int domain, unsigned int bus,
+                       unsigned int devfn, int reg, int len, u32 *val)
+{
+       return pci_mmcfg_read(domain, bus, devfn, reg, len, val);
+}
+
+int __weak raw_pci_write(unsigned int domain, unsigned int bus,
+                        unsigned int devfn, int reg, int len, u32 val)
+{
+       return pci_mmcfg_write(domain, bus, devfn, reg, len, val);
+}
+
I think it would be better to avoid __weak functions here, as they tend
to be hard to follow when trying to understand the code.

How about using a Kconfig symbol like this:

#ifdef CONFIG_ARCH_RAW_PCI_READWRITE
int raw_pci_read(unsigned int domain, unsigned int bus, unsigned int devfn,
                  int reg, int len, u32 *val);
int raw_pci_write(unsigned int domain, unsigned int bus, unsigned int devfn,
                   int reg, int len, u32 val);
#else
static inline int raw_pci_read(unsigned int domain, unsigned int bus,
	                       unsigned int devfn, int reg, int len, u32 *val)
{
	return pci_mmcfg_read(domain, bus, devfn, reg, len, val);
}

static inline int raw_pci_write(unsigned int domain, unsigned int bus,
              		                unsigned int devfn, int reg, int len, u32 val)
{
        return pci_mmcfg_write(domain, bus, devfn, reg, len, val);
}
#endif

Same thing for the weak symbols in patch 5.
It makes sense to me, thanks!

Tomasz
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help