提交 b995e433 编写于 作者: D Dave Airlie 提交者: Dave Airlie

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: NDave Airlie <airlied@redhat.com>
上级 2a0f8918
...@@ -973,6 +973,11 @@ static int r100_packet0_check(struct radeon_cs_parser *p, ...@@ -973,6 +973,11 @@ static int r100_packet0_check(struct radeon_cs_parser *p,
case R300_TX_OFFSET_0+52: case R300_TX_OFFSET_0+52:
case R300_TX_OFFSET_0+56: case R300_TX_OFFSET_0+56:
case R300_TX_OFFSET_0+60: case R300_TX_OFFSET_0+60:
/* rn50 has no 3D engine so fail on any 3d setup */
if (ASIC_IS_RN50(p->rdev)) {
DRM_ERROR("attempt to use RN50 3D engine failed\n");
return -EINVAL;
}
r = r100_cs_packet_next_reloc(p, &reloc); r = r100_cs_packet_next_reloc(p, &reloc);
if (r) { if (r) {
DRM_ERROR("No reloc for ib[%d]=0x%04X\n", DRM_ERROR("No reloc for ib[%d]=0x%04X\n",
......
...@@ -673,6 +673,8 @@ void r100_pll_errata_after_index(struct radeon_device *rdev); ...@@ -673,6 +673,8 @@ void r100_pll_errata_after_index(struct radeon_device *rdev);
/* /*
* ASICs helpers. * ASICs helpers.
*/ */
#define ASIC_IS_RN50(rdev) ((rdev->pdev->device == 0x515e) || \
(rdev->pdev->device == 0x5969))
#define ASIC_IS_RV100(rdev) ((rdev->family == CHIP_RV100) || \ #define ASIC_IS_RV100(rdev) ((rdev->family == CHIP_RV100) || \
(rdev->family == CHIP_RV200) || \ (rdev->family == CHIP_RV200) || \
(rdev->family == CHIP_RS100) || \ (rdev->family == CHIP_RS100) || \
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册