Author: kallisti5 Date: 2011-10-18 05:34:28 +0200 (Tue, 18 Oct 2011) New Revision: 42878 Changeset: https://dev.haiku-os.org/changeset/42878 Modified: haiku/trunk/src/add-ons/accelerants/radeon_hd/Jamfile haiku/trunk/src/add-ons/accelerants/radeon_hd/display.cpp haiku/trunk/src/add-ons/accelerants/radeon_hd/encoder.cpp haiku/trunk/src/add-ons/accelerants/radeon_hd/pll.cpp Log: * 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 Modified: haiku/trunk/src/add-ons/accelerants/radeon_hd/Jamfile =================================================================== --- haiku/trunk/src/add-ons/accelerants/radeon_hd/Jamfile 2011-10-17 22:49:44 UTC (rev 42877) +++ haiku/trunk/src/add-ons/accelerants/radeon_hd/Jamfile 2011-10-18 03:34:28 UTC (rev 42878) @@ -10,16 +10,16 @@ UsePrivateHeaders [ FDirName graphics common ] ; Addon radeon_hd.accelerant : + accelerant.cpp atom.cpp - gpu.cpp - accelerant.cpp + create_display_modes.cpp + bios.cpp + display.cpp encoder.cpp engine.cpp + gpu.cpp hooks.cpp + mode.cpp pll.cpp - display.cpp - mode.cpp - bios.cpp - create_display_modes.cpp : be libaccelerantscommon.a ; Modified: haiku/trunk/src/add-ons/accelerants/radeon_hd/display.cpp =================================================================== --- haiku/trunk/src/add-ons/accelerants/radeon_hd/display.cpp 2011-10-17 22:49:44 UTC (rev 42877) +++ haiku/trunk/src/add-ons/accelerants/radeon_hd/display.cpp 2011-10-18 03:34:28 UTC (rev 42878) @@ -665,7 +665,7 @@ // 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; } } Modified: haiku/trunk/src/add-ons/accelerants/radeon_hd/encoder.cpp =================================================================== --- haiku/trunk/src/add-ons/accelerants/radeon_hd/encoder.cpp 2011-10-17 22:49:44 UTC (rev 42877) +++ haiku/trunk/src/add-ons/accelerants/radeon_hd/encoder.cpp 2011-10-18 03:34:28 UTC (rev 42878) @@ -54,6 +54,7 @@ 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 @@ 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 @@ 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; } Modified: haiku/trunk/src/add-ons/accelerants/radeon_hd/pll.cpp =================================================================== --- haiku/trunk/src/add-ons/accelerants/radeon_hd/pll.cpp 2011-10-17 22:49:44 UTC (rev 42877) +++ haiku/trunk/src/add-ons/accelerants/radeon_hd/pll.cpp 2011-10-18 03:34:28 UTC (rev 42878) @@ -97,7 +97,7 @@ } if (pll->pllOutMin == 0) { - pll->pllOutMin = 64800; + pll->pllOutMin = 64800 * 10; // Avivo+ limit }