diff options
| author | Eric Anholt <anholt@freebsd.org> | 2004-11-06 01:41:47 +0000 | 
|---|---|---|
| committer | Eric Anholt <anholt@freebsd.org> | 2004-11-06 01:41:47 +0000 | 
| commit | c9202c89653b8dac2ac322c3d3a7389945e1c94c (patch) | |
| tree | da57c01384977ea6a2962cfaac9c7c426da2c0f8 /bsd-core/drm_dma.c | |
| parent | 39a23640b2de9e59e99d48e6de8c9edae0231856 (diff) | |
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.
Diffstat (limited to 'bsd-core/drm_dma.c')
| -rw-r--r-- | bsd-core/drm_dma.c | 67 | 
1 files changed, 14 insertions, 53 deletions
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 */  | 
