Author: rnoland
Date: Thu Apr 22 18:47:30 2010
New Revision: 207069
URL: http://svn.freebsd.org/changeset/base/207069
Log:
  Now that we properly set write-combining on the pages that back the GART,
  disable snooping on radeons.
  
  MFC after:    2 weeks

Modified:
  head/sys/dev/drm/ati_pcigart.c
  head/sys/dev/drm/r600_cp.c

Modified: head/sys/dev/drm/ati_pcigart.c
==============================================================================
--- head/sys/dev/drm/ati_pcigart.c      Thu Apr 22 18:47:23 2010        
(r207068)
+++ head/sys/dev/drm/ati_pcigart.c      Thu Apr 22 18:47:30 2010        
(r207069)
@@ -39,8 +39,9 @@ __FBSDID("$FreeBSD$");
 #define ATI_PCIGART_PAGE_SIZE          4096    /* PCI GART page size */
 #define ATI_PCIGART_PAGE_MASK          (~(ATI_PCIGART_PAGE_SIZE-1))
 
-#define ATI_PCIE_WRITE 0x4
-#define ATI_PCIE_READ 0x8
+#define ATI_GART_NOSNOOP       0x1
+#define ATI_GART_WRITE         0x4
+#define ATI_GART_READ          0x8
 
 static void
 drm_ati_alloc_pcigart_table_cb(void *arg, bus_dma_segment_t *segs,
@@ -196,13 +197,15 @@ drm_ati_pcigart_init(struct drm_device *
                        case DRM_ATI_GART_IGP:
                                page_base |=
                                    (upper_32_bits(entry_addr) & 0xff) << 4;
-                               page_base |= 0xc;
+                               page_base |= ATI_GART_READ | ATI_GART_WRITE;
+                               page_base |= ATI_GART_NOSNOOP;
                                break;
                        case DRM_ATI_GART_PCIE:
                                page_base >>= 8;
                                page_base |=
                                    (upper_32_bits(entry_addr) & 0xff) << 24;
-                               page_base |= ATI_PCIE_READ | ATI_PCIE_WRITE;
+                               page_base |= ATI_GART_READ | ATI_GART_WRITE;
+                               page_base |= ATI_GART_NOSNOOP;
                                break;
                        default:
                        case DRM_ATI_GART_PCI:

Modified: head/sys/dev/drm/r600_cp.c
==============================================================================
--- head/sys/dev/drm/r600_cp.c  Thu Apr 22 18:47:23 2010        (r207068)
+++ head/sys/dev/drm/r600_cp.c  Thu Apr 22 18:47:30 2010        (r207069)
@@ -180,7 +180,7 @@ int r600_page_table_init(struct drm_devi
                entry_addr = entry->busaddr[i];
                for (j = 0; j < (PAGE_SIZE / ATI_PCIGART_PAGE_SIZE); j++) {
                        page_base = (u64) entry_addr & ATI_PCIGART_PAGE_MASK;
-                       page_base |= R600_PTE_VALID | R600_PTE_SYSTEM | 
R600_PTE_SNOOPED;
+                       page_base |= R600_PTE_VALID | R600_PTE_SYSTEM;
                        page_base |= R600_PTE_READABLE | R600_PTE_WRITEABLE;
 
                        *pci_gart = page_base;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to