diff options
author | Michel Dänzer <daenzer@vmware.com> | 2011-05-19 16:08:39 +0200 |
---|---|---|
committer | Dave Airlie <airlied@gmail.com> | 2011-05-22 20:23:09 +1000 |
commit | 5613beb46d54da6ef7f1c4589e9f2e60eeb10721 (patch) | |
tree | caba4c382e8bb839fc527ff477836ef6aef7998f /drivers/char | |
parent | 2307790f0c8dea7d8052805a8209fbd67e815e72 (diff) | |
download | blackbird-op-linux-5613beb46d54da6ef7f1c4589e9f2e60eeb10721.tar.gz blackbird-op-linux-5613beb46d54da6ef7f1c4589e9f2e60eeb10721.zip |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/char/agp/uninorth-agp.c b/drivers/char/agp/uninorth-agp.c index f845a8f718b3..a32c492baf5c 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, |