|
@@ -1620,11 +1620,9 @@ static int pnv_pci_ioda_dma_set_mask(struct pci_dev *pdev, u64 dma_mask)
|
|
if (bypass) {
|
|
if (bypass) {
|
|
dev_info(&pdev->dev, "Using 64-bit DMA iommu bypass\n");
|
|
dev_info(&pdev->dev, "Using 64-bit DMA iommu bypass\n");
|
|
set_dma_ops(&pdev->dev, &dma_direct_ops);
|
|
set_dma_ops(&pdev->dev, &dma_direct_ops);
|
|
- set_dma_offset(&pdev->dev, pe->tce_bypass_base);
|
|
|
|
} else {
|
|
} else {
|
|
dev_info(&pdev->dev, "Using 32-bit DMA via iommu\n");
|
|
dev_info(&pdev->dev, "Using 32-bit DMA via iommu\n");
|
|
set_dma_ops(&pdev->dev, &dma_iommu_ops);
|
|
set_dma_ops(&pdev->dev, &dma_iommu_ops);
|
|
- set_iommu_table_base(&pdev->dev, pe->table_group.tables[0]);
|
|
|
|
}
|
|
}
|
|
*pdev->dev.dma_mask = dma_mask;
|
|
*pdev->dev.dma_mask = dma_mask;
|
|
return 0;
|
|
return 0;
|
|
@@ -1659,6 +1657,7 @@ static void pnv_ioda_setup_bus_dma(struct pnv_ioda_pe *pe,
|
|
|
|
|
|
list_for_each_entry(dev, &bus->devices, bus_list) {
|
|
list_for_each_entry(dev, &bus->devices, bus_list) {
|
|
set_iommu_table_base(&dev->dev, pe->table_group.tables[0]);
|
|
set_iommu_table_base(&dev->dev, pe->table_group.tables[0]);
|
|
|
|
+ set_dma_offset(&dev->dev, pe->tce_bypass_base);
|
|
iommu_add_device(&dev->dev);
|
|
iommu_add_device(&dev->dev);
|
|
|
|
|
|
if ((pe->flags & PNV_IODA_PE_BUS_ALL) && dev->subordinate)
|
|
if ((pe->flags & PNV_IODA_PE_BUS_ALL) && dev->subordinate)
|