| /* pci_sun4v.c: SUN4V specific PCI controller support. |
| * |
| * Copyright (C) 2006 David S. Miller (davem@davemloft.net) |
| */ |
| |
| #include <linux/kernel.h> |
| #include <linux/types.h> |
| #include <linux/pci.h> |
| #include <linux/init.h> |
| #include <linux/slab.h> |
| #include <linux/interrupt.h> |
| |
| #include <asm/pbm.h> |
| #include <asm/iommu.h> |
| #include <asm/irq.h> |
| #include <asm/upa.h> |
| #include <asm/pstate.h> |
| #include <asm/oplib.h> |
| #include <asm/hypervisor.h> |
| |
| #include "pci_impl.h" |
| #include "iommu_common.h" |
| |
| static void *pci_4v_alloc_consistent(struct pci_dev *pdev, size_t size, dma_addr_t *dma_addrp) |
| { |
| return NULL; |
| } |
| |
| static void pci_4v_free_consistent(struct pci_dev *pdev, size_t size, void *cpu, dma_addr_t dvma) |
| { |
| } |
| |
| static dma_addr_t pci_4v_map_single(struct pci_dev *pdev, void *ptr, size_t sz, int direction) |
| { |
| return 0; |
| } |
| |
| static void pci_4v_unmap_single(struct pci_dev *pdev, dma_addr_t bus_addr, size_t sz, int direction) |
| { |
| } |
| |
| static int pci_4v_map_sg(struct pci_dev *pdev, struct scatterlist *sglist, int nelems, int direction) |
| { |
| return nelems; |
| } |
| |
| static void pci_4v_unmap_sg(struct pci_dev *pdev, struct scatterlist *sglist, int nelems, int direction) |
| { |
| } |
| |
| static void pci_4v_dma_sync_single_for_cpu(struct pci_dev *pdev, dma_addr_t bus_addr, size_t sz, int direction) |
| { |
| } |
| |
| static void pci_4v_dma_sync_sg_for_cpu(struct pci_dev *pdev, struct scatterlist *sglist, int nelems, int direction) |
| { |
| } |
| |
| struct pci_iommu_ops pci_sun4v_iommu_ops = { |
| .alloc_consistent = pci_4v_alloc_consistent, |
| .free_consistent = pci_4v_free_consistent, |
| .map_single = pci_4v_map_single, |
| .unmap_single = pci_4v_unmap_single, |
| .map_sg = pci_4v_map_sg, |
| .unmap_sg = pci_4v_unmap_sg, |
| .dma_sync_single_for_cpu = pci_4v_dma_sync_single_for_cpu, |
| .dma_sync_sg_for_cpu = pci_4v_dma_sync_sg_for_cpu, |
| }; |
| |
| void sun4v_pci_init(int node, char *model_name) |
| { |
| prom_printf("sun4v_pci_init: Implement me.\n"); |
| prom_halt(); |
| } |