diff options
author | Dave Airlie <airlied@redhat.com> | 2009-09-18 14:29:32 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-09-18 14:29:32 +1000 |
commit | 52279251fae9df99c569c16e2522bbd346d8ec38 (patch) | |
tree | dfad5936a0c623e1fa26ab92d13ff2497dd72913 | |
parent | 2c46bafcb77c4125a27c18ad6ca2f6de5f143a2d (diff) |
avivo: disable VGA rendering core when starting X.
this thing can be rendering to VRAM when we don't expect it.
turn it off.
Signed-off-by: Dave Airlie <airlied@redhat.com>
-rw-r--r-- | src/radeon_driver.c | 6 | ||||
-rw-r--r-- | src/radeon_probe.h | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/src/radeon_driver.c b/src/radeon_driver.c index 67fb9b73..2de682ff 100644 --- a/src/radeon_driver.c +++ b/src/radeon_driver.c @@ -3849,6 +3849,9 @@ void RADEONRestoreMemMapRegisters(ScrnInfoPtr pScrn, RADEONWaitForIdleMMIO(pScrn); + /* disable VGA rendering core */ + OUTREG(AVIVO_VGA_RENDER_CONTROL, INREG(AVIVO_VGA_RENDER_CONTROL) &~ AVIVO_VGA_VSTATUS_CNTL_MASK); + OUTREG(AVIVO_D1VGA_CONTROL, INREG(AVIVO_D1VGA_CONTROL) & ~AVIVO_DVGA_CONTROL_MODE_ENABLE); OUTREG(AVIVO_D2VGA_CONTROL, INREG(AVIVO_D2VGA_CONTROL) & ~AVIVO_DVGA_CONTROL_MODE_ENABLE); @@ -4327,6 +4330,7 @@ avivo_save(ScrnInfoPtr pScrn, RADEONSavePtr save) // state->vga_fb_start = INREG(AVIVO_VGA_FB_START); state->vga1_cntl = INREG(AVIVO_D1VGA_CONTROL); state->vga2_cntl = INREG(AVIVO_D2VGA_CONTROL); + state->vga_render_control = INREG(AVIVO_VGA_RENDER_CONTROL); state->crtc_master_en = INREG(AVIVO_DC_CRTC_MASTER_EN); state->crtc_tv_control = INREG(AVIVO_DC_CRTC_TV_CONTROL); @@ -5061,6 +5065,7 @@ avivo_restore(ScrnInfoPtr pScrn, RADEONSavePtr restore) OUTREG(AVIVO_D2CRTC_BLANK_CONTROL, state->crtc2.blank_control); /* Dbl check */ + OUTREG(AVIVO_VGA_RENDER_CONTROL, state->vga_render_control); OUTREG(AVIVO_D1VGA_CONTROL, state->vga1_cntl); OUTREG(AVIVO_D2VGA_CONTROL, state->vga2_cntl); @@ -5073,6 +5078,7 @@ static void avivo_restore_vga_regs(ScrnInfoPtr pScrn, RADEONSavePtr restore) unsigned char *RADEONMMIO = info->MMIO; struct avivo_state *state = &restore->avivo; + OUTREG(AVIVO_VGA_RENDER_CONTROL, state->vga_render_control); OUTREG(AVIVO_D1VGA_CONTROL, state->vga1_cntl); OUTREG(AVIVO_D2VGA_CONTROL, state->vga2_cntl); } diff --git a/src/radeon_probe.h b/src/radeon_probe.h index 9cac15c5..9b2cd704 100644 --- a/src/radeon_probe.h +++ b/src/radeon_probe.h @@ -341,6 +341,7 @@ struct avivo_state uint32_t vga1_cntl; uint32_t vga2_cntl; + uint32_t vga_render_control; uint32_t crtc_master_en; uint32_t crtc_tv_control; |