diff options
| author | Alex Deucher <alexdeucher@gmail.com> | 2009-11-05 13:11:46 -0500 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2009-11-05 20:35:18 -0500 |
| commit | ee59f2b462b0a7d2eb57ae59340d016589fa8e42 (patch) | |
| tree | 4eb2f5b2ce1a427bff6348899a79641eabe98c67 | |
| parent | e29649db3bd5620499bf9bdcd63c5cf12edbd26e (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>
| -rw-r--r-- | drivers/gpu/drm/radeon/r600.c | 18 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/r600_blit_kms.c | 2 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_atombios.c | 3 |
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; |
