aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/r600.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-12-10 00:47:57 -0500
committerDave Airlie <airlied@redhat.com>2009-12-10 00:48:04 -0500
commit115a5c2ba0aac55e1bac390f271c818c3cbfa1fb (patch)
treebf3029a9a68e4d3dbe82553f8a88dc25072c7dc2 /drivers/gpu/drm/radeon/r600.c
parent0b5e8db639de032bd4febbb0a5b1cd2c19bac26d (diff)
parentfb53f8621a3fab88776ae2450a1f3afc7920231b (diff)
Merge remote branch 'korg/drm-radeon-next' of into drm-linus
This merges some TTM overhauls to allow us to do better object placement for certain radeon GPUs that need scanout+cursor within range of each other, along with an API change to not return ERESTART to userspace, but to use ERESTARTSYS properly internally and have it convert to EINTR and catch that correctly. Also lots of radeon fixes across the board.
Diffstat (limited to 'drivers/gpu/drm/radeon/r600.c')
-rw-r--r--drivers/gpu/drm/radeon/r600.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index 250ec3fe1a16..f5cf874dc62a 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -1845,6 +1845,14 @@ int r600_startup(struct radeon_device *rdev)
1845{ 1845{
1846 int r; 1846 int r;
1847 1847
1848 if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
1849 r = r600_init_microcode(rdev);
1850 if (r) {
1851 DRM_ERROR("Failed to load firmware!\n");
1852 return r;
1853 }
1854 }
1855
1848 r600_mc_program(rdev); 1856 r600_mc_program(rdev);
1849 if (rdev->flags & RADEON_IS_AGP) { 1857 if (rdev->flags & RADEON_IS_AGP) {
1850 r600_agp_enable(rdev); 1858 r600_agp_enable(rdev);
@@ -2026,25 +2034,17 @@ int r600_init(struct radeon_device *rdev)
2026 rdev->ih.ring_obj = NULL; 2034 rdev->ih.ring_obj = NULL;
2027 r600_ih_ring_init(rdev, 64 * 1024); 2035 r600_ih_ring_init(rdev, 64 * 1024);
2028 2036
2029 if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) {
2030 r = r600_init_microcode(rdev);
2031 if (r) {
2032 DRM_ERROR("Failed to load firmware!\n");
2033 return r;
2034 }
2035 }
2036
2037 r = r600_pcie_gart_init(rdev); 2037 r = r600_pcie_gart_init(rdev);
2038 if (r) 2038 if (r)
2039 return r; 2039 return r;
2040 2040
2041 rdev->accel_working = true;
2042 r = r600_blit_init(rdev); 2041 r = r600_blit_init(rdev);
2043 if (r) { 2042 if (r) {
2044 DRM_ERROR("radeon: failled blitter (%d).\n", r); 2043 DRM_ERROR("radeon: failed blitter (%d).\n", r);
2045 return r; 2044 return r;
2046 } 2045 }
2047 2046
2047 rdev->accel_working = true;
2048 r = r600_startup(rdev); 2048 r = r600_startup(rdev);
2049 if (r) { 2049 if (r) {
2050 r600_suspend(rdev); 2050 r600_suspend(rdev);
@@ -2056,12 +2056,12 @@ int r600_init(struct radeon_device *rdev)
2056 if (rdev->accel_working) { 2056 if (rdev->accel_working) {
2057 r = radeon_ib_pool_init(rdev); 2057 r = radeon_ib_pool_init(rdev);
2058 if (r) { 2058 if (r) {
2059 DRM_ERROR("radeon: failled initializing IB pool (%d).\n", r); 2059 DRM_ERROR("radeon: failed initializing IB pool (%d).\n", r);
2060 rdev->accel_working = false; 2060 rdev->accel_working = false;
2061 } 2061 }
2062 r = r600_ib_test(rdev); 2062 r = r600_ib_test(rdev);
2063 if (r) { 2063 if (r) {
2064 DRM_ERROR("radeon: failled testing IB (%d).\n", r); 2064 DRM_ERROR("radeon: failed testing IB (%d).\n", r);
2065 rdev->accel_working = false; 2065 rdev->accel_working = false;
2066 } 2066 }
2067 } 2067 }