diff --git a/src/add-ons/accelerants/radeon_hd/Jamfile b/src/add-ons/accelerants/radeon_hd/Jamfile index 4d98f23328..f72e18bd76 100644 --- a/src/add-ons/accelerants/radeon_hd/Jamfile +++ b/src/add-ons/accelerants/radeon_hd/Jamfile @@ -10,16 +10,16 @@ UsePrivateHeaders [ FDirName graphics radeon_hd ] ; UsePrivateHeaders [ FDirName graphics common ] ; Addon radeon_hd.accelerant : - atom.cpp - gpu.cpp accelerant.cpp + atom.cpp + create_display_modes.cpp + bios.cpp + display.cpp encoder.cpp engine.cpp + gpu.cpp hooks.cpp - pll.cpp - display.cpp mode.cpp - bios.cpp - create_display_modes.cpp + pll.cpp : be libaccelerantscommon.a ; diff --git a/src/add-ons/accelerants/radeon_hd/display.cpp b/src/add-ons/accelerants/radeon_hd/display.cpp index 2fe20de60a..c79933f198 100644 --- a/src/add-ons/accelerants/radeon_hd/display.cpp +++ b/src/add-ons/accelerants/radeon_hd/display.cpp @@ -665,7 +665,7 @@ detect_displays() // There is only one ddc communications path on DVI-I if (encoder_analog_load_detect(id) != true) { TRACE("%s: no analog load on EDID valid connector " - "#%" B_PRIu32 "\n", __func__); + "#%" B_PRIu32 "\n", __func__, id); continue; } } diff --git a/src/add-ons/accelerants/radeon_hd/encoder.cpp b/src/add-ons/accelerants/radeon_hd/encoder.cpp index 4547209dbb..543e458c81 100644 --- a/src/add-ons/accelerants/radeon_hd/encoder.cpp +++ b/src/add-ons/accelerants/radeon_hd/encoder.cpp @@ -54,6 +54,7 @@ encoder_assign_crtc(uint8 crtcID) uint16 connectorIndex = gDisplay[crtcID]->connectorIndex; uint16 encoderID = gConnector[connectorIndex]->encoder.objectID; + uint16 encoderFlags = gConnector[connectorIndex]->encoder.flags; switch (tableMajor) { case 1: @@ -81,24 +82,22 @@ encoder_assign_crtc(uint8 crtcID) break; case ENCODER_OBJECT_ID_INTERNAL_DAC1: case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: - //if (radeon_encoder->active_device - // & (ATOM_DEVICE_TV_SUPPORT)) - // args.v1.ucDevice = ATOM_DEVICE_TV1_INDEX; - //else if (radeon_encoder->active_device - // & (ATOM_DEVICE_CV_SUPPORT)) - // args.v1.ucDevice = ATOM_DEVICE_CV_INDEX; - //else + if ((encoderFlags & ATOM_DEVICE_TV_SUPPORT) != 0) { + args.v1.ucDevice = ATOM_DEVICE_TV1_INDEX; + } else if ((encoderFlags + & ATOM_DEVICE_CV_SUPPORT) != 0) { + args.v1.ucDevice = ATOM_DEVICE_CV_INDEX; + } else args.v1.ucDevice = ATOM_DEVICE_CRT1_INDEX; break; case ENCODER_OBJECT_ID_INTERNAL_DAC2: case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: - //if (radeon_encoder->active_device - // & (ATOM_DEVICE_TV_SUPPORT)) - // args.v1.ucDevice = ATOM_DEVICE_TV1_INDEX; - //else if (radeon_encoder->active_device - // & (ATOM_DEVICE_CV_SUPPORT)) - // args.v1.ucDevice = ATOM_DEVICE_CV_INDEX; - //else + if ((encoderFlags & ATOM_DEVICE_TV_SUPPORT) != 0) { + args.v1.ucDevice = ATOM_DEVICE_TV1_INDEX; + } else if ((encoderFlags + & ATOM_DEVICE_CV_SUPPORT) != 0) { + args.v1.ucDevice = ATOM_DEVICE_CV_INDEX; + } else args.v1.ucDevice = ATOM_DEVICE_CRT2_INDEX; break; } @@ -140,23 +139,21 @@ encoder_assign_crtc(uint8 crtcID) args.v2.ucEncoderID = ASIC_INT_DVO_ENCODER_ID; break; case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: - //if (radeon_encoder->active_device - // & (ATOM_DEVICE_TV_SUPPORT)) - // args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; - //else if (radeon_encoder->active_device - // & (ATOM_DEVICE_CV_SUPPORT)) - // args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; - //else + if ((encoderFlags & ATOM_DEVICE_TV_SUPPORT) != 0) { + args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; + } else if ((encoderFlags + & ATOM_DEVICE_CV_SUPPORT) != 0) { + args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; + } else args.v2.ucEncoderID = ASIC_INT_DAC1_ENCODER_ID; break; case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC2: - //if (radeon_encoder->active_device - // & (ATOM_DEVICE_TV_SUPPORT)) - // args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; - //else if (radeon_encoder->active_device - // & (ATOM_DEVICE_CV_SUPPORT)) - // args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; - //else + if ((encoderFlags & ATOM_DEVICE_TV_SUPPORT) != 0) { + args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; + } else if ((encoderFlags + & ATOM_DEVICE_CV_SUPPORT) != 0) { + args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; + } else args.v2.ucEncoderID = ASIC_INT_DAC2_ENCODER_ID; break; } diff --git a/src/add-ons/accelerants/radeon_hd/pll.cpp b/src/add-ons/accelerants/radeon_hd/pll.cpp index 7799bda2fc..d94f6c6fde 100644 --- a/src/add-ons/accelerants/radeon_hd/pll.cpp +++ b/src/add-ons/accelerants/radeon_hd/pll.cpp @@ -97,7 +97,7 @@ pll_limit_probe(pll_info *pll) } if (pll->pllOutMin == 0) { - pll->pllOutMin = 64800; + pll->pllOutMin = 64800 * 10; // Avivo+ limit }