]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 3 Jun 2012 11:57:03 +0000 (04:57 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 3 Jun 2012 11:57:03 +0000 (04:57 -0700)
added patches:
drm-radeon-fix-hd6790-hd6570-backend-programming.patch
drm-radeon-properly-program-gart-on-rv740-juniper-cypress-barts-hemlock.patch
drm-ttm-fix-spinlock-imbalance.patch
mtd-nand-fix-scan_read_raw_oob.patch

queue-3.0/drm-radeon-fix-hd6790-hd6570-backend-programming.patch [new file with mode: 0644]
queue-3.0/drm-radeon-properly-program-gart-on-rv740-juniper-cypress-barts-hemlock.patch [new file with mode: 0644]
queue-3.0/drm-ttm-fix-spinlock-imbalance.patch [new file with mode: 0644]
queue-3.0/mtd-nand-fix-scan_read_raw_oob.patch [new file with mode: 0644]
queue-3.0/series

diff --git a/queue-3.0/drm-radeon-fix-hd6790-hd6570-backend-programming.patch b/queue-3.0/drm-radeon-fix-hd6790-hd6570-backend-programming.patch
new file mode 100644 (file)
index 0000000..bdf8d7e
--- /dev/null
@@ -0,0 +1,42 @@
+From 95c4b23ec4e2fa5604df229ddf134e31d7b3b378 Mon Sep 17 00:00:00 2001
+From: Jerome Glisse <jglisse@redhat.com>
+Date: Thu, 31 May 2012 19:00:24 -0400
+Subject: drm/radeon: fix HD6790, HD6570 backend programming
+
+From: Jerome Glisse <jglisse@redhat.com>
+
+commit 95c4b23ec4e2fa5604df229ddf134e31d7b3b378 upstream.
+
+Without this bit sets we get broken rendering and
+lockups.
+
+fglrx sets this bit.
+
+Bugs that should be fixed by this patch :
+https://bugs.freedesktop.org/show_bug.cgi?id=49792
+https://bugzilla.kernel.org/show_bug.cgi?id=43207
+https://bugs.freedesktop.org/show_bug.cgi?id=39282
+
+Signed-off-by: Jerome Glisse <jglisse@redhat.com>
+Acked-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/evergreen.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/radeon/evergreen.c
++++ b/drivers/gpu/drm/radeon/evergreen.c
+@@ -2069,9 +2069,9 @@ static void evergreen_gpu_init(struct ra
+               WREG32(CC_SYS_RB_BACKEND_DISABLE, rb);
+               WREG32(GC_USER_RB_BACKEND_DISABLE, rb);
+               WREG32(CC_GC_SHADER_PIPE_CONFIG, sp);
+-        }
++      }
+-      grbm_gfx_index |= SE_BROADCAST_WRITES;
++      grbm_gfx_index = INSTANCE_BROADCAST_WRITES | SE_BROADCAST_WRITES;
+       WREG32(GRBM_GFX_INDEX, grbm_gfx_index);
+       WREG32(RLC_GFX_INDEX, grbm_gfx_index);
diff --git a/queue-3.0/drm-radeon-properly-program-gart-on-rv740-juniper-cypress-barts-hemlock.patch b/queue-3.0/drm-radeon-properly-program-gart-on-rv740-juniper-cypress-barts-hemlock.patch
new file mode 100644 (file)
index 0000000..5607824
--- /dev/null
@@ -0,0 +1,70 @@
+From 0b8c30bc4943137a4a36b9cb059b1cc684f5d702 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Thu, 31 May 2012 18:54:43 -0400
+Subject: drm/radeon: properly program gart on rv740, juniper, cypress, barts, hemlock
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+commit 0b8c30bc4943137a4a36b9cb059b1cc684f5d702 upstream.
+
+Need to program an additional VM register.  This doesn't not currently
+cause any problems, but allows us to program the proper backend
+map in a subsequent patch which should improve performance on these
+asics.
+
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/radeon/evergreen.c  |    5 +++++
+ drivers/gpu/drm/radeon/evergreend.h |    1 +
+ drivers/gpu/drm/radeon/rv770.c      |    2 ++
+ drivers/gpu/drm/radeon/rv770d.h     |    1 +
+ 4 files changed, 9 insertions(+)
+
+--- a/drivers/gpu/drm/radeon/evergreen.c
++++ b/drivers/gpu/drm/radeon/evergreen.c
+@@ -926,6 +926,11 @@ int evergreen_pcie_gart_enable(struct ra
+               WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp);
+               WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp);
+               WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp);
++              if ((rdev->family == CHIP_JUNIPER) ||
++                  (rdev->family == CHIP_CYPRESS) ||
++                  (rdev->family == CHIP_HEMLOCK) ||
++                  (rdev->family == CHIP_BARTS))
++                      WREG32(MC_VM_MD_L1_TLB3_CNTL, tmp);
+       }
+       WREG32(MC_VM_MB_L1_TLB0_CNTL, tmp);
+       WREG32(MC_VM_MB_L1_TLB1_CNTL, tmp);
+--- a/drivers/gpu/drm/radeon/evergreend.h
++++ b/drivers/gpu/drm/radeon/evergreend.h
+@@ -230,6 +230,7 @@
+ #define       MC_VM_MD_L1_TLB0_CNTL                           0x2654
+ #define       MC_VM_MD_L1_TLB1_CNTL                           0x2658
+ #define       MC_VM_MD_L1_TLB2_CNTL                           0x265C
++#define       MC_VM_MD_L1_TLB3_CNTL                           0x2698
+ #define       FUS_MC_VM_MD_L1_TLB0_CNTL                       0x265C
+ #define       FUS_MC_VM_MD_L1_TLB1_CNTL                       0x2660
+--- a/drivers/gpu/drm/radeon/rv770.c
++++ b/drivers/gpu/drm/radeon/rv770.c
+@@ -151,6 +151,8 @@ int rv770_pcie_gart_enable(struct radeon
+       WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp);
+       WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp);
+       WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp);
++      if (rdev->family == CHIP_RV740)
++              WREG32(MC_VM_MD_L1_TLB3_CNTL, tmp);
+       WREG32(MC_VM_MB_L1_TLB0_CNTL, tmp);
+       WREG32(MC_VM_MB_L1_TLB1_CNTL, tmp);
+       WREG32(MC_VM_MB_L1_TLB2_CNTL, tmp);
+--- a/drivers/gpu/drm/radeon/rv770d.h
++++ b/drivers/gpu/drm/radeon/rv770d.h
+@@ -174,6 +174,7 @@
+ #define       MC_VM_MD_L1_TLB0_CNTL                           0x2654
+ #define       MC_VM_MD_L1_TLB1_CNTL                           0x2658
+ #define       MC_VM_MD_L1_TLB2_CNTL                           0x265C
++#define       MC_VM_MD_L1_TLB3_CNTL                           0x2698
+ #define       MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR              0x203C
+ #define       MC_VM_SYSTEM_APERTURE_HIGH_ADDR                 0x2038
+ #define       MC_VM_SYSTEM_APERTURE_LOW_ADDR                  0x2034
diff --git a/queue-3.0/drm-ttm-fix-spinlock-imbalance.patch b/queue-3.0/drm-ttm-fix-spinlock-imbalance.patch
new file mode 100644 (file)
index 0000000..8d425d9
--- /dev/null
@@ -0,0 +1,31 @@
+From a8ff3ee211fccf708e1911bbc096625453ebf759 Mon Sep 17 00:00:00 2001
+From: Thomas Hellstrom <thellstrom@vmware.com>
+Date: Fri, 1 Jun 2012 15:39:11 +0200
+Subject: drm/ttm: Fix spinlock imbalance
+
+From: Thomas Hellstrom <thellstrom@vmware.com>
+
+commit a8ff3ee211fccf708e1911bbc096625453ebf759 upstream.
+
+This imbalance may cause hangs when TTM is trying to swap out a buffer
+that is already on the delayed delete list.
+
+Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
+Reviewed-by: Jakob Bornecrantz <jakob@vmware.com>
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/gpu/drm/ttm/ttm_bo.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/gpu/drm/ttm/ttm_bo.c
++++ b/drivers/gpu/drm/ttm/ttm_bo.c
+@@ -1809,6 +1809,7 @@ static int ttm_bo_swapout(struct ttm_mem
+                       spin_unlock(&glob->lru_lock);
+                       (void) ttm_bo_cleanup_refs(bo, false, false, false);
+                       kref_put(&bo->list_kref, ttm_bo_release_list);
++                      spin_lock(&glob->lru_lock);
+                       continue;
+               }
diff --git a/queue-3.0/mtd-nand-fix-scan_read_raw_oob.patch b/queue-3.0/mtd-nand-fix-scan_read_raw_oob.patch
new file mode 100644 (file)
index 0000000..1f1168c
--- /dev/null
@@ -0,0 +1,31 @@
+From 34a5704d91d6f8376a4c0a0143a1dd3eb3ccb37e Mon Sep 17 00:00:00 2001
+From: Dmitry Maluka <D.Maluka@adbglobal.com>
+Date: Fri, 11 May 2012 20:51:51 +0300
+Subject: mtd: nand: fix scan_read_raw_oob
+
+From: Dmitry Maluka <D.Maluka@adbglobal.com>
+
+commit 34a5704d91d6f8376a4c0a0143a1dd3eb3ccb37e upstream.
+
+It seems there is a bug in scan_read_raw_oob() in nand_bbt.c which
+should cause wrong functioning of NAND_BBT_SCANALLPAGES option.
+
+Artem: the patch did not apply and I had to amend it a bit.
+
+Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/mtd/nand/nand_bbt.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/mtd/nand/nand_bbt.c
++++ b/drivers/mtd/nand/nand_bbt.c
+@@ -360,6 +360,7 @@ static int scan_read_raw_oob(struct mtd_
+               buf += mtd->oobsize + mtd->writesize;
+               len -= mtd->writesize;
++              offs += mtd->writesize;
+       }
+       return 0;
+ }
index efdc7b2ec625c85b6d896a6d18c21ed91d0cdb8b..194119a862fab28aaea8978dbd50d9885e02c53b 100644 (file)
@@ -23,3 +23,7 @@ add-foxconn-hon-hai-ids-for-btusb-module.patch
 bluetooth-add-support-for-foxconn-hon-hai-ar5bbu22-0489-e03c.patch
 alsa-usb-audio-fix-rate_list-memory-leak.patch
 vfs-umount_tree-might-be-called-on-subtree-that-had-never-made-it.patch
+mtd-nand-fix-scan_read_raw_oob.patch
+drm-radeon-properly-program-gart-on-rv740-juniper-cypress-barts-hemlock.patch
+drm-radeon-fix-hd6790-hd6570-backend-programming.patch
+drm-ttm-fix-spinlock-imbalance.patch