summaryrefslogtreecommitdiff
path: root/src/atombios_output.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-11-26 15:43:54 +1000
committerDave Airlie <airlied@redhat.com>2009-11-26 15:43:54 +1000
commit8195385d3cedf70d89ca576371af6bca5045bbd2 (patch)
tree4a8a21e1c39966b706d7816d31b0b8521b6985a4 /src/atombios_output.c
parent381b14d5422131ea8ff942ab06a328f6beca0d3f (diff)
dce3: no CV1 or TV1 Output Control tables anymore.
According to the DCE3 docs we should only use DAC1/2 not CV1/TV OutputControl, also my rv730 bios doesn't have any CV1/TV tables. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/atombios_output.c')
-rw-r--r--src/atombios_output.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/atombios_output.c b/src/atombios_output.c
index ac30fa31..af6d68c5 100644
--- a/src/atombios_output.c
+++ b/src/atombios_output.c
@@ -1256,19 +1256,26 @@ atombios_output_dpms(xf86OutputPtr output, int mode)
break;
case ENCODER_OBJECT_ID_INTERNAL_DAC1:
case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
- if (radeon_output->active_device & (ATOM_DEVICE_TV_SUPPORT))
- index = GetIndexIntoMasterTable(COMMAND, TV1OutputControl);
- else if (radeon_output->active_device & (ATOM_DEVICE_CV_SUPPORT))
- index = GetIndexIntoMasterTable(COMMAND, CV1OutputControl);
- else
+ if (!IS_DCE3_VARIANT) {
+ if (radeon_output->active_device & (ATOM_DEVICE_TV_SUPPORT))
+ index = GetIndexIntoMasterTable(COMMAND, TV1OutputControl);
+ else if (radeon_output->active_device & (ATOM_DEVICE_CV_SUPPORT))
+ index = GetIndexIntoMasterTable(COMMAND, CV1OutputControl);
+ else
+ index = GetIndexIntoMasterTable(COMMAND, DAC1OutputControl);
+ } else
index = GetIndexIntoMasterTable(COMMAND, DAC1OutputControl);
break;
case ENCODER_OBJECT_ID_INTERNAL_DAC2:
case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
- if (radeon_output->active_device & (ATOM_DEVICE_TV_SUPPORT))
- index = GetIndexIntoMasterTable(COMMAND, TV1OutputControl);
- else if (radeon_output->active_device & (ATOM_DEVICE_CV_SUPPORT))
- index = GetIndexIntoMasterTable(COMMAND, CV1OutputControl);
+ if (!IS_DCE3_VARIANT) {
+ if (radeon_output->active_device & (ATOM_DEVICE_TV_SUPPORT))
+ index = GetIndexIntoMasterTable(COMMAND, TV1OutputControl);
+ else if (radeon_output->active_device & (ATOM_DEVICE_CV_SUPPORT))
+ index = GetIndexIntoMasterTable(COMMAND, CV1OutputControl);
+ else
+ index = GetIndexIntoMasterTable(COMMAND, DAC2OutputControl);
+ }
else
index = GetIndexIntoMasterTable(COMMAND, DAC2OutputControl);
break;