提交 b741be82 编写于 作者: A Alex Deucher 提交者: Dave Airlie

drm/radeon/kms/evergreen: fix backend setup

This patch fixes rendering errors on some evergreen boards.
Hardcoding the backend map is not an optimal solution, but
a better fix is being worked on.

Similar to the fix for rv740
(6271901d).

Fixes:
https://bugs.freedesktop.org/show_bug.cgi?id=29986Signed-off-by: NAlex Deucher <alexdeucher@gmail.com>
Cc: stable@kernel.org
Signed-off-by: NDave Airlie <airlied@redhat.com>
上级 7b334fcb
...@@ -1160,14 +1160,25 @@ static void evergreen_gpu_init(struct radeon_device *rdev) ...@@ -1160,14 +1160,25 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
EVERGREEN_MAX_BACKENDS_MASK)); EVERGREEN_MAX_BACKENDS_MASK));
break; break;
} }
} else } else {
gb_backend_map = switch (rdev->family) {
evergreen_get_tile_pipe_to_backend_map(rdev, case CHIP_CYPRESS:
rdev->config.evergreen.max_tile_pipes, case CHIP_HEMLOCK:
rdev->config.evergreen.max_backends, gb_backend_map = 0x66442200;
((EVERGREEN_MAX_BACKENDS_MASK << break;
rdev->config.evergreen.max_backends) & case CHIP_JUNIPER:
EVERGREEN_MAX_BACKENDS_MASK)); gb_backend_map = 0x00006420;
break;
default:
gb_backend_map =
evergreen_get_tile_pipe_to_backend_map(rdev,
rdev->config.evergreen.max_tile_pipes,
rdev->config.evergreen.max_backends,
((EVERGREEN_MAX_BACKENDS_MASK <<
rdev->config.evergreen.max_backends) &
EVERGREEN_MAX_BACKENDS_MASK));
}
}
rdev->config.evergreen.tile_config = gb_addr_config; rdev->config.evergreen.tile_config = gb_addr_config;
WREG32(GB_BACKEND_MAP, gb_backend_map); WREG32(GB_BACKEND_MAP, gb_backend_map);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册