powerpc/fsl-pci: enable SWIOTLB in function setup_pci_atmu
authorKevin Hao <haokexin@gmail.com>
Tue, 21 May 2013 12:05:00 +0000 (20:05 +0800)
committerScott Wood <scottwood@freescale.com>
Wed, 7 Aug 2013 23:38:08 +0000 (18:38 -0500)
This function contains all the stuff we need to check if SWIOTLB
should be enabled or not. So it is more convenient to enable
the SWIOTLB here than later.

Signed-off-by: Kevin Hao <haokexin@gmail.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>
arch/powerpc/sysdev/fsl_pci.c

index 57e9aca534263a885f18c8941c66017c265d9d39..f32772063d136af1d79fade5c7443a6846a631b2 100644 (file)
@@ -377,7 +377,9 @@ static void setup_pci_atmu(struct pci_controller *hose)
        }
 
        if (hose->dma_window_size < mem) {
-#ifndef CONFIG_SWIOTLB
+#ifdef CONFIG_SWIOTLB
+               ppc_swiotlb_enable = 1;
+#else
                pr_err("%s: ERROR: Memory size exceeds PCI ATMU ability to "
                        "map - enable CONFIG_SWIOTLB to avoid dma errors.\n",
                         name);
@@ -1086,28 +1088,10 @@ static int fsl_pci_probe(struct platform_device *pdev)
 {
        int ret;
        struct device_node *node;
-#ifdef CONFIG_SWIOTLB
-       struct pci_controller *hose;
-#endif
 
        node = pdev->dev.of_node;
        ret = fsl_add_bridge(pdev, fsl_pci_primary == node);
 
-#ifdef CONFIG_SWIOTLB
-       if (ret == 0) {
-               hose = pci_find_hose_for_OF_device(pdev->dev.of_node);
-
-               /*
-                * if we couldn't map all of DRAM via the dma windows
-                * we need SWIOTLB to handle buffers located outside of
-                * dma capable memory region
-                */
-               if (memblock_end_of_DRAM() - 1 > hose->dma_window_base_cur +
-                               hose->dma_window_size)
-                       ppc_swiotlb_enable = 1;
-       }
-#endif
-
        mpc85xx_pci_err_probe(pdev);
 
        return 0;