summaryrefslogtreecommitdiffstats
path: root/sys/dev/drm/radeon_cp.c
diff options
context:
space:
mode:
authorrnoland <rnoland@FreeBSD.org>2008-10-27 21:24:34 +0000
committerrnoland <rnoland@FreeBSD.org>2008-10-27 21:24:34 +0000
commitae1f87d8c5fb6a2025e480e673b2cffb04f8da75 (patch)
tree4db8e57ce9ab4d606564a390e44b7dc332418f0c /sys/dev/drm/radeon_cp.c
parentfd02193a4eb36f2e89e1e20e636970d57b99bb9b (diff)
downloadFreeBSD-src-ae1f87d8c5fb6a2025e480e673b2cffb04f8da75.zip
FreeBSD-src-ae1f87d8c5fb6a2025e480e673b2cffb04f8da75.tar.gz
Fix error in busmaster enable logic
rs400/rs480 should clear the RADEON_BUS_MASTER_DIS bit. This should get the rs485 IGP chips going again. Approved by: jhb (mentor) Obtained from: drm git master
Diffstat (limited to 'sys/dev/drm/radeon_cp.c')
-rw-r--r--sys/dev/drm/radeon_cp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/drm/radeon_cp.c b/sys/dev/drm/radeon_cp.c
index 30a0f77..f0cc7f6 100644
--- a/sys/dev/drm/radeon_cp.c
+++ b/sys/dev/drm/radeon_cp.c
@@ -660,8 +660,10 @@ static void radeon_cp_init_ring_buffer(struct drm_device * dev,
/* rs600/rs690/rs740 */
tmp = RADEON_READ(RADEON_BUS_CNTL) & ~RS600_BUS_MASTER_DIS;
RADEON_WRITE(RADEON_BUS_CNTL, tmp);
- } else if (!(((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RV380) ||
- ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_R423))) {
+ } else if (((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV350) ||
+ ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_R420) ||
+ ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS400) ||
+ ((dev_priv->flags & RADEON_FAMILY_MASK) == CHIP_RS480)) {
/* r1xx, r2xx, r300, r(v)350, r420/r481, rs400/rs480 */
tmp = RADEON_READ(RADEON_BUS_CNTL) & ~RADEON_BUS_MASTER_DIS;
RADEON_WRITE(RADEON_BUS_CNTL, tmp);
OpenPOWER on IntegriCloud