aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2009-11-05 13:11:46 -0500
committerDave Airlie <airlied@redhat.com>2009-11-05 20:35:18 -0500
commitee59f2b462b0a7d2eb57ae59340d016589fa8e42 (patch)
tree4eb2f5b2ce1a427bff6348899a79641eabe98c67 /drivers
parente29649db3bd5620499bf9bdcd63c5cf12edbd26e (diff)
drm/radeon/kms/r600: fix rs880 support v2
Lots of cases were wrong or missing. v2: rebased against drm-next Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/radeon/r600.c18
-rw-r--r--drivers/gpu/drm/radeon/r600_blit_kms.c2
-rw-r--r--drivers/gpu/drm/radeon/radeon_atombios.c3
3 files changed, 15 insertions, 8 deletions
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index 3e5703f324bd..35360b09df31 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -858,7 +858,8 @@ void r600_gpu_init(struct radeon_device *rdev)
858 ((rdev->family) == CHIP_RV630) || 858 ((rdev->family) == CHIP_RV630) ||
859 ((rdev->family) == CHIP_RV610) || 859 ((rdev->family) == CHIP_RV610) ||
860 ((rdev->family) == CHIP_RV620) || 860 ((rdev->family) == CHIP_RV620) ||
861 ((rdev->family) == CHIP_RS780)) { 861 ((rdev->family) == CHIP_RS780) ||
862 ((rdev->family) == CHIP_RS880)) {
862 WREG32(DB_DEBUG, PREZ_MUST_WAIT_FOR_POSTZ_DONE); 863 WREG32(DB_DEBUG, PREZ_MUST_WAIT_FOR_POSTZ_DONE);
863 } else { 864 } else {
864 WREG32(DB_DEBUG, 0); 865 WREG32(DB_DEBUG, 0);
@@ -875,7 +876,8 @@ void r600_gpu_init(struct radeon_device *rdev)
875 tmp = RREG32(SQ_MS_FIFO_SIZES); 876 tmp = RREG32(SQ_MS_FIFO_SIZES);
876 if (((rdev->family) == CHIP_RV610) || 877 if (((rdev->family) == CHIP_RV610) ||
877 ((rdev->family) == CHIP_RV620) || 878 ((rdev->family) == CHIP_RV620) ||
878 ((rdev->family) == CHIP_RS780)) { 879 ((rdev->family) == CHIP_RS780) ||
880 ((rdev->family) == CHIP_RS880)) {
879 tmp = (CACHE_FIFO_SIZE(0xa) | 881 tmp = (CACHE_FIFO_SIZE(0xa) |
880 FETCH_FIFO_HIWATER(0xa) | 882 FETCH_FIFO_HIWATER(0xa) |
881 DONE_FIFO_HIWATER(0xe0) | 883 DONE_FIFO_HIWATER(0xe0) |
@@ -918,7 +920,8 @@ void r600_gpu_init(struct radeon_device *rdev)
918 NUM_ES_STACK_ENTRIES(0)); 920 NUM_ES_STACK_ENTRIES(0));
919 } else if (((rdev->family) == CHIP_RV610) || 921 } else if (((rdev->family) == CHIP_RV610) ||
920 ((rdev->family) == CHIP_RV620) || 922 ((rdev->family) == CHIP_RV620) ||
921 ((rdev->family) == CHIP_RS780)) { 923 ((rdev->family) == CHIP_RS780) ||
924 ((rdev->family) == CHIP_RS880)) {
922 /* no vertex cache */ 925 /* no vertex cache */
923 sq_config &= ~VC_ENABLE; 926 sq_config &= ~VC_ENABLE;
924 927
@@ -975,7 +978,8 @@ void r600_gpu_init(struct radeon_device *rdev)
975 978
976 if (((rdev->family) == CHIP_RV610) || 979 if (((rdev->family) == CHIP_RV610) ||
977 ((rdev->family) == CHIP_RV620) || 980 ((rdev->family) == CHIP_RV620) ||
978 ((rdev->family) == CHIP_RS780)) { 981 ((rdev->family) == CHIP_RS780) ||
982 ((rdev->family) == CHIP_RS880)) {
979 WREG32(VGT_CACHE_INVALIDATION, CACHE_INVALIDATION(TC_ONLY)); 983 WREG32(VGT_CACHE_INVALIDATION, CACHE_INVALIDATION(TC_ONLY));
980 } else { 984 } else {
981 WREG32(VGT_CACHE_INVALIDATION, CACHE_INVALIDATION(VC_AND_TC)); 985 WREG32(VGT_CACHE_INVALIDATION, CACHE_INVALIDATION(VC_AND_TC));
@@ -1001,8 +1005,9 @@ void r600_gpu_init(struct radeon_device *rdev)
1001 tmp = rdev->config.r600.max_pipes * 16; 1005 tmp = rdev->config.r600.max_pipes * 16;
1002 switch (rdev->family) { 1006 switch (rdev->family) {
1003 case CHIP_RV610: 1007 case CHIP_RV610:
1004 case CHIP_RS780:
1005 case CHIP_RV620: 1008 case CHIP_RV620:
1009 case CHIP_RS780:
1010 case CHIP_RS880:
1006 tmp += 32; 1011 tmp += 32;
1007 break; 1012 break;
1008 case CHIP_RV670: 1013 case CHIP_RV670:
@@ -1043,8 +1048,9 @@ void r600_gpu_init(struct radeon_device *rdev)
1043 1048
1044 switch (rdev->family) { 1049 switch (rdev->family) {
1045 case CHIP_RV610: 1050 case CHIP_RV610:
1046 case CHIP_RS780:
1047 case CHIP_RV620: 1051 case CHIP_RV620:
1052 case CHIP_RS780:
1053 case CHIP_RS880:
1048 tmp = TC_L2_SIZE(8); 1054 tmp = TC_L2_SIZE(8);
1049 break; 1055 break;
1050 case CHIP_RV630: 1056 case CHIP_RV630:
diff --git a/drivers/gpu/drm/radeon/r600_blit_kms.c b/drivers/gpu/drm/radeon/r600_blit_kms.c
index acae33e2ad51..dbf716e1fbf3 100644
--- a/drivers/gpu/drm/radeon/r600_blit_kms.c
+++ b/drivers/gpu/drm/radeon/r600_blit_kms.c
@@ -368,7 +368,7 @@ set_default_state(struct radeon_device *rdev)
368 if ((rdev->family == CHIP_RV610) || 368 if ((rdev->family == CHIP_RV610) ||
369 (rdev->family == CHIP_RV620) || 369 (rdev->family == CHIP_RV620) ||
370 (rdev->family == CHIP_RS780) || 370 (rdev->family == CHIP_RS780) ||
371 (rdev->family == CHIP_RS780) || 371 (rdev->family == CHIP_RS880) ||
372 (rdev->family == CHIP_RV710)) 372 (rdev->family == CHIP_RV710))
373 sq_config = 0; 373 sq_config = 0;
374 else 374 else
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index 1c9a9c461762..050722492b43 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -277,7 +277,8 @@ bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev)
277 ATOM_DEVICE_CV_SUPPORT) 277 ATOM_DEVICE_CV_SUPPORT)
278 continue; 278 continue;
279 279
280 if ((rdev->family == CHIP_RS780) && 280 /* IGP chips */
281 if ((rdev->flags & RADEON_IS_IGP) &&
281 (con_obj_id == 282 (con_obj_id ==
282 CONNECTOR_OBJECT_ID_PCIE_CONNECTOR)) { 283 CONNECTOR_OBJECT_ID_PCIE_CONNECTOR)) {
283 uint16_t igp_offset = 0; 284 uint16_t igp_offset = 0;