diff --git a/radeon-enable-dfs.patch b/radeon-enable-dfs.patch deleted file mode 100644 index c065d2b..0000000 --- a/radeon-enable-dfs.patch +++ /dev/null @@ -1,26 +0,0 @@ -From add7f96a096ac2403aae259a5a457137207015d4 Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Tue, 7 Apr 2009 10:48:48 +1000 -Subject: [PATCH] radeon: mismerge accel dfs only if we have non-agp - ---- - src/radeon_driver.c | 3 --- - 1 files changed, 0 insertions(+), 3 deletions(-) - -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. --- -1.6.2 - diff --git a/radeon-modeset-fix-nomodeset.patch b/radeon-modeset-fix-nomodeset.patch deleted file mode 100644 index 85802ba..0000000 --- a/radeon-modeset-fix-nomodeset.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 982598d830691cd1b39e5aa2c9c409786e059fd3 Mon Sep 17 00:00:00 2001 -From: Dave Airlie -Date: Tue, 7 Apr 2009 09:15:08 +1000 -Subject: [PATCH] radeon: remove function - ---- - src/radeon_dri.c | 3 --- - 1 files changed, 0 insertions(+), 3 deletions(-) - -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 */ - { --- -1.6.2 - diff --git a/radeon-modeset-fixes.patch b/radeon-modeset-fixes.patch new file mode 100644 index 0000000..0e9a823 --- /dev/null +++ b/radeon-modeset-fixes.patch @@ -0,0 +1,100 @@ +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. diff --git a/xorg-x11-drv-ati.spec b/xorg-x11-drv-ati.spec index aeed555..eec156d 100644 --- a/xorg-x11-drv-ati.spec +++ b/xorg-x11-drv-ati.spec @@ -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 @@ Source1: radeon.xinf 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 @@ X.Org X11 ati video driver. %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 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man4/radeon.4* %changelog +* Tue Apr 07 2009 Dave Airlie 6.12.1-9 +- cache mmaps for objects until remove time. + * Tue Apr 07 2009 Dave Airlie 6.12.1-8 - re-enable DFS for kms