[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