* fix minimum pll out units

* sort files in Jamfile
* add TV and compontent video support in encoder code
* fix missing var in display detection code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42878 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Alexander von Gluck IV
2011-10-18 03:34:28 +00:00
parent 756fb8b796
commit a4f66979fe
4 changed files with 33 additions and 36 deletions
+6 -6
View File
@@ -10,16 +10,16 @@ UsePrivateHeaders [ FDirName graphics radeon_hd ] ;
UsePrivateHeaders [ FDirName graphics common ] ; UsePrivateHeaders [ FDirName graphics common ] ;
Addon radeon_hd.accelerant : Addon radeon_hd.accelerant :
atom.cpp
gpu.cpp
accelerant.cpp accelerant.cpp
atom.cpp
create_display_modes.cpp
bios.cpp
display.cpp
encoder.cpp encoder.cpp
engine.cpp engine.cpp
gpu.cpp
hooks.cpp hooks.cpp
pll.cpp
display.cpp
mode.cpp mode.cpp
bios.cpp pll.cpp
create_display_modes.cpp
: be libaccelerantscommon.a : be libaccelerantscommon.a
; ;
@@ -665,7 +665,7 @@ detect_displays()
// There is only one ddc communications path on DVI-I // There is only one ddc communications path on DVI-I
if (encoder_analog_load_detect(id) != true) { if (encoder_analog_load_detect(id) != true) {
TRACE("%s: no analog load on EDID valid connector " TRACE("%s: no analog load on EDID valid connector "
"#%" B_PRIu32 "\n", __func__); "#%" B_PRIu32 "\n", __func__, id);
continue; continue;
} }
} }
+25 -28
View File
@@ -54,6 +54,7 @@ encoder_assign_crtc(uint8 crtcID)
uint16 connectorIndex = gDisplay[crtcID]->connectorIndex; uint16 connectorIndex = gDisplay[crtcID]->connectorIndex;
uint16 encoderID = gConnector[connectorIndex]->encoder.objectID; uint16 encoderID = gConnector[connectorIndex]->encoder.objectID;
uint16 encoderFlags = gConnector[connectorIndex]->encoder.flags;
switch (tableMajor) { switch (tableMajor) {
case 1: case 1:
@@ -81,24 +82,22 @@ encoder_assign_crtc(uint8 crtcID)
break; break;
case ENCODER_OBJECT_ID_INTERNAL_DAC1: case ENCODER_OBJECT_ID_INTERNAL_DAC1:
case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
//if (radeon_encoder->active_device if ((encoderFlags & ATOM_DEVICE_TV_SUPPORT) != 0) {
// & (ATOM_DEVICE_TV_SUPPORT)) args.v1.ucDevice = ATOM_DEVICE_TV1_INDEX;
// args.v1.ucDevice = ATOM_DEVICE_TV1_INDEX; } else if ((encoderFlags
//else if (radeon_encoder->active_device & ATOM_DEVICE_CV_SUPPORT) != 0) {
// & (ATOM_DEVICE_CV_SUPPORT)) args.v1.ucDevice = ATOM_DEVICE_CV_INDEX;
// args.v1.ucDevice = ATOM_DEVICE_CV_INDEX; } else
//else
args.v1.ucDevice = ATOM_DEVICE_CRT1_INDEX; args.v1.ucDevice = ATOM_DEVICE_CRT1_INDEX;
break; break;
case ENCODER_OBJECT_ID_INTERNAL_DAC2: case ENCODER_OBJECT_ID_INTERNAL_DAC2:
case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
//if (radeon_encoder->active_device if ((encoderFlags & ATOM_DEVICE_TV_SUPPORT) != 0) {
// & (ATOM_DEVICE_TV_SUPPORT)) args.v1.ucDevice = ATOM_DEVICE_TV1_INDEX;
// args.v1.ucDevice = ATOM_DEVICE_TV1_INDEX; } else if ((encoderFlags
//else if (radeon_encoder->active_device & ATOM_DEVICE_CV_SUPPORT) != 0) {
// & (ATOM_DEVICE_CV_SUPPORT)) args.v1.ucDevice = ATOM_DEVICE_CV_INDEX;
// args.v1.ucDevice = ATOM_DEVICE_CV_INDEX; } else
//else
args.v1.ucDevice = ATOM_DEVICE_CRT2_INDEX; args.v1.ucDevice = ATOM_DEVICE_CRT2_INDEX;
break; break;
} }
@@ -140,23 +139,21 @@ encoder_assign_crtc(uint8 crtcID)
args.v2.ucEncoderID = ASIC_INT_DVO_ENCODER_ID; args.v2.ucEncoderID = ASIC_INT_DVO_ENCODER_ID;
break; break;
case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1:
//if (radeon_encoder->active_device if ((encoderFlags & ATOM_DEVICE_TV_SUPPORT) != 0) {
// & (ATOM_DEVICE_TV_SUPPORT)) args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID;
// args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; } else if ((encoderFlags
//else if (radeon_encoder->active_device & ATOM_DEVICE_CV_SUPPORT) != 0) {
// & (ATOM_DEVICE_CV_SUPPORT)) args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID;
// args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; } else
//else
args.v2.ucEncoderID = ASIC_INT_DAC1_ENCODER_ID; args.v2.ucEncoderID = ASIC_INT_DAC1_ENCODER_ID;
break; break;
case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2:
//if (radeon_encoder->active_device if ((encoderFlags & ATOM_DEVICE_TV_SUPPORT) != 0) {
// & (ATOM_DEVICE_TV_SUPPORT)) args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID;
// args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; } else if ((encoderFlags
//else if (radeon_encoder->active_device & ATOM_DEVICE_CV_SUPPORT) != 0) {
// & (ATOM_DEVICE_CV_SUPPORT)) args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID;
// args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; } else
//else
args.v2.ucEncoderID = ASIC_INT_DAC2_ENCODER_ID; args.v2.ucEncoderID = ASIC_INT_DAC2_ENCODER_ID;
break; break;
} }
+1 -1
View File
@@ -97,7 +97,7 @@ pll_limit_probe(pll_info *pll)
} }
if (pll->pllOutMin == 0) { if (pll->pllOutMin == 0) {
pll->pllOutMin = 64800; pll->pllOutMin = 64800 * 10;
// Avivo+ limit // Avivo+ limit
} }