From c9202c89653b8dac2ac322c3d3a7389945e1c94c Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Sat, 6 Nov 2004 01:41:47 +0000 Subject: Commit WIP of BSD conversion to core model. Compiles for r128, radeon, but doesn't run yet. Moves the ioctl definitions for these two drivers back to the shared code -- they aren't OS-specific. --- bsd-core/drm_dma.c | 67 ++++++++++++------------------------------------------ 1 file changed, 14 insertions(+), 53 deletions(-) (limited to 'bsd-core/drm_dma.c') diff --git a/bsd-core/drm_dma.c b/bsd-core/drm_dma.c index 4570a867..6446a844 100644 --- a/bsd-core/drm_dma.c +++ b/bsd-core/drm_dma.c @@ -32,22 +32,10 @@ #include "drmP.h" -#ifndef __HAVE_DMA_WAITQUEUE -#define __HAVE_DMA_WAITQUEUE 0 -#endif -#ifndef __HAVE_DMA_RECLAIM -#define __HAVE_DMA_RECLAIM 0 -#endif -#ifndef __HAVE_SHARED_IRQ -#define __HAVE_SHARED_IRQ 0 -#endif - -#if __HAVE_DMA - -int DRM(dma_setup)( drm_device_t *dev ) +int drm_dma_setup(drm_device_t *dev) { - dev->dma = DRM(calloc)(1, sizeof(*dev->dma), DRM_MEM_DRIVER); + dev->dma = drm_calloc(1, sizeof(*dev->dma), DRM_MEM_DRIVER); if (dev->dma == NULL) return DRM_ERR(ENOMEM); @@ -56,7 +44,7 @@ int DRM(dma_setup)( drm_device_t *dev ) return 0; } -void DRM(dma_takedown)(drm_device_t *dev) +void drm_dma_takedown(drm_device_t *dev) { drm_device_dma_t *dma = dev->dma; int i, j; @@ -66,7 +54,6 @@ void DRM(dma_takedown)(drm_device_t *dev) /* Clear dma buffers */ for (i = 0; i <= DRM_MAX_ORDER; i++) { -#if __HAVE_PCI_DMA if (dma->bufs[i].seg_count) { DRM_DEBUG("order %d: buf_count = %d," " seg_count = %d\n", @@ -75,45 +62,44 @@ void DRM(dma_takedown)(drm_device_t *dev) dma->bufs[i].seg_count); for (j = 0; j < dma->bufs[i].seg_count; j++) { if (dma->bufs[i].seglist[j] != 0) - DRM(pci_free)(dev, dma->bufs[i].buf_size, + drm_pci_free(dev, dma->bufs[i].buf_size, (void *)dma->bufs[i].seglist[j], dma->bufs[i].seglist_bus[j]); } - DRM(free)(dma->bufs[i].seglist, + drm_free(dma->bufs[i].seglist, dma->bufs[i].seg_count * sizeof(*dma->bufs[0].seglist), DRM_MEM_SEGS); - DRM(free)(dma->bufs[i].seglist_bus, + drm_free(dma->bufs[i].seglist_bus, dma->bufs[i].seg_count * sizeof(*dma->bufs[0].seglist_bus), DRM_MEM_SEGS); } -#endif /* __HAVE_PCI_DMA */ if (dma->bufs[i].buf_count) { for (j = 0; j < dma->bufs[i].buf_count; j++) { - DRM(free)(dma->bufs[i].buflist[j].dev_private, + drm_free(dma->bufs[i].buflist[j].dev_private, dma->bufs[i].buflist[j].dev_priv_size, DRM_MEM_BUFS); } - DRM(free)(dma->bufs[i].buflist, + drm_free(dma->bufs[i].buflist, dma->bufs[i].buf_count * sizeof(*dma->bufs[0].buflist), DRM_MEM_BUFS); } } - DRM(free)(dma->buflist, dma->buf_count * sizeof(*dma->buflist), + drm_free(dma->buflist, dma->buf_count * sizeof(*dma->buflist), DRM_MEM_BUFS); - DRM(free)(dma->pagelist, dma->page_count * sizeof(*dma->pagelist), + drm_free(dma->pagelist, dma->page_count * sizeof(*dma->pagelist), DRM_MEM_PAGES); - DRM(free)(dev->dma, sizeof(*dev->dma), DRM_MEM_DRIVER); + drm_free(dev->dma, sizeof(*dev->dma), DRM_MEM_DRIVER); dev->dma = NULL; DRM_SPINUNINIT(dev->dma_lock); } -void DRM(free_buffer)(drm_device_t *dev, drm_buf_t *buf) +void drm_free_buffer(drm_device_t *dev, drm_buf_t *buf) { if (!buf) return; @@ -122,8 +108,7 @@ void DRM(free_buffer)(drm_device_t *dev, drm_buf_t *buf) buf->used = 0; } -#if !__HAVE_DMA_RECLAIM -void DRM(reclaim_buffers)(drm_device_t *dev, DRMFILE filp) +void drm_reclaim_buffers(drm_device_t *dev, DRMFILE filp) { drm_device_dma_t *dma = dev->dma; int i; @@ -133,7 +118,7 @@ void DRM(reclaim_buffers)(drm_device_t *dev, DRMFILE filp) if (dma->buflist[i]->filp == filp) { switch (dma->buflist[i]->list) { case DRM_LIST_NONE: - DRM(free_buffer)(dev, dma->buflist[i]); + drm_free_buffer(dev, dma->buflist[i]); break; case DRM_LIST_WAIT: dma->buflist[i]->list = DRM_LIST_RECLAIM; @@ -145,27 +130,3 @@ void DRM(reclaim_buffers)(drm_device_t *dev, DRMFILE filp) } } } -#endif - -#if !__HAVE_IRQ -/* This stub DRM_IOCTL_CONTROL handler is for the drivers that used to require - * IRQs for DMA but no longer do. It maintains compatibility with the X Servers - * that try to use the control ioctl by simply returning success. - */ -int DRM(control)( DRM_IOCTL_ARGS ) -{ - drm_control_t ctl; - - DRM_COPY_FROM_USER_IOCTL( ctl, (drm_control_t *) data, sizeof(ctl) ); - - switch ( ctl.func ) { - case DRM_INST_HANDLER: - case DRM_UNINST_HANDLER: - return 0; - default: - return DRM_ERR(EINVAL); - } -} -#endif - -#endif /* __HAVE_DMA */ -- cgit v1.2.3