diff options
| -rw-r--r-- | linux-core/drmP.h | 2 | ||||
| -rw-r--r-- | linux-core/drm_drv.c | 14 | ||||
| -rw-r--r-- | linux-core/drm_os_linux.h | 18 | ||||
| -rw-r--r-- | shared-core/i915_dma.c | 2 | ||||
| -rw-r--r-- | shared-core/mach64_dma.c | 3 | ||||
| -rw-r--r-- | shared-core/mga_dma.c | 3 | ||||
| -rw-r--r-- | shared-core/r128_cce.c | 3 | ||||
| -rw-r--r-- | shared-core/radeon_cp.c | 2 | ||||
| -rw-r--r-- | shared-core/savage_bci.c | 2 | ||||
| -rw-r--r-- | shared-core/via_map.c | 2 | 
10 files changed, 23 insertions, 28 deletions
| diff --git a/linux-core/drmP.h b/linux-core/drmP.h index 271c6c8e..37b93525 100644 --- a/linux-core/drmP.h +++ b/linux-core/drmP.h @@ -1128,6 +1128,8 @@ extern drm_head_t **drm_heads;  extern struct drm_sysfs_class *drm_class;  extern struct proc_dir_entry *drm_proc_root; +extern drm_local_map_t *drm_getsarea(struct drm_device *dev); +  				/* Proc support (drm_proc.h) */  extern int drm_proc_init(drm_device_t * dev,  			 int minor, diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c index b95f796f..3dc4d53c 100644 --- a/linux-core/drm_drv.c +++ b/linux-core/drm_drv.c @@ -622,3 +622,17 @@ err_i1:  	return retcode;  }  EXPORT_SYMBOL(drm_ioctl); + +drm_local_map_t *drm_getsarea(struct drm_device *dev) +{ +	drm_map_list_t *entry; + +	list_for_each_entry(entry, &dev->maplist->head, head) { +		if (entry->map && entry->map->type == _DRM_SHM && +		    (entry->map->flags & _DRM_CONTAINS_LOCK)) { +			return entry->map; +		} +	} +	return NULL; +} +EXPORT_SYMBOL(drm_getsarea); diff --git a/linux-core/drm_os_linux.h b/linux-core/drm_os_linux.h index 816959e8..2ea105c5 100644 --- a/linux-core/drm_os_linux.h +++ b/linux-core/drm_os_linux.h @@ -119,24 +119,6 @@ static __inline__ int mtrr_del(int reg, unsigned long base, unsigned long size)  #define DRM_GET_PRIV_WITH_RETURN(_priv, _filp) _priv = _filp->private_data -/** - * Get the pointer to the SAREA. - * - * Searches the SAREA on the mapping lists and points drm_device::sarea to it. - */ -#define DRM_GETSAREA()							 \ -do { 									 \ -	drm_map_list_t *entry;						 \ -	list_for_each_entry( entry, &dev->maplist->head, head ) {	 \ -		if ( entry->map &&					 \ -		     entry->map->type == _DRM_SHM &&			 \ -		     (entry->map->flags & _DRM_CONTAINS_LOCK) ) {	 \ -			dev_priv->sarea = entry->map;			 \ - 			break;						 \ - 		}							 \ - 	}								 \ -} while (0) -  #define DRM_HZ HZ  #define DRM_WAIT_ON( ret, queue, timeout, condition )		\ diff --git a/shared-core/i915_dma.c b/shared-core/i915_dma.c index f66c08e6..cb5dcea8 100644 --- a/shared-core/i915_dma.c +++ b/shared-core/i915_dma.c @@ -123,7 +123,7 @@ static int i915_initialize(drm_device_t * dev,  {  	memset(dev_priv, 0, sizeof(drm_i915_private_t)); -	DRM_GETSAREA(); +	dev_priv->sarea = drm_getsarea(dev);  	if (!dev_priv->sarea) {  		DRM_ERROR("can not find sarea!\n");  		dev->dev_private = (void *)dev_priv; diff --git a/shared-core/mach64_dma.c b/shared-core/mach64_dma.c index 3a5fdee8..60f55900 100644 --- a/shared-core/mach64_dma.c +++ b/shared-core/mach64_dma.c @@ -792,8 +792,7 @@ static int mach64_do_dma_init(drm_device_t * dev, drm_mach64_init_t * init)  	INIT_LIST_HEAD(&dev_priv->placeholders);  	INIT_LIST_HEAD(&dev_priv->pending); -	DRM_GETSAREA(); - +	dev_priv->sarea = drm_getsarea(dev);  	if (!dev_priv->sarea) {  		DRM_ERROR("can not find sarea!\n");  		dev->dev_private = (void *)dev_priv; diff --git a/shared-core/mga_dma.c b/shared-core/mga_dma.c index e6468d67..78448282 100644 --- a/shared-core/mga_dma.c +++ b/shared-core/mga_dma.c @@ -830,8 +830,7 @@ static int mga_do_init_dma(drm_device_t * dev, drm_mga_init_t * init)  	dev_priv->texture_offset = init->texture_offset[0];  	dev_priv->texture_size = init->texture_size[0]; -	DRM_GETSAREA(); - +	dev_priv->sarea = drm_getsarea(dev);  	if (!dev_priv->sarea) {  		DRM_ERROR("failed to find sarea!\n");  		return DRM_ERR(EINVAL); diff --git a/shared-core/r128_cce.c b/shared-core/r128_cce.c index fc7bb8fc..a2ee18b7 100644 --- a/shared-core/r128_cce.c +++ b/shared-core/r128_cce.c @@ -456,8 +456,7 @@ static int r128_do_init_cce(drm_device_t * dev, drm_r128_init_t * init)  	dev_priv->span_pitch_offset_c = (((dev_priv->depth_pitch / 8) << 21) |  					 (dev_priv->span_offset >> 5)); -	DRM_GETSAREA(); - +	dev_priv->sarea = drm_getsarea(dev);  	if (!dev_priv->sarea) {  		DRM_ERROR("could not find sarea!\n");  		dev->dev_private = (void *)dev_priv; diff --git a/shared-core/radeon_cp.c b/shared-core/radeon_cp.c index bfc2d088..bde98b30 100644 --- a/shared-core/radeon_cp.c +++ b/shared-core/radeon_cp.c @@ -1505,13 +1505,13 @@ static int radeon_do_init_cp(drm_device_t * dev, drm_radeon_init_t * init)  					 RADEON_ROUND_MODE_TRUNC |  					 RADEON_ROUND_PREC_8TH_PIX); -	DRM_GETSAREA();  	dev_priv->ring_offset = init->ring_offset;  	dev_priv->ring_rptr_offset = init->ring_rptr_offset;  	dev_priv->buffers_offset = init->buffers_offset;  	dev_priv->gart_textures_offset = init->gart_textures_offset; +	dev_priv->sarea = drm_getsarea(dev);  	if (!dev_priv->sarea) {  		DRM_ERROR("could not find sarea!\n");  		radeon_do_cleanup_cp(dev); diff --git a/shared-core/savage_bci.c b/shared-core/savage_bci.c index 5632b5c8..9a3ae1f1 100644 --- a/shared-core/savage_bci.c +++ b/shared-core/savage_bci.c @@ -710,7 +710,7 @@ static int savage_do_init_bci(drm_device_t *dev, drm_savage_init_t *init)  	dev_priv->texture_offset = init->texture_offset;  	dev_priv->texture_size = init->texture_size; -	DRM_GETSAREA(); +	dev_priv->sarea = drm_getsarea(dev);  	if (!dev_priv->sarea) {  		DRM_ERROR("could not find sarea!\n");  		savage_do_cleanup_bci(dev); diff --git a/shared-core/via_map.c b/shared-core/via_map.c index 83324cfa..037a1c2c 100644 --- a/shared-core/via_map.c +++ b/shared-core/via_map.c @@ -32,7 +32,7 @@ static int via_do_init_map(drm_device_t * dev, drm_via_init_t * init)  	DRM_DEBUG("%s\n", __FUNCTION__); -	DRM_GETSAREA(); +	dev_priv->sarea = drm_getsarea(dev);  	if (!dev_priv->sarea) {  		DRM_ERROR("could not find sarea!\n");  		dev->dev_private = (void *)dev_priv; | 
