diff options
author | Owain Ainsworth <oga@cvs.openbsd.org> | 2008-11-26 00:11:40 +0000 |
---|---|---|
committer | Owain Ainsworth <oga@cvs.openbsd.org> | 2008-11-26 00:11:40 +0000 |
commit | 00ccc24aadaa9e7a9862fcf5c6c4125afb4ffddb (patch) | |
tree | f9600cb8403c21ede867f72310df91ac4d9a0390 | |
parent | 86cc70dd341402eb2fe570ead93d2bd065bb8d08 (diff) |
Zero the surface when we free them. stops some state problems which cause
corruption on second X start on some machines.
This driver is really quite dumb.
-rw-r--r-- | sys/dev/pci/drm/radeon_cp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/pci/drm/radeon_cp.c b/sys/dev/pci/drm/radeon_cp.c index 0ebf75e429d..c0aee885d47 100644 --- a/sys/dev/pci/drm/radeon_cp.c +++ b/sys/dev/pci/drm/radeon_cp.c @@ -328,7 +328,7 @@ radeon_init_pipes(drm_radeon_private_t *dev_priv) dev_priv->num_gb_pipes = 1; } } - DRM_INFO("Num pipes: %d\n", dev_priv->num_gb_pipes); + DRM_DEBUG("Num pipes: %d\n", dev_priv->num_gb_pipes); gb_tile_config = (R300_ENABLE_TILING | R300_TILE_SIZE_16 /*| R300_SUBPIXEL_1_16*/); @@ -1485,6 +1485,7 @@ radeon_do_release(struct drm_device *dev) RADEON_WRITE(RADEON_SURFACE0_INFO + 16 * i, 0); RADEON_WRITE(RADEON_SURFACE0_LOWER_BOUND + 16 * i, 0); RADEON_WRITE(RADEON_SURFACE0_UPPER_BOUND + 16 * i, 0); + bzero(&dev_priv->surfaces[i], sizeof(struct radeon_surface)); } /* Free memory heap structures */ |