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 { | 
