diff --git a/src/atombios_output.c b/src/atombios_output.c index eb52f5c..a78bcdb 100644 --- a/src/atombios_output.c +++ b/src/atombios_output.c @@ -619,6 +619,8 @@ atombios_output_scaler_setup(xf86OutputPtr output, DisplayModePtr mode) ENABLE_SCALER_PS_ALLOCATION disp_data; AtomBiosArgRec data; unsigned char *space; + unsigned int saveDataFormat; + unsigned char *RADEONMMIO = info->MMIO; memset(&disp_data, 0, sizeof(disp_data)); @@ -672,10 +674,13 @@ atombios_output_scaler_setup(xf86OutputPtr output, DisplayModePtr mode) data.exec.dataSpace = (void *)&space; data.exec.pspace = &disp_data; + saveDataFormat = INREG(AVIVO_D1MODE_DATA_FORMAT); if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) { + OUTREG(AVIVO_D1MODE_DATA_FORMAT,saveDataFormat); ErrorF("scaler %d setup success\n", radeon_crtc->crtc_id); return ATOM_SUCCESS; } + OUTREG(AVIVO_D1MODE_DATA_FORMAT,saveDataFormat); ErrorF("scaler %d setup failed\n", radeon_crtc->crtc_id); return ATOM_NOT_IMPLEMENTED;