summaryrefslogtreecommitdiff
path: root/src/radeon_output.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/radeon_output.c')
-rw-r--r--src/radeon_output.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 847e69a3..4c2df88a 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -48,17 +48,20 @@
#include "radeon_tv.h"
#include "radeon_atombios.h"
-const char *MonTypeName[7] = {
+const char *MonTypeName[10] = {
"AUTO",
"NONE",
"CRT",
"LVDS",
"TMDS",
"CTV",
- "STV"
+ "STV",
+ "CV",
+ "HDMI",
+ "DP"
};
-const RADEONMonitorType MonTypeID[7] = {
+const RADEONMonitorType MonTypeID[10] = {
MT_UNKNOWN, /* this is just a dummy value for AUTO DETECTION */
MT_NONE, /* NONE -> NONE */
MT_CRT, /* CRT -> CRT */
@@ -66,6 +69,9 @@ const RADEONMonitorType MonTypeID[7] = {
MT_DFP, /* DFPs are driven via TMDS */
MT_CTV, /* CTV -> CTV */
MT_STV, /* STV -> STV */
+ MT_CV,
+ MT_HDMI,
+ MT_DP
};
const char *TMDSTypeName[4] = {
@@ -82,7 +88,7 @@ const char *DACTypeName[4] = {
"None"
};
-const char *ConnectorTypeName[15] = {
+const char *ConnectorTypeName[17] = {
"None",
"VGA",
"DVI-I",
@@ -95,6 +101,8 @@ const char *ConnectorTypeName[15] = {
"SCART",
"HDMI-A",
"HDMI-B",
+ "Unsupported",
+ "Unsupported",
"DIN",
"DisplayPort",
"Unsupported"
@@ -535,6 +543,7 @@ static Bool
radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
DisplayModePtr adjusted_mode)
{
+ RADEONInfoPtr info = RADEONPTR(output->scrn);
RADEONOutputPrivatePtr radeon_output = output->driver_private;
radeon_output->Flags &= ~RADEON_USE_RMX;
@@ -545,7 +554,7 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
xf86CrtcPtr crtc = output->crtc;
RADEONCrtcPrivatePtr radeon_crtc = crtc->driver_private;
- if (radeon_crtc->crtc_id == 0) {
+ if (IS_AVIVO_VARIANT || radeon_crtc->crtc_id == 0) {
if (mode->HDisplay < radeon_output->PanelXRes ||
mode->VDisplay < radeon_output->PanelYRes)
radeon_output->Flags |= RADEON_USE_RMX;
@@ -1183,6 +1192,11 @@ void RADEONSetOutputType(ScrnInfoPtr pScrn, RADEONOutputPrivatePtr radeon_output
case CONNECTOR_DVI_A:
output = OUTPUT_DVI_A; break;
case CONNECTOR_DIN:
+ if (radeon_output->devices & ATOM_DEVICE_CV_SUPPORT)
+ output = OUTPUT_CV;
+ else if (radeon_output->devices & ATOM_DEVICE_TV1_SUPPORT)
+ output = OUTPUT_STV;
+ break;
case CONNECTOR_STV:
output = OUTPUT_STV; break;
case CONNECTOR_CTV:
@@ -1704,7 +1718,7 @@ void RADEONInitConnector(xf86OutputPtr output)
if (OUTPUT_IS_DVI) {
I2CBusPtr pDVOBus;
radeon_output->rmx_type = RMX_OFF;
- if (radeon_output->TMDSType == TMDS_EXT) {
+ if ((!IS_AVIVO_VARIANT) && radeon_output->TMDSType == TMDS_EXT) {
#if defined(__powerpc__)
radeon_output->dvo_i2c_reg = RADEON_GPIO_MONID;
radeon_output->dvo_i2c_slave_addr = 0x70;