drm/radeon/kms: add sanity check to wptr.
authorDave Airlie <airlied@redhat.com>
Wed, 31 Mar 2010 03:38:56 +0000 (13:38 +1000)
committerDave Airlie <airlied@redhat.com>
Thu, 1 Apr 2010 02:50:19 +0000 (12:50 +1000)
If we resume in a bad way, we'll get 0xffffffff in wptr, and then
oops with no console. This just adds a sanity check so that we can
avoid the oops and hopefully get more details out of people's systems.

Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/radeon/r100.c

index 138ddd49dfc5cbb6033456449be3291ae3d3bc83..c8f4b0300b7051ffbadf102afec723d02e9aedac 100644 (file)
@@ -744,6 +744,8 @@ int r100_cp_init(struct radeon_device *rdev, unsigned ring_size)
        udelay(10);
        rdev->cp.rptr = RREG32(RADEON_CP_RB_RPTR);
        rdev->cp.wptr = RREG32(RADEON_CP_RB_WPTR);
+       /* protect against crazy HW on resume */
+       rdev->cp.wptr &= rdev->cp.ptr_mask;
        /* Set cp mode to bus mastering & enable cp*/
        WREG32(RADEON_CP_CSQ_MODE,
               REG_SET(RADEON_INDIRECT2_START, indirect2_start) |