xref: /linux/arch/arm64/kernel/pci.c (revision c532de5a67a70f8533d495f8f2aaa9a0491c3ad0)
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * Code borrowed from powerpc/kernel/pci-common.c
4  *
5  * Copyright (C) 2003 Anton Blanchard <anton@au.ibm.com>, IBM
6  * Copyright (C) 2014 ARM Ltd.
7  */
8 
9 #include <linux/pci.h>
10 
11 /*
12  * raw_pci_read/write - Platform-specific PCI config space access.
13  */
14 int raw_pci_read(unsigned int domain, unsigned int bus,
15 		  unsigned int devfn, int reg, int len, u32 *val)
16 {
17 	struct pci_bus *b = pci_find_bus(domain, bus);
18 
19 	if (!b)
20 		return PCIBIOS_DEVICE_NOT_FOUND;
21 	return b->ops->read(b, devfn, reg, len, val);
22 }
23 
24 int raw_pci_write(unsigned int domain, unsigned int bus,
25 		unsigned int devfn, int reg, int len, u32 val)
26 {
27 	struct pci_bus *b = pci_find_bus(domain, bus);
28 
29 	if (!b)
30 		return PCIBIOS_DEVICE_NOT_FOUND;
31 	return b->ops->write(b, devfn, reg, len, val);
32 }
33 
34 #ifdef CONFIG_NUMA
35 
36 int pcibus_to_node(struct pci_bus *bus)
37 {
38 	return dev_to_node(&bus->dev);
39 }
40 EXPORT_SYMBOL(pcibus_to_node);
41 
42 #endif
43