diff options
-rw-r--r-- | linux/radeon_cp.c | 9 | ||||
-rw-r--r-- | linux/radeon_drv.h | 6 |
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 |