rpms/xorg-x11-drv-ati/devel radeon-modeset-fixes.patch, NONE, 1.1 xorg-x11-drv-ati.spec, 1.172, 1.173 radeon-enable-dfs.patch, 1.1, NONE radeon-modeset-fix-nomodeset.patch, 1.1, NONE

Dave Airlie airlied at fedoraproject.org
Tue Apr 7 01:41:00 UTC 2009


Author: airlied

Update of /cvs/pkgs/rpms/xorg-x11-drv-ati/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv30679

Modified Files:
	xorg-x11-drv-ati.spec 
Added Files:
	radeon-modeset-fixes.patch 
Removed Files:
	radeon-enable-dfs.patch radeon-modeset-fix-nomodeset.patch 
Log Message:
* Tue Apr 07 2009 Dave Airlie <airlied at redhat.com> 6.12.1-9
- cache mmaps for objects until remove time.


radeon-modeset-fixes.patch:

--- NEW FILE radeon-modeset-fixes.patch ---
diff --git a/src/radeon_bufmgr_gem.c b/src/radeon_bufmgr_gem.c
index 6005e51..51a27f8 100644
--- a/src/radeon_bufmgr_gem.c
+++ b/src/radeon_bufmgr_gem.c
@@ -75,6 +75,7 @@ typedef struct _dri_bo_gem {
 	int force_gtt;
 	int pinned;
 	int touched;
+	void *priv_map;
 	uint32_t space_accounted;
 } dri_bo_gem;
 
@@ -146,8 +147,8 @@ static void dri_gem_bo_free(dri_bo *bo)
 	dri_bo_gem *gem_bo = (dri_bo_gem *)bo, *trav, *prev;
 	struct drm_gem_close args;
 
-	if (gem_bo->map_count)
-		munmap(gem_bo->bo.virtual, gem_bo->bo.size);
+	if (gem_bo->priv_map)
+		munmap(gem_bo->priv_map, gem_bo->bo.size);
 
 	/* close object */
 	args.handle = gem_bo->gem_handle;
@@ -200,18 +201,21 @@ dri_gem_bo_map(dri_bo *bo, int write_enable)
 	if (gem_bo->map_count++ != 0)
 		return 0;
 
-	args.handle = gem_bo->gem_handle;
-	args.offset = 0;
-	args.size = gem_bo->bo.size;
+	if (!gem_bo->priv_map) {
+		args.handle = gem_bo->gem_handle;
+		args.offset = 0;
+		args.size = gem_bo->bo.size;
 
-	ret = drmCommandWriteRead(bufmgr_gem->fd, DRM_RADEON_GEM_MMAP, &args, sizeof(args));
-	if (ret)
-		return ret;
+		ret = drmCommandWriteRead(bufmgr_gem->fd, DRM_RADEON_GEM_MMAP, &args, sizeof(args));
+		if (ret)
+			return ret;
 
-	ptr = mmap(0, args.size, PROT_READ|PROT_WRITE, MAP_SHARED, bufmgr_gem->fd, args.addr_ptr);
-	if (ptr == MAP_FAILED)
-		return -errno;
-	gem_bo->bo.virtual = ptr;
+		ptr = mmap(0, args.size, PROT_READ|PROT_WRITE, MAP_SHARED, bufmgr_gem->fd, args.addr_ptr);
+		if (ptr == MAP_FAILED)
+			return -errno;
+		gem_bo->priv_map = ptr;
+	}
+	gem_bo->bo.virtual = gem_bo->priv_map;
 
 	return ret;
 }
@@ -224,8 +228,7 @@ dri_gem_bo_unmap(dri_bo *buf)
 	if (--gem_bo->map_count > 0)
 		return 0;
 
-        munmap(gem_bo->bo.virtual, gem_bo->bo.size);
-	gem_bo->bo.virtual = 0;
+	gem_bo->bo.virtual = NULL;
 	return 0;
 }
 
diff --git a/src/radeon_dri.c b/src/radeon_dri.c
index 64b5937..347ab44 100644
--- a/src/radeon_dri.c
+++ b/src/radeon_dri.c
@@ -471,7 +471,6 @@ Bool radeon_update_dri_buffers(ScreenPtr pScreen)
     if (!success)
 	return FALSE;
 
-    radeon_update_sarea(pScrn, sarea);
     radeon_update_screen_private(pScrn, sarea);
     return TRUE;
 }
@@ -1707,8 +1706,6 @@ Bool RADEONDRIDoMappings(ScreenPtr pScreen)
 	return FALSE;
     }
     
-    radeon_update_sarea(pScrn, pSAREAPriv);
-    
 				/* DRIScreenInit adds the frame buffer
 				   map, but we need it as well */
     {
diff --git a/src/radeon_driver.c b/src/radeon_driver.c
index 1c9d5d9..3808c34 100644
--- a/src/radeon_driver.c
+++ b/src/radeon_driver.c
@@ -3622,9 +3622,6 @@ Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen,
 	    info->accelDFS = xf86ReturnOptValBool(info->Options, OPTION_ACCEL_DFS,
                                                   info->cardType != CARD_AGP);
 
-	    if (info->drm_mm)
-	      info->accelDFS = FALSE;
-
 	    /* Reserve approx. half of offscreen memory for local textures by
 	     * default, can be overridden with Option "FBTexPercent".
 	     * Round down to a whole number of texture regions.


Index: xorg-x11-drv-ati.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/devel/xorg-x11-drv-ati.spec,v
retrieving revision 1.172
retrieving revision 1.173
diff -u -r1.172 -r1.173
--- xorg-x11-drv-ati.spec	7 Apr 2009 00:54:17 -0000	1.172
+++ xorg-x11-drv-ati.spec	7 Apr 2009 01:40:30 -0000	1.173
@@ -5,7 +5,7 @@
 Summary:   Xorg X11 ati video driver
 Name:      xorg-x11-drv-ati
 Version:   6.12.1
-Release:   8%{?dist}
+Release:   9%{?dist}
 URL:       http://www.x.org
 License:   MIT
 Group:     User Interface/X Hardware Support
@@ -16,8 +16,7 @@
 
 Patch0:     radeon-6.12.0-git-fixes.patch
 Patch1:     radeon-modeset.patch
-Patch2:     radeon-modeset-fix-nomodeset.patch
-Patch3:     radeon-enable-dfs.patch
+Patch2:     radeon-modeset-fixes.patch
 #Patch4:     radeon-6.9.0-remove-limit-heuristics.patch
 Patch5:	    radeon-6.9.0-panel-size-sanity.patch
 Patch6:     radeon-6.9.0-bgnr-enable.patch
@@ -45,7 +44,6 @@
 %patch0 -p1 -b .fixes
 %patch1 -p1 -b .modeset
 %patch2 -p1 -b .modeset-fix
-%patch3 -p1 -b .kms-dfs
 #patch4 -p1 -b .remove-limit-heuristics
 #%patch5 -p1 -b .panel-size
 %patch6 -p1 -b .bgnr
@@ -80,6 +78,9 @@
 %{_mandir}/man4/radeon.4*
 
 %changelog
+* Tue Apr 07 2009 Dave Airlie <airlied at redhat.com> 6.12.1-9
+- cache mmaps for objects until remove time.
+
 * Tue Apr 07 2009 Dave Airlie <airlied at redhat.com> 6.12.1-8
 - re-enable DFS for kms
 


--- radeon-enable-dfs.patch DELETED ---


--- radeon-modeset-fix-nomodeset.patch DELETED ---




More information about the scm-commits mailing list