diff --git a/src/atombios_crtc.c b/src/atombios_crtc.c index 3299740..939e5d5 100644 --- a/src/atombios_crtc.c +++ b/src/atombios_crtc.c @@ -1,4 +1,4 @@ - /* +/* * Copyright © 2007 Red Hat, Inc. * Copyright 2007 Advanced Micro Devices, Inc. * @@ -148,6 +148,9 @@ atombios_crtc_dpms(xf86CrtcPtr crtc, int mode) { RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private; RADEONInfoPtr info = RADEONPTR(crtc->scrn); + unsigned char *RADEONMMIO = info->MMIO; + int enabled = INREG(AVIVO_D1CRTC_CONTROL + radeon_crtc->crtc_offset) & AVIVO_CRTC_EN; + switch (mode) { case DPMSModeOn: case DPMSModeStandby: @@ -158,7 +161,8 @@ atombios_crtc_dpms(xf86CrtcPtr crtc, int mode) atombios_blank_crtc(info->atomBIOS, radeon_crtc->crtc_id, 0); break; case DPMSModeOff: - atombios_blank_crtc(info->atomBIOS, radeon_crtc->crtc_id, 1); + if (enabled) + atombios_blank_crtc(info->atomBIOS, radeon_crtc->crtc_id, 1); atombios_enable_crtc(info->atomBIOS, radeon_crtc->crtc_id, 0); if (IS_DCE3_VARIANT) atombios_enable_crtc_memreq(info->atomBIOS, radeon_crtc->crtc_id, 0);