[kernel] r17155 - in dists/squeeze/linux-2.6/debian: . patches/bugfix/all patches/series

Maximilian Attems maks at alioth.debian.org
Tue Mar 29 17:00:48 UTC 2011


Author: maks
Date: Tue Mar 29 17:00:34 2011
New Revision: 17155

Log:
add 2 radeon patches from 2.6.32.33+drm33.15

Added:
   dists/squeeze/linux-2.6/debian/patches/bugfix/all/drm-radeon-fall-back-to-GTT-if-bo-creation-validatio.patch
   dists/squeeze/linux-2.6/debian/patches/bugfix/all/drm-radeon-kms-Fix-retrying-ttm_bo_init-after-it-fai.patch
   dists/squeeze/linux-2.6/debian/patches/series/33
Modified:
   dists/squeeze/linux-2.6/debian/changelog

Modified: dists/squeeze/linux-2.6/debian/changelog
==============================================================================
--- dists/squeeze/linux-2.6/debian/changelog	Tue Mar 29 12:20:26 2011	(r17154)
+++ dists/squeeze/linux-2.6/debian/changelog	Tue Mar 29 17:00:34 2011	(r17155)
@@ -1,3 +1,11 @@
+linux-2.6 (2.6.32-33) UNRELEASED; urgency=low
+
+  * Add drm changes from 2.6.32.28+drm33.13:
+    - drm/radeon/kms: Fix retrying ttm_bo_init() after it failed once.
+    - drm/radeon: fall back to GTT if bo creation/validation in VRAM fails.
+
+ -- maximilian attems <maks at debian.org>  Tue, 29 Mar 2011 18:56:55 +0200
+
 linux-2.6 (2.6.32-32) stable; urgency=high
 
   [ Ben Hutchings ]

Added: dists/squeeze/linux-2.6/debian/patches/bugfix/all/drm-radeon-fall-back-to-GTT-if-bo-creation-validatio.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze/linux-2.6/debian/patches/bugfix/all/drm-radeon-fall-back-to-GTT-if-bo-creation-validatio.patch	Tue Mar 29 17:00:34 2011	(r17155)
@@ -0,0 +1,92 @@
+From 142bfd9b0342f5fbd3cc527361982490f1b8cfea Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <daenzer at vmware.com>
+Date: Wed, 2 Mar 2011 17:55:06 +0000
+Subject: [PATCH 1/2] drm/radeon: fall back to GTT if bo creation/validation in VRAM fails.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This fixes a problem where on low VRAM cards we'd run out of space for validation.
+
+[airlied: Tested on my M7, Thinkpad T42, compiz works with no problems.]
+
+Signed-off-by: Michel Dänzer <daenzer at vmware.com>
+Cc: stable at kernel.org
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+
+BugLink: http://bugs.launchpad.net/bugs/652934
+
+(cherry-picked from e376573f7267390f4e1bdc552564b6fb913bce76)
+Signed-off-by: Andy Whitcroft <apw at canonical.com>
+Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
+---
+ drivers/gpu/drm/radeon/radeon_object.c |   27 ++++++++++++++++++---------
+ 1 files changed, 18 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
+index f1da370..f23a199 100644
+--- a/drivers/gpu/drm/radeon/radeon_object.c
++++ b/drivers/gpu/drm/radeon/radeon_object.c
+@@ -109,16 +109,22 @@ int radeon_bo_create(struct radeon_device *rdev, struct drm_gem_object *gobj,
+ 	bo->surface_reg = -1;
+ 	INIT_LIST_HEAD(&bo->list);
+ 
++retry:
+ 	radeon_ttm_placement_from_domain(bo, domain);
+ 	/* Kernel allocation are uninterruptible */
+ 	r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type,
+ 			&bo->placement, 0, 0, !kernel, NULL, size,
+ 			&radeon_ttm_bo_destroy);
+ 	if (unlikely(r != 0)) {
+-		if (r != -ERESTARTSYS)
++		if (r != -ERESTARTSYS) {
++			if (domain == RADEON_GEM_DOMAIN_VRAM) {
++				domain |= RADEON_GEM_DOMAIN_GTT;
++				goto retry;
++			}
+ 			dev_err(rdev->dev,
+ 				"object_init failed for (%lu, 0x%08X)\n",
+ 				size, domain);
++		}
+ 		return r;
+ 	}
+ 	*bo_ptr = bo;
+@@ -310,6 +316,7 @@ int radeon_bo_list_validate(struct list_head *head)
+ {
+ 	struct radeon_bo_list *lobj;
+ 	struct radeon_bo *bo;
++	u32 domain;
+ 	int r;
+ 
+ 	r = radeon_bo_list_reserve(head);
+@@ -319,17 +326,19 @@ int radeon_bo_list_validate(struct list_head *head)
+ 	list_for_each_entry(lobj, head, list) {
+ 		bo = lobj->bo;
+ 		if (!bo->pin_count) {
+-			if (lobj->wdomain) {
+-				radeon_ttm_placement_from_domain(bo,
+-								lobj->wdomain);
+-			} else {
+-				radeon_ttm_placement_from_domain(bo,
+-								lobj->rdomain);
+-			}
++			domain = lobj->wdomain ? lobj->wdomain : lobj->rdomain;
++			
++		retry:
++			radeon_ttm_placement_from_domain(bo, domain);
+ 			r = ttm_bo_validate(&bo->tbo, &bo->placement,
+ 						true, false);
+-			if (unlikely(r))
++			if (unlikely(r)) {
++				if (r != -ERESTARTSYS && domain == RADEON_GEM_DOMAIN_VRAM) {
++					domain |= RADEON_GEM_DOMAIN_GTT;
++					goto retry;
++				}
+ 				return r;
++			}
+ 		}
+ 		lobj->gpu_offset = radeon_bo_gpu_offset(bo);
+ 		lobj->tiling_flags = bo->tiling_flags;
+-- 
+1.7.2.5
+

Added: dists/squeeze/linux-2.6/debian/patches/bugfix/all/drm-radeon-kms-Fix-retrying-ttm_bo_init-after-it-fai.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze/linux-2.6/debian/patches/bugfix/all/drm-radeon-kms-Fix-retrying-ttm_bo_init-after-it-fai.patch	Tue Mar 29 17:00:34 2011	(r17155)
@@ -0,0 +1,50 @@
+From 4b1cae4a0118c4714db863be4b99e68a32d770c2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <daenzer at vmware.com>
+Date: Wed, 2 Mar 2011 17:55:07 +0000
+Subject: [PATCH 2/2] drm/radeon/kms: Fix retrying ttm_bo_init() after it failed once.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If ttm_bo_init() returns failure, it already destroyed the BO, so we need to
+retry from scratch.
+
+Signed-off-by: Michel Dänzer <daenzer at vmware.com>
+Tested-by: Markus Trippelsdorf <markus at trippelsdorf.de>
+Cc: stable at kernel.org
+Signed-off-by: Dave Airlie <airlied at redhat.com>
+
+BugLink: http://bugs.launchpad.net/bugs/652934
+
+(cherry picked from commit 2b66b50b12cabc05f05543e792d4c9c2465d5702)
+Signed-off-by: Andy Whitcroft <apw at canonical.com>
+Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
+---
+ drivers/gpu/drm/radeon/radeon_object.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
+index f23a199..d856a59 100644
+--- a/drivers/gpu/drm/radeon/radeon_object.c
++++ b/drivers/gpu/drm/radeon/radeon_object.c
+@@ -101,6 +101,8 @@ int radeon_bo_create(struct radeon_device *rdev, struct drm_gem_object *gobj,
+ 		type = ttm_bo_type_device;
+ 	}
+ 	*bo_ptr = NULL;
++
++retry:
+ 	bo = kzalloc(sizeof(struct radeon_bo), GFP_KERNEL);
+ 	if (bo == NULL)
+ 		return -ENOMEM;
+@@ -108,8 +110,6 @@ int radeon_bo_create(struct radeon_device *rdev, struct drm_gem_object *gobj,
+ 	bo->gobj = gobj;
+ 	bo->surface_reg = -1;
+ 	INIT_LIST_HEAD(&bo->list);
+-
+-retry:
+ 	radeon_ttm_placement_from_domain(bo, domain);
+ 	/* Kernel allocation are uninterruptible */
+ 	r = ttm_bo_init(&rdev->mman.bdev, &bo->tbo, size, type,
+-- 
+1.7.2.5
+

Added: dists/squeeze/linux-2.6/debian/patches/series/33
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze/linux-2.6/debian/patches/series/33	Tue Mar 29 17:00:34 2011	(r17155)
@@ -0,0 +1,2 @@
++ bugfix/all/drm-radeon-fall-back-to-GTT-if-bo-creation-validatio.patch
++ bugfix/all/drm-radeon-kms-Fix-retrying-ttm_bo_init-after-it-fai.patch



More information about the Kernel-svn-changes mailing list