Index: bsd/drm/kernel/Makefile.bsd =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/Makefile.bsd,v retrieving revision 1.6.22.1 diff -u -r1.6.22.1 Makefile.bsd --- bsd/drm/kernel/Makefile.bsd 30 Mar 2003 04:52:41 -0000 1.6.22.1 +++ bsd/drm/kernel/Makefile.bsd 9 Apr 2003 01:06:50 -0000 @@ -1,6 +1,6 @@ # $FreeBSD$ # i810, i830 & sis are not complete -SUBDIR = mga r128 radeon tdfx # i810 i830 sis gamma +SUBDIR = mach64 mga r128 radeon tdfx # i810 i830 sis gamma .include Index: bsd/drm/kernel/drmP.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drmP.h,v retrieving revision 1.11.4.2 diff -u -r1.11.4.2 drmP.h --- bsd/drm/kernel/drmP.h 8 Apr 2003 04:32:04 -0000 1.11.4.2 +++ bsd/drm/kernel/drmP.h 9 Apr 2003 01:06:50 -0000 @@ -731,6 +731,12 @@ extern int DRM(sg_free)(DRM_IOCTL_ARGS); #endif +/* consistent PCI memory functions (drm_pci.h) */ +extern void *DRM(pci_alloc)(drm_device_t *dev, size_t size, + size_t align, dma_addr_t maxaddr, + dma_addr_t *busaddr); +extern void DRM(pci_free)(drm_device_t *dev, size_t size, + void *vaddr, dma_addr_t busaddr); #endif /* __KERNEL__ */ #endif /* _DRM_P_H_ */ Index: bsd/drm/kernel/drm_bufs.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_bufs.h,v retrieving revision 1.3.20.1 diff -u -r1.3.20.1 drm_bufs.h --- bsd/drm/kernel/drm_bufs.h 30 Mar 2003 04:52:42 -0000 1.3.20.1 +++ bsd/drm/kernel/drm_bufs.h 9 Apr 2003 01:06:50 -0000 @@ -601,7 +601,10 @@ page_count = 0; while ( entry->buf_count < count ) { - page = (unsigned long)DRM(alloc)( size, DRM_MEM_DMA ); + dma_addr_t bus_addr; + + page = (unsigned long)DRM(pci_alloc)(dev, size, PAGE_SIZE, + 0xffffffff, &bus_addr); if ( !page ) break; entry->seglist[entry->seg_count++] = page; for ( i = 0 ; i < (1 << page_order) ; i++ ) { @@ -621,6 +624,7 @@ buf->used = 0; buf->offset = (dma->byte_count + byte_count + offset); buf->address = (void *)(page + offset); + buf->bus_address = bus_addr + offset; buf->next = NULL; buf->waiting = 0; buf->pending = 0; Index: bsd/drm/kernel/drm_os_freebsd.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_os_freebsd.h,v retrieving revision 1.11.2.2 diff -u -r1.11.2.2 drm_os_freebsd.h --- bsd/drm/kernel/drm_os_freebsd.h 8 Apr 2003 04:32:05 -0000 1.11.2.2 +++ bsd/drm/kernel/drm_os_freebsd.h 9 Apr 2003 01:06:51 -0000 @@ -114,19 +114,13 @@ #define DRM_DEVICE drm_device_t *dev = kdev->si_drv1 #define DRM_MALLOC(size) malloc( size, DRM(M_DRM), M_NOWAIT ) #define DRM_FREE(pt,size) free( pt, DRM(M_DRM) ) -#define DRM_VTOPHYS(addr) vtophys(addr) /* Read/write from bus space, with byteswapping to le if necessary */ #define DRM_READ8(map, offset) *(volatile u_int8_t *) (((unsigned long)(map)->handle) + (offset)) #define DRM_READ32(map, offset) *(volatile u_int32_t *)(((unsigned long)(map)->handle) + (offset)) #define DRM_WRITE8(map, offset, val) *(volatile u_int8_t *) (((unsigned long)(map)->handle) + (offset)) = val #define DRM_WRITE32(map, offset, val) *(volatile u_int32_t *)(((unsigned long)(map)->handle) + (offset)) = val -/* -#define DRM_READ8(map, offset) bus_space_read_1( (map)->iot, (map)->ioh, (offset) ) -#define DRM_READ32(map, offset) bus_space_read_4( (map)->iot, (map)->ioh, (offset) ) -#define DRM_WRITE8(map, offset, val) bus_space_write_1( (map)->iot, (map)->ioh, (offset), (val) ) -#define DRM_WRITE32(map, offset, val) bus_space_write_4( (map)->iot, (map)->ioh, (offset), (val) ) -*/ + #define DRM_AGP_FIND_DEVICE() agp_find_device() #define DRM_ERR(v) v @@ -206,10 +200,19 @@ #define DRM_GET_USER_UNCHECKED(val, uaddr) \ ((val) = fuword(uaddr), 0) -#define DRM_WRITEMEMORYBARRIER( map ) \ - bus_space_barrier((map)->iot, (map)->ioh, 0, (map)->size, 0); -#define DRM_READMEMORYBARRIER( map ) \ - bus_space_barrier((map)->iot, (map)->ioh, 0, (map)->size, BUS_SPACE_BARRIER_READ); +/* DRM_READMEMORYBARRIER() prevents reordering of reads. + * DRM_WRITEMEMORYBARRIER() prevents reordering of writes. + * DRM_MEMORYBARRIER() prevents reordering of reads and writes. + */ +#if defined(__i386__) +#define DRM_READMEMORYBARRIER() __asm __volatile("lock; addl $0,0(%%esp)" : : : "memory"); +#define DRM_WRITEMEMORYBARRIER() __asm __volatile("" : : : "memory"); +#define DRM_MEMORYBARRIER() __asm __volatile("lock; addl $0,0(%%esp)" : : : "memory"); +#elif defined(__alpha__) +#define DRM_READMEMORYBARRIER() alpha_mb(); +#define DRM_WRITEMEMORYBARRIER() alpha_wmb(); +#define DRM_MEMORYBARRIER() alpha_mb(); +#endif #define PAGE_ALIGN(addr) round_page(addr) Index: bsd/drm/kernel/drm_os_netbsd.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/bsd/drm/kernel/drm_os_netbsd.h,v retrieving revision 1.2.30.2 diff -u -r1.2.30.2 drm_os_netbsd.h --- bsd/drm/kernel/drm_os_netbsd.h 8 Apr 2003 04:32:05 -0000 1.2.30.2 +++ bsd/drm/kernel/drm_os_netbsd.h 9 Apr 2003 01:06:51 -0000 @@ -94,7 +94,6 @@ #endif /* __NetBSD_Version__ */ #define DRM_MALLOC(size) malloc( size, DRM(M_DRM), M_NOWAIT ) #define DRM_FREE(pt,size) free( pt, DRM(M_DRM) ) -#define DRM_VTOPHYS(addr) vtophys(addr) #define DRM_READ8(map, offset) bus_space_read_1( (map)->iot, (map)->ioh, (offset) ) #define DRM_READ32(map, offset) bus_space_read_4( (map)->iot, (map)->ioh, (offset) ) @@ -173,10 +172,19 @@ #define DRM_GET_USER_UNCHECKED(val, uaddr) \ ((val) = fuword(uaddr), 0) -#define DRM_WRITEMEMORYBARRIER( map ) \ - bus_space_barrier((map)->iot, (map)->ioh, 0, (map)->size, 0); -#define DRM_READMEMORYBARRIER( map ) \ - bus_space_barrier((map)->iot, (map)->ioh, 0, (map)->size, BUS_SPACE_BARRIER_READ); +/* DRM_READMEMORYBARRIER() prevents reordering of reads. + * DRM_WRITEMEMORYBARRIER() prevents reordering of writes. + * DRM_MEMORYBARRIER() prevents reordering of reads and writes. + */ +#if defined(__i386__) +#define DRM_READMEMORYBARRIER() __asm __volatile("lock; addl $0,0(%%esp)" : : : "memory"); +#define DRM_WRITEMEMORYBARRIER() __asm __volatile("" : : : "memory"); +#define DRM_MEMORYBARRIER() __asm __volatile("lock; addl $0,0(%%esp)" : : : "memory"); +#elif defined(__alpha__) +#define DRM_READMEMORYBARRIER() alpha_mb(); +#define DRM_WRITEMEMORYBARRIER() alpha_wmb(); +#define DRM_MEMORYBARRIER() alpha_mb(); +#endif #define DRM_WAKEUP(w) wakeup((void *)w) #define DRM_WAKEUP_INT(w) wakeup(w) Index: bsd/drm/kernel/drm_pci.h =================================================================== RCS file: bsd/drm/kernel/drm_pci.h diff -N bsd/drm/kernel/drm_pci.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ bsd/drm/kernel/drm_pci.h 9 Apr 2003 01:06:51 -0000 @@ -0,0 +1,73 @@ +/** + * \file drm_pci.h + * \brief ioctl's to manage PCI memory + * + * \warning These interfaces aren't stable yet. + * + * \todo Implement the remaining ioctl's for the PCI pools. + * \todo Add support to map these buffers. + * \todo The wrappers here are so thin that they would be better off inlined.. + * + * \author José Fonseca + */ + +/* + * Copyright 2003 José Fonseca. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#define __NO_VERSION__ +#include "drmP.h" + + +/**********************************************************************/ +/** \name PCI memory */ +/*@{*/ + +/** + * \brief Allocate a PCI consistent memory block, for DMA. + */ +void * +DRM(pci_alloc)(drm_device_t *dev, size_t size, size_t align, + dma_addr_t maxaddr, dma_addr_t *busaddr) +{ + void *vaddr; + + vaddr = contigmalloc(size, DRM(M_DRM), M_WAITOK, 0ul, maxaddr, + align, 0); + *busaddr = vtophys(vaddr); + + return vaddr; +} + +/** + * \brief Free a PCI consistent memory block. + */ +void +DRM(pci_free)(drm_device_t *dev, size_t size, void *vaddr, dma_addr_t busaddr) +{ +#if __FreeBSD_version > 500000 + contigfree(vaddr, size, DRM(M_DRM)); /* Not available on 4.x */ +#endif +} + +/*@}*/ Index: linux/drm/kernel/drmP.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h,v retrieving revision 1.56.2.3 diff -u -r1.56.2.3 drmP.h --- linux/drm/kernel/drmP.h 8 Apr 2003 21:20:26 -0000 1.56.2.3 +++ linux/drm/kernel/drmP.h 9 Apr 2003 01:06:52 -0000 @@ -947,6 +947,11 @@ extern int DRM(ati_pcigart_cleanup)(drm_device_t *dev, unsigned long addr, dma_addr_t bus_addr); +extern void *DRM(pci_alloc)(drm_device_t *dev, size_t size, + size_t align, dma_addr_t maxaddr, + dma_addr_t *busaddr); +extern void DRM(pci_free)(drm_device_t *dev, size_t size, + void *vaddr, dma_addr_t busaddr); #endif /* __KERNEL__ */ #endif Index: linux/drm/kernel/drm_bufs.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm_bufs.h,v retrieving revision 1.15.20.2 diff -u -r1.15.20.2 drm_bufs.h --- linux/drm/kernel/drm_bufs.h 8 Apr 2003 21:20:34 -0000 1.15.20.2 +++ linux/drm/kernel/drm_bufs.h 9 Apr 2003 01:06:52 -0000 @@ -593,7 +593,9 @@ page_count = 0; while ( entry->buf_count < count ) { - page = DRM(alloc_pages)( page_order, DRM_MEM_DMA ); + dma_addr_t bus_addr; + + page = (unsigned long)DRM(pci_alloc)(dev, size, PAGE_SIZE, 0xffffffff, &bus_addr); if ( !page ) break; entry->seglist[entry->seg_count++] = page; for ( i = 0 ; i < (1 << page_order) ; i++ ) { @@ -613,6 +615,7 @@ buf->used = 0; buf->offset = (dma->byte_count + byte_count + offset); buf->address = (void *)(page + offset); + buf->bus_address = bus_addr + offset; buf->next = NULL; buf->waiting = 0; buf->pending = 0; Index: linux/drm/kernel/drm_os_linux.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm_os_linux.h,v retrieving revision 1.5.16.4 diff -u -r1.5.16.4 drm_os_linux.h --- linux/drm/kernel/drm_os_linux.h 8 Apr 2003 21:20:45 -0000 1.5.16.4 +++ linux/drm/kernel/drm_os_linux.h 9 Apr 2003 01:06:52 -0000 @@ -12,12 +12,12 @@ #define DRM_READ32(map, offset) readl(((unsigned long)(map)->handle) + (offset)) #define DRM_WRITE8(map, offset, val) writeb(val, ((unsigned long)(map)->handle) + (offset)) #define DRM_WRITE32(map, offset, val) writel(val, ((unsigned long)(map)->handle) + (offset)) -#define DRM_READMEMORYBARRIER(map) mb() -#define DRM_WRITEMEMORYBARRIER(map) wmb() +#define DRM_MEMORYBARRIER() mb() +#define DRM_READMEMORYBARRIER() rmb() +#define DRM_WRITEMEMORYBARRIER() wmb() #define DRM_DEVICE drm_file_t *priv = filp->private_data; \ drm_device_t *dev = priv->dev -#define DRM_VTOPHYS(x) virt_to_bus(x) #define DRM_IRQ_ARGS int irq, void *arg, struct pt_regs *regs #define DRM_TASKQUEUE_ARGS void *arg Index: linux/drm/kernel/drm_pci.h =================================================================== RCS file: linux/drm/kernel/drm_pci.h diff -N linux/drm/kernel/drm_pci.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ linux/drm/kernel/drm_pci.h 9 Apr 2003 01:06:52 -0000 @@ -0,0 +1,78 @@ +/** + * \file drm_pci.h + * \brief ioctl's to manage PCI memory + * + * \warning These interfaces aren't stable yet. + * + * \todo Implement the remaining ioctl's for the PCI pools. + * \todo Add support to map these buffers. + * \todo The wrappers here are so thin that they would be better off inlined.. + * + * \author José Fonseca + */ + +/* + * Copyright 2003 José Fonseca. + * All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#define __NO_VERSION__ +#include +#include "drmP.h" + + +/**********************************************************************/ +/** \name PCI memory */ +/*@{*/ + +/** + * \brief Allocate a PCI consistent memory block, for DMA. + */ +void * +DRM(pci_alloc)(drm_device_t *dev, size_t size, size_t align, + dma_addr_t maxaddr, dma_addr_t *busaddr) +{ + /* pci_alloc_consistent only guarantees alignment to the smallest + * PAGE_SIZE order which is greater than or equal to the requested size. + * Return NULL here for now to make sure nobody tries for larger alignment + */ + if (align > size) + return NULL; + + if (pci_set_dma_mask( dev->pdev, maxaddr ) != 0) { + DRM_ERROR( "Setting pci dma mask failed\n" ); + return NULL; + } + + return pci_alloc_consistent( dev->pdev, size, busaddr ); +} + +/** + * \brief Free a PCI consistent memory block. + */ +void +DRM(pci_free)(drm_device_t *dev, size_t size, void *vaddr, dma_addr_t busaddr) +{ + pci_free_consistent( dev->pdev, size, vaddr, busaddr ); +} + +/*@}*/ Index: linux/drm/kernel/mach64_drv.c =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Attic/mach64_drv.c,v retrieving revision 1.1.10.3 diff -u -r1.1.10.3 mach64_drv.c --- linux/drm/kernel/mach64_drv.c 16 Feb 2003 21:28:33 -0000 1.1.10.3 +++ linux/drm/kernel/mach64_drv.c 9 Apr 2003 01:06:53 -0000 @@ -46,6 +46,7 @@ #include "drm_ioctl.h" #include "drm_lock.h" #include "drm_memory.h" +#include "drm_pci.h" #include "drm_proc.h" #include "drm_vm.h" #include "drm_stub.h" Index: shared/drm/kernel/mach64_dma.c =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/Attic/mach64_dma.c,v retrieving revision 1.1.2.5 diff -u -r1.1.2.5 mach64_dma.c --- shared/drm/kernel/mach64_dma.c 30 Mar 2003 04:52:48 -0000 1.1.2.5 +++ shared/drm/kernel/mach64_dma.c 9 Apr 2003 01:06:53 -0000 @@ -156,7 +156,8 @@ return mach64_ring_idle( dev_priv ); } -int mach64_do_dma_idle( drm_mach64_private_t *dev_priv ) { +int mach64_do_dma_idle( drm_mach64_private_t *dev_priv ) +{ int ret; /* wait for completion */ @@ -446,7 +447,7 @@ /* FIXME: get a dma buffer from the freelist here */ DRM_DEBUG( "Allocating data memory ...\n" ); - cpu_addr_data = pci_alloc_consistent( dev->pdev, 0x1000, &data_handle ); + cpu_addr_data = DRM(pci_alloc)( dev, 0x1000, 0x1000, 0xfffffffful, &data_handle ); if (!cpu_addr_data || !data_handle) { DRM_INFO( "data-memory allocation failed!\n" ); return DRM_ERR(ENOMEM); @@ -480,7 +481,7 @@ DRM_INFO( "resetting engine ...\n"); mach64_do_engine_reset( dev_priv ); DRM_INFO( "freeing data buffer memory.\n" ); - pci_free_consistent( dev->pdev, 0x1000, + DRM(pci_free)( dev, 0x1000, cpu_addr_data, data_handle ); return DRM_ERR(EIO); } @@ -523,7 +524,7 @@ DRM_DEBUG( " data[%d] = 0x%08x\n", i, data[i] ); } - DRM_READMEMORYBARRIER(); + DRM_MEMORYBARRIER(); DRM_DEBUG( "waiting for idle...\n" ); if ( ( i = mach64_do_wait_for_idle( dev_priv ) ) ) { @@ -535,7 +536,7 @@ MACH64_WRITE( MACH64_PAT_REG0, pat_reg0 ); MACH64_WRITE( MACH64_PAT_REG1, pat_reg1 ); DRM_INFO( "freeing data buffer memory.\n" ); - pci_free_consistent( dev->pdev, 0x1000, cpu_addr_data, data_handle ); + DRM(pci_free)( dev, 0x1000, cpu_addr_data, data_handle ); return i; } DRM_DEBUG( "waiting for idle...done\n" ); @@ -572,7 +573,7 @@ MACH64_WRITE( MACH64_PAT_REG0, pat_reg0 ); MACH64_WRITE( MACH64_PAT_REG1, pat_reg1 ); DRM_INFO( "freeing data buffer memory.\n" ); - pci_free_consistent( dev->pdev, 0x1000, cpu_addr_data, data_handle ); + DRM(pci_free)( dev, 0x1000, cpu_addr_data, data_handle ); return i; } @@ -600,7 +601,7 @@ MACH64_WRITE( MACH64_PAT_REG1, pat_reg1 ); DRM_DEBUG( "freeing data buffer memory.\n" ); - pci_free_consistent( dev->pdev, 0x1000, cpu_addr_data, data_handle ); + DRM(pci_free)( dev, 0x1000, cpu_addr_data, data_handle ); DRM_DEBUG( "returning ...\n" ); return failed; @@ -724,19 +725,12 @@ } } - /* check DMA addressing limitations */ - DRM_DEBUG( "Setting 32-bit pci dma mask\n" ); - if ((ret=pci_set_dma_mask( dev->pdev, 0xffffffff ))) { - DRM_ERROR( "Setting 32-bit pci dma mask failed\n" ); - mach64_do_cleanup_dma( dev ); - return ret; - } - /* allocate descriptor memory from pci pool */ DRM_DEBUG( "Allocating dma descriptor ring\n" ); dev_priv->ring.size = 0x4000; /* 16KB */ - dev_priv->ring.start = pci_alloc_consistent( dev->pdev, dev_priv->ring.size, - &dev_priv->ring.handle ); + dev_priv->ring.start = DRM(pci_alloc)( dev, dev_priv->ring.size, + 0x4000, 0xfffffffful, + &dev_priv->ring.handle ); if (!dev_priv->ring.start || !dev_priv->ring.handle) { DRM_ERROR( "Allocating dma descriptor ring failed\n"); @@ -960,10 +954,9 @@ drm_mach64_private_t *dev_priv = dev->dev_private; /* Discard the allocations for the descriptor table... */ - if ( (dev->pdev != NULL) && - (dev_priv->ring.start != NULL) && dev_priv->ring.handle ) { + if ( (dev_priv->ring.start != NULL) && dev_priv->ring.handle ) { DRM_DEBUG( "freeing dma descriptor ring\n" ); - pci_free_consistent( dev->pdev, dev_priv->ring.size, + DRM(pci_free)( dev, dev_priv->ring.size, dev_priv->ring.start, dev_priv->ring.handle ); } Index: shared/drm/kernel/mach64_drv.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/Attic/mach64_drv.h,v retrieving revision 1.1.2.7 diff -u -r1.1.2.7 mach64_drv.h --- shared/drm/kernel/mach64_drv.h 8 Apr 2003 04:36:33 -0000 1.1.2.7 +++ shared/drm/kernel/mach64_drv.h 9 Apr 2003 01:06:53 -0000 @@ -793,9 +793,9 @@ DRM_INFO( "ADVANCE_RING() wr=0x%06x tail=0x%06x\n", \ _ring_write, _ring_tail ); \ } \ - DRM_READMEMORYBARRIER(dev_priv->mmio); \ + DRM_MEMORYBARRIER(); \ mach64_clear_dma_eol( &_ring[(_ring_tail - 2) & _ring_mask] ); \ - DRM_READMEMORYBARRIER(dev_priv->mmio); \ + DRM_MEMORYBARRIER(); \ dev_priv->ring.tail = _ring_write; \ mach64_ring_tick( dev_priv, &(dev_priv)->ring ); \ } while (0) @@ -815,10 +815,7 @@ ((u32 *)(__buf)->address) : \ ((u32 *)((char *)dev_priv->buffers->handle + (__buf)->offset))) -#define GETBUFADDR( __buf ) \ -((dev_priv->is_pci) ? \ - ((u32)DRM_VTOPHYS((void *)(__buf)->address)) : \ - ((u32)(__buf)->bus_address)) +#define GETBUFADDR( __buf ) ((u32)(__buf)->bus_address) #define GETRINGOFFSET() (_entry->ring_ofs) Index: shared/drm/kernel/mga_drv.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/mga_drv.h,v retrieving revision 1.5.8.1 diff -u -r1.5.8.1 mga_drv.h --- shared/drm/kernel/mga_drv.h 30 Mar 2003 04:52:48 -0000 1.5.8.1 +++ shared/drm/kernel/mga_drv.h 9 Apr 2003 01:06:54 -0000 @@ -131,7 +131,7 @@ extern int mga_warp_install_microcode( drm_mga_private_t *dev_priv ); extern int mga_warp_init( drm_mga_private_t *dev_priv ); -#define mga_flush_write_combine() DRM_WRITEMEMORYBARRIER(dev_priv->primary) +#define mga_flush_write_combine() DRM_WRITEMEMORYBARRIER() #if defined(__linux__) && defined(__alpha__) #define MGA_BASE( reg ) ((unsigned long)(dev_priv->mmio->handle)) @@ -142,12 +142,12 @@ #define MGA_READ( reg ) (_MGA_READ((u32 *)MGA_ADDR(reg))) #define MGA_READ8( reg ) (_MGA_READ((u8 *)MGA_ADDR(reg))) -#define MGA_WRITE( reg, val ) do { DRM_WRITEMEMORYBARRIER(dev_priv->mmio); MGA_DEREF( reg ) = val; } while (0) -#define MGA_WRITE8( reg, val ) do { DRM_WRITEMEMORYBARRIER(dev_priv->mmio); MGA_DEREF8( reg ) = val; } while (0) +#define MGA_WRITE( reg, val ) do { DRM_WRITEMEMORYBARRIER(); MGA_DEREF( reg ) = val; } while (0) +#define MGA_WRITE8( reg, val ) do { DRM_WRITEMEMORYBARRIER(); MGA_DEREF8( reg ) = val; } while (0) static inline u32 _MGA_READ(u32 *addr) { - DRM_READMEMORYBARRIER(dev_priv->mmio); + DRM_MEMORYBARRIER(); return *(volatile u32 *)addr; } #else Index: shared/drm/kernel/r128_drv.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/r128_drv.h,v retrieving revision 1.4.8.1 diff -u -r1.4.8.1 r128_drv.h --- shared/drm/kernel/r128_drv.h 30 Mar 2003 04:52:48 -0000 1.4.8.1 +++ shared/drm/kernel/r128_drv.h 9 Apr 2003 01:06:54 -0000 @@ -440,7 +440,7 @@ #if defined(__powerpc__) #define r128_flush_write_combine() (void) GET_RING_HEAD( &dev_priv->ring ) #else -#define r128_flush_write_combine() DRM_WRITEMEMORYBARRIER(dev_priv->ring_rptr) +#define r128_flush_write_combine() DRM_WRITEMEMORYBARRIER() #endif Index: shared/drm/kernel/radeon_drv.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/radeon_drv.h,v retrieving revision 1.13.2.1 diff -u -r1.13.2.1 radeon_drv.h --- shared/drm/kernel/radeon_drv.h 30 Mar 2003 04:52:48 -0000 1.13.2.1 +++ shared/drm/kernel/radeon_drv.h 9 Apr 2003 01:06:55 -0000 @@ -847,7 +847,7 @@ #define COMMIT_RING() do { \ /* Flush writes to ring */ \ - DRM_READMEMORYBARRIER(dev_priv->mmio); \ + DRM_MEMORYBARRIER(); \ GET_RING_HEAD( &dev_priv->ring ); \ RADEON_WRITE( RADEON_CP_RB_WPTR, dev_priv->ring.tail ); \ /* read from PCI bus to ensure correct posting */ \