summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/radeon_cp.c9
-rw-r--r--linux/radeon_drv.h6
2 files changed, 13 insertions, 2 deletions
diff --git a/linux/radeon_cp.c b/linux/radeon_cp.c
index c255a3e0..f8d8c2ea 100644
--- a/linux/radeon_cp.c
+++ b/linux/radeon_cp.c
@@ -520,8 +520,13 @@ static int radeon_do_engine_reset( drm_device_t *dev )
clock_cntl_index = RADEON_READ( RADEON_CLOCK_CNTL_INDEX );
mclk_cntl = RADEON_READ_PLL( dev, RADEON_MCLK_CNTL );
- /* FIXME: remove magic number here and in radeon ddx driver!!! */
- RADEON_WRITE_PLL( RADEON_MCLK_CNTL, mclk_cntl | 0x003f00000 );
+ RADEON_WRITE_PLL( RADEON_MCLK_CNTL, ( mclk_cntl |
+ RADEON_FORCEON_MCLKA |
+ RADEON_FORCEON_MCLKB |
+ RADEON_FORCEON_YCLKA |
+ RADEON_FORCEON_YCLKB |
+ RADEON_FORCEON_MC |
+ RADEON_FORCEON_AIC ) );
rbbm_soft_reset = RADEON_READ( RADEON_RBBM_SOFT_RESET );
diff --git a/linux/radeon_drv.h b/linux/radeon_drv.h
index ee5e113b..ca349c2c 100644
--- a/linux/radeon_drv.h
+++ b/linux/radeon_drv.h
@@ -254,6 +254,12 @@ extern int radeon_cp_indirect( struct inode *inode, struct file *filp,
#define RADEON_MC_AGP_LOCATION 0x014c
#define RADEON_MC_FB_LOCATION 0x0148
#define RADEON_MCLK_CNTL 0x0012
+# define RADEON_FORCEON_MCLKA (1 << 16)
+# define RADEON_FORCEON_MCLKB (1 << 17)
+# define RADEON_FORCEON_YCLKA (1 << 18)
+# define RADEON_FORCEON_YCLKB (1 << 19)
+# define RADEON_FORCEON_MC (1 << 20)
+# define RADEON_FORCEON_AIC (1 << 21)
#define RADEON_PP_BORDER_COLOR_0 0x1d40
#define RADEON_PP_BORDER_COLOR_1 0x1d44