diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-07-27 00:51:53 +0200 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-08-02 02:06:18 +0200 |
commit | 812d046915f48236657f02c06d7dc47140e9ceda (patch) | |
tree | 77a9c724a2316593fa22f7442d5c4a8d00c9af32 /drivers/gpu/drm/radeon/rv770.c | |
parent | drm/radeon/kms: remove rs4xx gart limit (diff) | |
download | linux-812d046915f48236657f02c06d7dc47140e9ceda.tar.xz linux-812d046915f48236657f02c06d7dc47140e9ceda.zip |
drm/radeon/kms/r7xx: add workaround for hw issue with HDP flush
Use of HDP_*_COHERENCY_FLUSH_CNTL can cause a hang in certain
situations. Add workaround.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/rv770.c')
-rw-r--r-- | drivers/gpu/drm/radeon/rv770.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c index 236fe6681922..f1c796810117 100644 --- a/drivers/gpu/drm/radeon/rv770.c +++ b/drivers/gpu/drm/radeon/rv770.c @@ -204,7 +204,10 @@ static void rv770_mc_program(struct radeon_device *rdev) WREG32((0x2c20 + j), 0x00000000); WREG32((0x2c24 + j), 0x00000000); } - WREG32(HDP_REG_COHERENCY_FLUSH_CNTL, 0); + /* r7xx hw bug. Read from HDP_DEBUG1 rather + * than writing to HDP_REG_COHERENCY_FLUSH_CNTL + */ + tmp = RREG32(HDP_DEBUG1); rv515_mc_stop(rdev, &save); if (r600_mc_wait_for_idle(rdev)) { |