diff options
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_asic.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_asic.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_asic.c b/drivers/gpu/drm/radeon/radeon_asic.c index 8493d406f5e3..123a1969d284 100644 --- a/drivers/gpu/drm/radeon/radeon_asic.c +++ b/drivers/gpu/drm/radeon/radeon_asic.c | |||
@@ -952,6 +952,16 @@ static struct radeon_asic btc_asic = { | |||
952 | .post_page_flip = &evergreen_post_page_flip, | 952 | .post_page_flip = &evergreen_post_page_flip, |
953 | }; | 953 | }; |
954 | 954 | ||
955 | static const struct radeon_vm_funcs cayman_vm_funcs = { | ||
956 | .init = &cayman_vm_init, | ||
957 | .fini = &cayman_vm_fini, | ||
958 | .bind = &cayman_vm_bind, | ||
959 | .unbind = &cayman_vm_unbind, | ||
960 | .tlb_flush = &cayman_vm_tlb_flush, | ||
961 | .page_flags = &cayman_vm_page_flags, | ||
962 | .set_page = &cayman_vm_set_page, | ||
963 | }; | ||
964 | |||
955 | static struct radeon_asic cayman_asic = { | 965 | static struct radeon_asic cayman_asic = { |
956 | .init = &cayman_init, | 966 | .init = &cayman_init, |
957 | .fini = &cayman_fini, | 967 | .fini = &cayman_fini, |
@@ -965,17 +975,20 @@ static struct radeon_asic cayman_asic = { | |||
965 | .ring_test = &r600_ring_test, | 975 | .ring_test = &r600_ring_test, |
966 | .ring = { | 976 | .ring = { |
967 | [RADEON_RING_TYPE_GFX_INDEX] = { | 977 | [RADEON_RING_TYPE_GFX_INDEX] = { |
968 | .ib_execute = &evergreen_ring_ib_execute, | 978 | .ib_execute = &cayman_ring_ib_execute, |
979 | .ib_parse = &evergreen_ib_parse, | ||
969 | .emit_fence = &cayman_fence_ring_emit, | 980 | .emit_fence = &cayman_fence_ring_emit, |
970 | .emit_semaphore = &r600_semaphore_ring_emit, | 981 | .emit_semaphore = &r600_semaphore_ring_emit, |
971 | }, | 982 | }, |
972 | [CAYMAN_RING_TYPE_CP1_INDEX] = { | 983 | [CAYMAN_RING_TYPE_CP1_INDEX] = { |
973 | .ib_execute = &r600_ring_ib_execute, | 984 | .ib_execute = &cayman_ring_ib_execute, |
985 | .ib_parse = &evergreen_ib_parse, | ||
974 | .emit_fence = &cayman_fence_ring_emit, | 986 | .emit_fence = &cayman_fence_ring_emit, |
975 | .emit_semaphore = &r600_semaphore_ring_emit, | 987 | .emit_semaphore = &r600_semaphore_ring_emit, |
976 | }, | 988 | }, |
977 | [CAYMAN_RING_TYPE_CP2_INDEX] = { | 989 | [CAYMAN_RING_TYPE_CP2_INDEX] = { |
978 | .ib_execute = &r600_ring_ib_execute, | 990 | .ib_execute = &cayman_ring_ib_execute, |
991 | .ib_parse = &evergreen_ib_parse, | ||
979 | .emit_fence = &cayman_fence_ring_emit, | 992 | .emit_fence = &cayman_fence_ring_emit, |
980 | .emit_semaphore = &r600_semaphore_ring_emit, | 993 | .emit_semaphore = &r600_semaphore_ring_emit, |
981 | } | 994 | } |
@@ -1128,6 +1141,7 @@ int radeon_asic_init(struct radeon_device *rdev) | |||
1128 | rdev->asic = &cayman_asic; | 1141 | rdev->asic = &cayman_asic; |
1129 | /* set num crtcs */ | 1142 | /* set num crtcs */ |
1130 | rdev->num_crtc = 6; | 1143 | rdev->num_crtc = 6; |
1144 | rdev->vm_manager.funcs = &cayman_vm_funcs; | ||
1131 | break; | 1145 | break; |
1132 | default: | 1146 | default: |
1133 | /* FIXME: not supported yet */ | 1147 | /* FIXME: not supported yet */ |