aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
authorMichel Dänzer <daenzer@vmware.com>2011-05-19 16:08:39 +0200
committerDave Airlie <airlied@gmail.com>2011-05-22 20:23:09 +1000
commit5613beb46d54da6ef7f1c4589e9f2e60eeb10721 (patch)
treecaba4c382e8bb839fc527ff477836ef6aef7998f /drivers/char
parent2307790f0c8dea7d8052805a8209fbd67e815e72 (diff)
downloadkernel_samsung_smdk4412-5613beb46d54da6ef7f1c4589e9f2e60eeb10721.zip
kernel_samsung_smdk4412-5613beb46d54da6ef7f1c4589e9f2e60eeb10721.tar.gz
kernel_samsung_smdk4412-5613beb46d54da6ef7f1c4589e9f2e60eeb10721.tar.bz2
agp/uninorth: Fix lockups with radeon KMS and >1x.
This was based on a description by Ben Herrenschmidt: > I've removed that SBA reset from the normal TLB invalidation path and > left it only once after turning AGP on. About six months ago, he said: > I did it a bit differently, but yeah, you get the idea. I'm doing a > patch series so don't bother pushing things too hard yet. But I haven't seen anything from him about this since then, and people are regularly hitting these lockups, so here we are... Signed-off-by: Michel Dänzer <daenzer@vmware.com> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Dave Airlie <airlied@gmail.com>
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/agp/uninorth-agp.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c
index f845a8f..a32c492 100644
--- a/drivers/char/agp/uninorth-agp.c
+++ b/drivers/char/agp/uninorth-agp.c
@@ -80,7 +80,7 @@ static void uninorth_tlbflush(struct agp_memory *mem)
ctrl | UNI_N_CFG_GART_INVAL);
pci_write_config_dword(agp_bridge->dev, UNI_N_CFG_GART_CTRL, ctrl);
- if (uninorth_rev <= 0x30) {
+ if (!mem && uninorth_rev <= 0x30) {
pci_write_config_dword(agp_bridge->dev, UNI_N_CFG_GART_CTRL,
ctrl | UNI_N_CFG_GART_2xRESET);
pci_write_config_dword(agp_bridge->dev, UNI_N_CFG_GART_CTRL,