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