diff options
| author | Dave Airlie <airlied@linux.ie> | 2009-07-13 12:02:32 -0400 |
|---|---|---|
| committer | Dave Airlie <airlied@redhat.com> | 2009-07-15 03:13:21 -0400 |
| commit | b995e4330de0d8b1b8b9e49ce10cc6dc78e2cbba (patch) | |
| tree | db69f325b3a3b109dfd26460adc8295408f73097 | |
| parent | 2a0f8918fc34713ecaeb900ffb9afa61df4cb08e (diff) | |
drm/radeon/kms: block RN50 from using 3D engine.
RN50/ES1000 is a cut-down rv100 chip used in the server market.
The 3D engine on these is either not there or unverified so refuse
any attempt to configure registers on it.
Signed-off-by: Dave Airlie <airlied@redhat.com>
| -rw-r--r-- | drivers/gpu/drm/radeon/r100.c | 5 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon.h | 2 |
2 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c index 97c9229b929..0d05909f03f 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c | |||
| @@ -973,6 +973,11 @@ static int r100_packet0_check(struct radeon_cs_parser *p, | |||
| 973 | case R300_TX_OFFSET_0+52: | 973 | case R300_TX_OFFSET_0+52: |
| 974 | case R300_TX_OFFSET_0+56: | 974 | case R300_TX_OFFSET_0+56: |
| 975 | case R300_TX_OFFSET_0+60: | 975 | case R300_TX_OFFSET_0+60: |
| 976 | /* rn50 has no 3D engine so fail on any 3d setup */ | ||
| 977 | if (ASIC_IS_RN50(p->rdev)) { | ||
| 978 | DRM_ERROR("attempt to use RN50 3D engine failed\n"); | ||
| 979 | return -EINVAL; | ||
| 980 | } | ||
| 976 | r = r100_cs_packet_next_reloc(p, &reloc); | 981 | r = r100_cs_packet_next_reloc(p, &reloc); |
| 977 | if (r) { | 982 | if (r) { |
| 978 | DRM_ERROR("No reloc for ib[%d]=0x%04X\n", | 983 | DRM_ERROR("No reloc for ib[%d]=0x%04X\n", |
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index 248e3341a98..7f007185e7f 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
| @@ -673,6 +673,8 @@ void r100_pll_errata_after_index(struct radeon_device *rdev); | |||
| 673 | /* | 673 | /* |
| 674 | * ASICs helpers. | 674 | * ASICs helpers. |
| 675 | */ | 675 | */ |
| 676 | #define ASIC_IS_RN50(rdev) ((rdev->pdev->device == 0x515e) || \ | ||
| 677 | (rdev->pdev->device == 0x5969)) | ||
| 676 | #define ASIC_IS_RV100(rdev) ((rdev->family == CHIP_RV100) || \ | 678 | #define ASIC_IS_RV100(rdev) ((rdev->family == CHIP_RV100) || \ |
| 677 | (rdev->family == CHIP_RV200) || \ | 679 | (rdev->family == CHIP_RV200) || \ |
| 678 | (rdev->family == CHIP_RS100) || \ | 680 | (rdev->family == CHIP_RS100) || \ |
