xf86-video-ati: Branch 'master' - 2 commits

Alex Deucher agd5f at kemper.freedesktop.org
Sat Mar 14 15:43:10 PDT 2009


 src/atombios_output.c |   24 ----
 src/radeon_output.c   |  250 +++++++++++++++++++++++++-------------------------
 2 files changed, 126 insertions(+), 148 deletions(-)

New commits:
commit a065eeb9b301ab452cc8fbd3cac1fd9a3841c4e1
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Sat Mar 14 18:40:28 2009 -0400

    atom: fix up bios scartch register usage
    
    the bios scratch registers keep 3 types of state for each output:
    1. dpms
    2. active
    3. connected
    
    some of the command tables use the active flags.  We used to set the active
    flags based on dpms state, but instead set them based on whether they are
    connected or not.

diff --git a/src/atombios_output.c b/src/atombios_output.c
index 130ab93..70e716c 100644
--- a/src/atombios_output.c
+++ b/src/atombios_output.c
@@ -1019,30 +1019,11 @@ static void atom_rv515_force_tv_scaler(ScrnInfoPtr pScrn)
 static int
 atombios_output_yuv_setup(xf86OutputPtr output, Bool enable)
 {
-    RADEONOutputPrivatePtr radeon_output = output->driver_private;
     RADEONInfoPtr info       = RADEONPTR(output->scrn);
     RADEONCrtcPrivatePtr radeon_crtc = output->crtc->driver_private;
     ENABLE_YUV_PS_ALLOCATION disp_data;
     AtomBiosArgRec data;
     unsigned char *space;
-    unsigned char *RADEONMMIO = info->MMIO;
-    uint32_t temp, reg;
-
-    if (info->ChipFamily >= CHIP_FAMILY_R600)
-	reg = R600_BIOS_3_SCRATCH;
-    else
-	reg = RADEON_BIOS_3_SCRATCH;
-
-    //fix up scratch reg handling
-    temp = INREG(reg);
-    if (radeon_output->active_device & (ATOM_DEVICE_TV_SUPPORT))
-	OUTREG(reg, (ATOM_S3_TV1_ACTIVE |
-		     (radeon_crtc->crtc_id << 18)));
-    else if (radeon_output->active_device & (ATOM_DEVICE_CV_SUPPORT))
-	OUTREG(reg, (ATOM_S3_CV_ACTIVE |
-		     (radeon_crtc->crtc_id << 24)));
-    else
-	OUTREG(reg, 0);
 
     memset(&disp_data, 0, sizeof(disp_data));
 
@@ -1055,15 +1036,10 @@ atombios_output_yuv_setup(xf86OutputPtr output, Bool enable)
     data.exec.pspace = &disp_data;
 
     if (RHDAtomBiosFunc(info->atomBIOS->scrnIndex, info->atomBIOS, ATOMBIOS_EXEC, &data) == ATOM_SUCCESS) {
-
-	OUTREG(reg, temp);
-
 	ErrorF("crtc %d YUV %s setup success\n", radeon_crtc->crtc_id, enable ? "enable" : "disable");
 	return ATOM_SUCCESS;
     }
 
-    OUTREG(reg, temp);
-
     ErrorF("crtc %d YUV %s setup failed\n", radeon_crtc->crtc_id, enable ? "enable" : "disable");
     return ATOM_NOT_IMPLEMENTED;
 
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 620434e..3931db4 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -631,93 +631,60 @@ radeon_bios_output_dpms(xf86OutputPtr output, int mode)
 
     if (info->IsAtomBios) {
 	if (radeon_output->active_device & ATOM_DEVICE_TV1_SUPPORT) {
-	    if (mode == DPMSModeOn) {
+	    if (mode == DPMSModeOn)
 		save->bios_2_scratch &= ~ATOM_S2_TV1_DPMS_STATE;
-		save->bios_3_scratch |= ATOM_S3_TV1_ACTIVE;
-	    } else {
+	    else
 		save->bios_2_scratch |= ATOM_S2_TV1_DPMS_STATE;
-		save->bios_3_scratch &= ~ATOM_S3_TV1_ACTIVE;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_CV_SUPPORT) {
-	    if (mode == DPMSModeOn) {
+	    if (mode == DPMSModeOn)
 		save->bios_2_scratch &= ~ATOM_S2_CV_DPMS_STATE;
-		save->bios_3_scratch |= ATOM_S3_CV_ACTIVE;
-	    } else {
+	    else
 		save->bios_2_scratch |= ATOM_S2_CV_DPMS_STATE;
-		save->bios_3_scratch &= ~ATOM_S3_CV_ACTIVE;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_CRT1_SUPPORT) {
-	    if (mode == DPMSModeOn) {
+	    if (mode == DPMSModeOn)
 		save->bios_2_scratch &= ~ATOM_S2_CRT1_DPMS_STATE;
-		save->bios_3_scratch |= ATOM_S3_CRT1_ACTIVE;
-	    } else {
+	    else
 		save->bios_2_scratch |= ATOM_S2_CRT1_DPMS_STATE;
-		save->bios_3_scratch &= ~ATOM_S3_CRT1_ACTIVE;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_CRT2_SUPPORT) {
-	    if (mode == DPMSModeOn) {
+	    if (mode == DPMSModeOn)
 		save->bios_2_scratch &= ~ATOM_S2_CRT2_DPMS_STATE;
-		save->bios_3_scratch |= ATOM_S3_CRT2_ACTIVE;
-	    } else {
+	    else
 		save->bios_2_scratch |= ATOM_S2_CRT2_DPMS_STATE;
-		save->bios_3_scratch &= ~ATOM_S3_CRT2_ACTIVE;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_LCD1_SUPPORT) {
-	    if (mode == DPMSModeOn) {
+	    if (mode == DPMSModeOn)
 		save->bios_2_scratch &= ~ATOM_S2_LCD1_DPMS_STATE;
-		save->bios_3_scratch |= ATOM_S3_LCD1_ACTIVE;
-	    } else {
+	    else
 		save->bios_2_scratch |= ATOM_S2_LCD1_DPMS_STATE;
-		save->bios_3_scratch &= ~ATOM_S3_LCD1_ACTIVE;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_DFP1_SUPPORT) {
-	    if (mode == DPMSModeOn) {
+	    if (mode == DPMSModeOn)
 		save->bios_2_scratch &= ~ATOM_S2_DFP1_DPMS_STATE;
-		save->bios_3_scratch |= ATOM_S3_DFP1_ACTIVE;
-	    } else {
+	    else
 		save->bios_2_scratch |= ATOM_S2_DFP1_DPMS_STATE;
-		save->bios_3_scratch &= ~ATOM_S3_DFP1_ACTIVE;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_DFP2_SUPPORT) {
-	    if (mode == DPMSModeOn) {
+	    if (mode == DPMSModeOn)
 		save->bios_2_scratch &= ~ATOM_S2_DFP2_DPMS_STATE;
-		save->bios_3_scratch |= ATOM_S3_DFP2_ACTIVE;
-	    } else {
+	    else
 		save->bios_2_scratch |= ATOM_S2_DFP2_DPMS_STATE;
-		save->bios_3_scratch &= ~ATOM_S3_DFP2_ACTIVE;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_DFP3_SUPPORT) {
-	    if (mode == DPMSModeOn) {
+	    if (mode == DPMSModeOn)
 		save->bios_2_scratch &= ~ATOM_S2_DFP3_DPMS_STATE;
-		save->bios_3_scratch |= ATOM_S3_DFP3_ACTIVE;
-	    } else {
+	    else
 		save->bios_2_scratch |= ATOM_S2_DFP3_DPMS_STATE;
-		save->bios_3_scratch &= ~ATOM_S3_DFP3_ACTIVE;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_DFP4_SUPPORT) {
-	    if (mode == DPMSModeOn) {
+	    if (mode == DPMSModeOn)
 		save->bios_2_scratch &= ~ATOM_S2_DFP4_DPMS_STATE;
-		save->bios_3_scratch |= ATOM_S3_DFP4_ACTIVE;
-	    } else {
+	    else
 		save->bios_2_scratch |= ATOM_S2_DFP4_DPMS_STATE;
-		save->bios_3_scratch &= ~ATOM_S3_DFP4_ACTIVE;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_DFP5_SUPPORT) {
-	    if (mode == DPMSModeOn) {
+	    if (mode == DPMSModeOn)
 		save->bios_2_scratch &= ~ATOM_S2_DFP5_DPMS_STATE;
-		save->bios_3_scratch |= ATOM_S3_DFP5_ACTIVE;
-	    } else {
+	    else
 		save->bios_2_scratch |= ATOM_S2_DFP5_DPMS_STATE;
-		save->bios_3_scratch &= ~ATOM_S3_DFP5_ACTIVE;
-	    }
 	}
-	if (info->ChipFamily >= CHIP_FAMILY_R600) {
+	if (info->ChipFamily >= CHIP_FAMILY_R600)
 	    OUTREG(R600_BIOS_2_SCRATCH, save->bios_2_scratch);
-	    OUTREG(R600_BIOS_3_SCRATCH, save->bios_3_scratch);
-	} else {
+	else
 	    OUTREG(RADEON_BIOS_2_SCRATCH, save->bios_2_scratch);
-	    OUTREG(RADEON_BIOS_3_SCRATCH, save->bios_3_scratch);
-	}
     } else {
 	if (mode == DPMSModeOn) {
 	    save->bios_6_scratch &= ~(RADEON_DPMS_MASK | RADEON_SCREEN_BLANKING);
@@ -727,55 +694,36 @@ radeon_bios_output_dpms(xf86OutputPtr output, int mode)
 	    save->bios_6_scratch |= (RADEON_DPMS_OFF | RADEON_SCREEN_BLANKING);
 	}
 	if (radeon_output->active_device & ATOM_DEVICE_TV1_SUPPORT) {
-	    if (mode == DPMSModeOn) {
-		save->bios_5_scratch |= RADEON_TV1_ON;
+	    if (mode == DPMSModeOn)
 		save->bios_6_scratch |= RADEON_TV_DPMS_ON;
-	    } else {
-		save->bios_5_scratch &= ~RADEON_TV1_ON;
+	    else
 		save->bios_6_scratch &= ~RADEON_TV_DPMS_ON;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_CRT1_SUPPORT) {
-	    if (mode == DPMSModeOn) {
-		save->bios_5_scratch |= RADEON_CRT1_ON;
+	    if (mode == DPMSModeOn)
 		save->bios_6_scratch |= RADEON_CRT_DPMS_ON;
-	    } else {
-		save->bios_5_scratch &= ~RADEON_CRT1_ON;
+	    else
 		save->bios_6_scratch &= ~RADEON_CRT_DPMS_ON;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_CRT2_SUPPORT) {
-	    if (mode == DPMSModeOn) {
-		save->bios_5_scratch |= RADEON_CRT2_ON;
+	    if (mode == DPMSModeOn)
 		save->bios_6_scratch |= RADEON_CRT_DPMS_ON;
-	    } else {
-		save->bios_5_scratch &= ~RADEON_CRT2_ON;
+	    else
 		save->bios_6_scratch &= ~RADEON_CRT_DPMS_ON;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_LCD1_SUPPORT) {
-	    if (mode == DPMSModeOn) {
-		save->bios_5_scratch |= RADEON_LCD1_ON;
+	    if (mode == DPMSModeOn)
 		save->bios_6_scratch |= RADEON_LCD_DPMS_ON;
-	    } else {
-		save->bios_5_scratch &= ~RADEON_LCD1_ON;
+	    else
 		save->bios_6_scratch &= ~RADEON_LCD_DPMS_ON;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_DFP1_SUPPORT) {
-	    if (mode == DPMSModeOn) {
-		save->bios_5_scratch |= RADEON_DFP1_ON;
+	    if (mode == DPMSModeOn)
 		save->bios_6_scratch |= RADEON_DFP_DPMS_ON;
-	    } else {
-		save->bios_5_scratch &= ~RADEON_DFP1_ON;
+	    else
 		save->bios_6_scratch &= ~RADEON_DFP_DPMS_ON;
-	    }
 	} else if (radeon_output->active_device & ATOM_DEVICE_DFP2_SUPPORT) {
-	    if (mode == DPMSModeOn) {
-		save->bios_5_scratch |= RADEON_DFP2_ON;
+	    if (mode == DPMSModeOn)
 		save->bios_6_scratch |= RADEON_DFP_DPMS_ON;
-	    } else {
-		save->bios_5_scratch &= ~RADEON_DFP2_ON;
+	    else
 		save->bios_6_scratch &= ~RADEON_DFP_DPMS_ON;
-	    }
 	}
-	OUTREG(RADEON_BIOS_5_SCRATCH, save->bios_5_scratch);
 	OUTREG(RADEON_BIOS_6_SCRATCH, save->bios_6_scratch);
     }
 }
@@ -857,66 +805,101 @@ radeon_bios_output_connected(xf86OutputPtr output, Bool connected)
     if (info->IsAtomBios) {
 	switch (radeon_output->active_device) {
 	case ATOM_DEVICE_TV1_SUPPORT:
-	    if (!connected)
+	    if (connected)
+		save->bios_3_scratch |= ATOM_S3_TV1_ACTIVE;
+	    else {
 		save->bios_0_scratch &= ~ATOM_S0_TV1_MASK;
+		save->bios_3_scratch &= ~ATOM_S3_TV1_ACTIVE;
+	    }
 	    break;
 	case ATOM_DEVICE_CV_SUPPORT:
-	    if (!connected)
+	    if (connected)
+		save->bios_3_scratch |= ATOM_S3_CV_ACTIVE;
+	    else {
 		save->bios_0_scratch &= ~ATOM_S0_CV_MASK;
+		save->bios_3_scratch &= ~ATOM_S3_CV_ACTIVE;
+	    }
 	    break;
 	case ATOM_DEVICE_LCD1_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_0_scratch |= ATOM_S0_LCD1;
-	    else
+		save->bios_3_scratch |= ATOM_S3_LCD1_ACTIVE;
+	    } else {
 		save->bios_0_scratch &= ~ATOM_S0_LCD1;
+		save->bios_3_scratch &= ~ATOM_S3_LCD1_ACTIVE;
+	    }
 	    break;
 	case ATOM_DEVICE_CRT1_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_0_scratch |= ATOM_S0_CRT1_COLOR;
-	    else
+		save->bios_3_scratch |= ATOM_S3_CRT1_ACTIVE;
+	    } else {
 		save->bios_0_scratch &= ~ATOM_S0_CRT1_MASK;
+		save->bios_3_scratch &= ~ATOM_S3_CRT1_ACTIVE;
+	    }
 	    break;
 	case ATOM_DEVICE_CRT2_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_0_scratch |= ATOM_S0_CRT2_COLOR;
-	    else
+		save->bios_3_scratch |= ATOM_S3_CRT2_ACTIVE;
+	    } else {
 		save->bios_0_scratch &= ~ATOM_S0_CRT2_MASK;
+		save->bios_3_scratch &= ~ATOM_S3_CRT2_ACTIVE;
+	    }
 	    break;
 	case ATOM_DEVICE_DFP1_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_0_scratch |= ATOM_S0_DFP1;
-	    else
+		save->bios_3_scratch |= ATOM_S3_DFP1_ACTIVE;
+	    } else {
 		save->bios_0_scratch &= ~ATOM_S0_DFP1;
+		save->bios_3_scratch &= ~ATOM_S3_DFP1_ACTIVE;
+	    }
 	    break;
 	case ATOM_DEVICE_DFP2_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_0_scratch |= ATOM_S0_DFP2;
-	    else
+		save->bios_3_scratch |= ATOM_S3_DFP2_ACTIVE;
+	    } else {
 		save->bios_0_scratch &= ~ATOM_S0_DFP2;
+		save->bios_3_scratch &= ~ATOM_S3_DFP2_ACTIVE;
+	    }
 	    break;
 	case ATOM_DEVICE_DFP3_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_0_scratch |= ATOM_S0_DFP3;
-	    else
+		save->bios_3_scratch |= ATOM_S3_DFP3_ACTIVE;
+	    } else {
 		save->bios_0_scratch &= ~ATOM_S0_DFP3;
+		save->bios_3_scratch &= ~ATOM_S3_DFP3_ACTIVE;
+	    }
 	    break;
 	case ATOM_DEVICE_DFP4_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_0_scratch |= ATOM_S0_DFP4;
-	    else
+		save->bios_3_scratch |= ATOM_S3_DFP4_ACTIVE;
+	    } else {
 		save->bios_0_scratch &= ~ATOM_S0_DFP4;
+		save->bios_3_scratch &= ~ATOM_S3_DFP4_ACTIVE;
+	    }
 	    break;
 	case ATOM_DEVICE_DFP5_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_0_scratch |= ATOM_S0_DFP5;
-	    else
+		save->bios_3_scratch |= ATOM_S3_DFP5_ACTIVE;
+	    } else {
 		save->bios_0_scratch &= ~ATOM_S0_DFP5;
+		save->bios_3_scratch &= ~ATOM_S3_DFP5_ACTIVE;
+	    }
 	    break;
 	}
-	if (info->ChipFamily >= CHIP_FAMILY_R600)
+	if (info->ChipFamily >= CHIP_FAMILY_R600) {
 	    OUTREG(R600_BIOS_0_SCRATCH, save->bios_0_scratch);
-	else
+	    OUTREG(R600_BIOS_3_SCRATCH, save->bios_3_scratch);
+	} else {
 	    OUTREG(RADEON_BIOS_0_SCRATCH, save->bios_0_scratch);
+	    OUTREG(RADEON_BIOS_3_SCRATCH, save->bios_3_scratch);
+	}
     } else {
 	switch (radeon_output->active_device) {
 	case ATOM_DEVICE_TV1_SUPPORT:
@@ -925,41 +908,60 @@ radeon_bios_output_connected(xf86OutputPtr output, Bool connected)
 		    save->bios_4_scratch |= RADEON_TV1_ATTACHED_SVIDEO;
 		else if (radeon_output->MonType == MT_CTV)
 		    save->bios_4_scratch |= RADEON_TV1_ATTACHED_COMP;
-	    } else
+		save->bios_5_scratch |= RADEON_TV1_ON;
+	    } else {
 		save->bios_4_scratch &= ~RADEON_TV1_ATTACHED_MASK;
+		save->bios_5_scratch &= ~RADEON_TV1_ON;
+	    }
 	    break;
 	case ATOM_DEVICE_LCD1_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_4_scratch |= RADEON_LCD1_ATTACHED;
-	    else
+		save->bios_5_scratch |= RADEON_LCD1_ON;
+	    } else {
 		save->bios_4_scratch &= ~RADEON_LCD1_ATTACHED;
+		save->bios_5_scratch &= ~RADEON_LCD1_ON;
+	    }
 	    break;
 	case ATOM_DEVICE_CRT1_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_4_scratch |= RADEON_CRT1_ATTACHED_COLOR;
-	    else
+		save->bios_5_scratch |= RADEON_CRT1_ON;
+	    } else {
 		save->bios_4_scratch &= ~RADEON_CRT1_ATTACHED_MASK;
+		save->bios_5_scratch &= ~RADEON_CRT1_ON;
+	    }
 	    break;
 	case ATOM_DEVICE_CRT2_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_4_scratch |= RADEON_CRT2_ATTACHED_COLOR;
-	    else
+		save->bios_5_scratch |= RADEON_CRT2_ON;
+	    } else {
 		save->bios_4_scratch &= ~RADEON_CRT2_ATTACHED_MASK;
+		save->bios_5_scratch &= ~RADEON_CRT2_ON;
+	    }
 	    break;
 	case ATOM_DEVICE_DFP1_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_4_scratch |= RADEON_DFP1_ATTACHED;
-	    else
+		save->bios_5_scratch |= RADEON_DFP1_ON;
+	    } else {
 		save->bios_4_scratch &= ~RADEON_DFP1_ATTACHED;
+		save->bios_5_scratch &= ~RADEON_DFP1_ON;
+	    }
 	    break;
 	case ATOM_DEVICE_DFP2_SUPPORT:
-	    if (connected)
+	    if (connected) {
 		save->bios_4_scratch |= RADEON_DFP2_ATTACHED;
-	    else
+		save->bios_5_scratch |= RADEON_DFP2_ON;
+	    } else {
 		save->bios_4_scratch &= ~RADEON_DFP2_ATTACHED;
+		save->bios_5_scratch &= ~RADEON_DFP2_ON;
+	    }
 	    break;
 	}
 	OUTREG(RADEON_BIOS_4_SCRATCH, save->bios_4_scratch);
+	OUTREG(RADEON_BIOS_5_SCRATCH, save->bios_5_scratch);
     }
 
 }
commit 5c4ef924d082fd3b279f62fda7a97f563b009d38
Author: Alex Deucher <alexdeucher at gmail.com>
Date:   Sat Mar 14 18:16:49 2009 -0400

    radeon: fix typo in bios scratch reg setup

diff --git a/src/radeon_output.c b/src/radeon_output.c
index aab88fb..620434e 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -796,25 +796,25 @@ radeon_bios_output_crtc(xf86OutputPtr output)
 	    save->bios_3_scratch &= ~ATOM_S3_TV1_CRTC_ACTIVE;
 	    save->bios_3_scratch |= (radeon_crtc->crtc_id << 18);
 	} else if (radeon_output->active_device & ATOM_DEVICE_CV_SUPPORT) {
-	    save->bios_2_scratch &= ~ATOM_S3_CV_CRTC_ACTIVE;
+	    save->bios_3_scratch &= ~ATOM_S3_CV_CRTC_ACTIVE;
 	    save->bios_3_scratch |= (radeon_crtc->crtc_id << 24);
 	} else if (radeon_output->active_device & ATOM_DEVICE_CRT1_SUPPORT) {
-	    save->bios_2_scratch &= ~ATOM_S3_CRT1_CRTC_ACTIVE;
+	    save->bios_3_scratch &= ~ATOM_S3_CRT1_CRTC_ACTIVE;
 	    save->bios_3_scratch |= (radeon_crtc->crtc_id << 16);
 	} else if (radeon_output->active_device & ATOM_DEVICE_CRT2_SUPPORT) {
-	    save->bios_2_scratch &= ~ATOM_S3_CRT2_CRTC_ACTIVE;
+	    save->bios_3_scratch &= ~ATOM_S3_CRT2_CRTC_ACTIVE;
 	    save->bios_3_scratch |= (radeon_crtc->crtc_id << 20);
 	} else if (radeon_output->active_device & ATOM_DEVICE_LCD1_SUPPORT) {
-	    save->bios_2_scratch &= ~ATOM_S3_LCD1_CRTC_ACTIVE;
+	    save->bios_3_scratch &= ~ATOM_S3_LCD1_CRTC_ACTIVE;
 	    save->bios_3_scratch |= (radeon_crtc->crtc_id << 17);
 	} else if (radeon_output->active_device & ATOM_DEVICE_DFP1_SUPPORT) {
-	    save->bios_2_scratch &= ~ATOM_S3_DFP1_CRTC_ACTIVE;
+	    save->bios_3_scratch &= ~ATOM_S3_DFP1_CRTC_ACTIVE;
 	    save->bios_3_scratch |= (radeon_crtc->crtc_id << 19);
 	} else if (radeon_output->active_device & ATOM_DEVICE_DFP2_SUPPORT) {
-	    save->bios_2_scratch &= ~ATOM_S3_DFP2_CRTC_ACTIVE;
+	    save->bios_3_scratch &= ~ATOM_S3_DFP2_CRTC_ACTIVE;
 	    save->bios_3_scratch |= (radeon_crtc->crtc_id << 23);
 	} else if (radeon_output->active_device & ATOM_DEVICE_DFP3_SUPPORT) {
-	    save->bios_2_scratch &= ~ATOM_S3_DFP3_CRTC_ACTIVE;
+	    save->bios_3_scratch &= ~ATOM_S3_DFP3_CRTC_ACTIVE;
 	    save->bios_3_scratch |= (radeon_crtc->crtc_id << 25);
 	}
 	if (info->ChipFamily >= CHIP_FAMILY_R600)


More information about the xorg-commit mailing list