drm/radeon: fix r600 pci mapping calls.
authorDave Airlie <airlied@redhat.com>
Mon, 9 Mar 2009 02:17:08 +0000 (12:17 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 13 Mar 2009 04:24:18 +0000 (14:24 +1000)
This realigns the r600 pci mapping calls with the ati pcigart ones,
fixing the direction and using the correct interface.

Suggested by Jerome Glisse.

Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/r600_cp.c

index f915f11..be2bba6 100644 (file)
@@ -132,8 +132,8 @@ void r600_page_table_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info
                for (i = 0; i < pages; i++) {
                        if (!entry->busaddr[i])
                                break;
-                       pci_unmap_single(dev->pdev, entry->busaddr[i],
-                                        PAGE_SIZE, PCI_DMA_TODEVICE);
+                       pci_unmap_page(dev->pdev, entry->busaddr[i],
+                                      PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
                }
                if (gart_info->gart_table_location == DRM_ATI_GART_MAIN)
                        gart_info->bus_addr = 0;
@@ -165,10 +165,10 @@ int r600_page_table_init(struct drm_device *dev)
 
        gart_idx = 0;
        for (i = 0; i < pages; i++) {
-               entry->busaddr[i] = pci_map_single(dev->pdev,
-                                                  page_address(entry->
-                                                               pagelist[i]),
-                                                  PAGE_SIZE, PCI_DMA_TODEVICE);
+               entry->busaddr[i] = pci_map_page(dev->pdev,
+                                                entry->pagelist[i], 0,
+                                                PAGE_SIZE,
+                                                PCI_DMA_BIDIRECTIONAL);
                if (entry->busaddr[i] == 0) {
                        DRM_ERROR("unable to map PCIGART pages!\n");
                        r600_page_table_cleanup(dev, gart_info);