From 1c012987628a2b68d452ac69bbd78b9c98567a33 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sun, 3 Jun 2012 04:57:03 -0700 Subject: [PATCH] 3.0-stable patches 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 --- ...ix-hd6790-hd6570-backend-programming.patch | 42 +++++++++++ ...-rv740-juniper-cypress-barts-hemlock.patch | 70 +++++++++++++++++++ .../drm-ttm-fix-spinlock-imbalance.patch | 31 ++++++++ .../mtd-nand-fix-scan_read_raw_oob.patch | 31 ++++++++ queue-3.0/series | 4 ++ 5 files changed, 178 insertions(+) create mode 100644 queue-3.0/drm-radeon-fix-hd6790-hd6570-backend-programming.patch create mode 100644 queue-3.0/drm-radeon-properly-program-gart-on-rv740-juniper-cypress-barts-hemlock.patch create mode 100644 queue-3.0/drm-ttm-fix-spinlock-imbalance.patch create mode 100644 queue-3.0/mtd-nand-fix-scan_read_raw_oob.patch 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 index 00000000000..bdf8d7e8b24 --- /dev/null +++ b/queue-3.0/drm-radeon-fix-hd6790-hd6570-backend-programming.patch @@ -0,0 +1,42 @@ +From 95c4b23ec4e2fa5604df229ddf134e31d7b3b378 Mon Sep 17 00:00:00 2001 +From: Jerome Glisse +Date: Thu, 31 May 2012 19:00:24 -0400 +Subject: drm/radeon: fix HD6790, HD6570 backend programming + +From: Jerome Glisse + +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 +Acked-by: Alex Deucher +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..5607824536a --- /dev/null +++ b/queue-3.0/drm-radeon-properly-program-gart-on-rv740-juniper-cypress-barts-hemlock.patch @@ -0,0 +1,70 @@ +From 0b8c30bc4943137a4a36b9cb059b1cc684f5d702 Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Thu, 31 May 2012 18:54:43 -0400 +Subject: drm/radeon: properly program gart on rv740, juniper, cypress, barts, hemlock + +From: Alex Deucher + +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 +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..8d425d9d0d0 --- /dev/null +++ b/queue-3.0/drm-ttm-fix-spinlock-imbalance.patch @@ -0,0 +1,31 @@ +From a8ff3ee211fccf708e1911bbc096625453ebf759 Mon Sep 17 00:00:00 2001 +From: Thomas Hellstrom +Date: Fri, 1 Jun 2012 15:39:11 +0200 +Subject: drm/ttm: Fix spinlock imbalance + +From: Thomas Hellstrom + +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 +Reviewed-by: Jakob Bornecrantz +Signed-off-by: Dave Airlie +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..1f1168cf8f3 --- /dev/null +++ b/queue-3.0/mtd-nand-fix-scan_read_raw_oob.patch @@ -0,0 +1,31 @@ +From 34a5704d91d6f8376a4c0a0143a1dd3eb3ccb37e Mon Sep 17 00:00:00 2001 +From: Dmitry Maluka +Date: Fri, 11 May 2012 20:51:51 +0300 +Subject: mtd: nand: fix scan_read_raw_oob + +From: Dmitry Maluka + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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; + } diff --git a/queue-3.0/series b/queue-3.0/series index efdc7b2ec62..194119a862f 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -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 -- 2.47.3