diff options
author | Dave Airlie <airlied@redhat.com> | 2010-08-10 13:20:13 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-08-10 13:20:13 +1000 |
commit | 1cce55e8ba43e7958cb67147aeaeb068826ab99f (patch) | |
tree | 8e8656f9a7bc2153d0b039106656c5057bfbf3ee | |
parent | bbffd67d3296344e8735b007cdee83146d38369c (diff) |
evergreen: add support to parse firmware info for ext dp clk
-rw-r--r-- | src/atombios_output.c | 2 | ||||
-rw-r--r-- | src/radeon.h | 2 | ||||
-rw-r--r-- | src/radeon_atombios.c | 7 | ||||
-rw-r--r-- | src/radeon_atombios.h | 1 |
4 files changed, 11 insertions, 1 deletions
diff --git a/src/atombios_output.c b/src/atombios_output.c index 003b8f88..5ccf50d1 100644 --- a/src/atombios_output.c +++ b/src/atombios_output.c @@ -729,7 +729,7 @@ atombios_output_dig_transmitter_setup(xf86OutputPtr output, int action, uint8_t } // select the PLL for the UNIPHY - if (radeon_output->MonType == MT_DP) + if (radeon_output->MonType == MT_DP && info->dp_extclk) disp_data.v3.acConfig.ucRefClkSource = 2; /* ext clk */ else disp_data.v3.acConfig.ucRefClkSource = radeon_output->pll_id; diff --git a/src/radeon.h b/src/radeon.h index d66cdd93..134a4cf2 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -872,6 +872,8 @@ typedef struct { Bool ddc2; RADEONPLLRec pll; + int default_dispclk; + int dp_extclk; int RamWidth; float sclk; /* in MHz */ diff --git a/src/radeon_atombios.c b/src/radeon_atombios.c index 996e6eee..61b5372b 100644 --- a/src/radeon_atombios.c +++ b/src/radeon_atombios.c @@ -2307,6 +2307,13 @@ RADEONGetATOMClockInfo(ScrnInfoPtr pScrn) pll->pll_out_min = 64800; } + if (IS_DCE4_VARIANT) { + info->default_dispclk = + le32_to_cpu(atomDataPtr->FirmwareInfo.FirmwareInfo_V_2_1->ulDefaultDispEngineClkFreq); + if (info->default_dispclk == 0) + info->default_dispclk = 60000; + info->dp_extclk = le16_to_cpu(atomDataPtr->FirmwareInfo.FirmwareInfo_V_2_1->usUniphyDPModeExtClkFreq); + } return TRUE; } diff --git a/src/radeon_atombios.h b/src/radeon_atombios.h index 1f21c466..67f65cac 100644 --- a/src/radeon_atombios.h +++ b/src/radeon_atombios.h @@ -194,6 +194,7 @@ typedef struct _atomDataTables ATOM_FIRMWARE_INFO_V1_2 *FirmwareInfo_V_1_2; ATOM_FIRMWARE_INFO_V1_3 *FirmwareInfo_V_1_3; ATOM_FIRMWARE_INFO_V1_4 *FirmwareInfo_V_1_4; + ATOM_FIRMWARE_INFO_V2_1 *FirmwareInfo_V_2_1; } FirmwareInfo; ATOM_DAC_INFO *DAC_Info; union { |