blob: 441eb9383b20fd8d24d7e9ce4e49751ec67ac7c6 [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/*
2 * This file is subject to the terms and conditions of the GNU General Public
3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details.
5 *
6 * Copyright (C) 2003 Christoph Hellwig (hch@lst.de)
7 * Copyright (C) 1999, 2000, 04 Ralf Baechle (ralf@linux-mips.org)
8 * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
9 */
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000010#include <asm/pci/bridge.h>
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000011
12dma_addr_t __phys_to_dma(struct device *dev, phys_addr_t paddr)
13{
14 struct pci_dev *pdev = to_pci_dev(dev);
15 struct bridge_controller *bc = BRIDGE_CONTROLLER(pdev->bus);
16
17 return bc->baddr + paddr;
18}
19
20phys_addr_t __dma_to_phys(struct device *dev, dma_addr_t dma_addr)
21{
22 return dma_addr & ~(0xffUL << 56);
23}
24
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000025#ifdef CONFIG_NUMA
26int pcibus_to_node(struct pci_bus *bus)
27{
28 struct bridge_controller *bc = BRIDGE_CONTROLLER(bus);
29
30 return bc->nasid;
31}
32EXPORT_SYMBOL(pcibus_to_node);
33#endif /* CONFIG_NUMA */