Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/radeon: atombios.h updates for hawaii

This updates atombios.h with the latest changes
required for hawaii.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

+115 -12
+115 -12
drivers/gpu/drm/radeon/atombios.h
··· 1711 1711 #define PIXEL_CLOCK_V6_MISC_HDMI_BPP_MASK 0x0c 1712 1712 #define PIXEL_CLOCK_V6_MISC_HDMI_24BPP 0x00 1713 1713 #define PIXEL_CLOCK_V6_MISC_HDMI_36BPP 0x04 1714 + #define PIXEL_CLOCK_V6_MISC_HDMI_36BPP_V6 0x08 //for V6, the correct defintion for 36bpp should be 2 for 36bpp(2:1) 1714 1715 #define PIXEL_CLOCK_V6_MISC_HDMI_30BPP 0x08 1716 + #define PIXEL_CLOCK_V6_MISC_HDMI_30BPP_V6 0x04 //for V6, the correct defintion for 30bpp should be 1 for 36bpp(5:4) 1715 1717 #define PIXEL_CLOCK_V6_MISC_HDMI_48BPP 0x0c 1716 1718 #define PIXEL_CLOCK_V6_MISC_REF_DIV_SRC 0x10 1717 1719 #define PIXEL_CLOCK_V6_MISC_GEN_DPREFCLK 0x40 ··· 2225 2223 USHORT usVoltageLevel; // real voltage level 2226 2224 }SET_VOLTAGE_PARAMETERS_V2; 2227 2225 2228 - 2226 + // used by both SetVoltageTable v1.3 and v1.4 2229 2227 typedef struct _SET_VOLTAGE_PARAMETERS_V1_3 2230 2228 { 2231 2229 UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ/VDDCI ··· 2292 2290 #define ATOM_GET_VOLTAGE_VID 0x00 2293 2291 #define ATOM_GET_VOTLAGE_INIT_SEQ 0x03 2294 2292 #define ATOM_GET_VOLTTAGE_PHASE_PHASE_VID 0x04 2295 - // for SI, this state map to 0xff02 voltage state in Power Play table, which is power boost state 2296 - #define ATOM_GET_VOLTAGE_STATE0_LEAKAGE_VID 0x10 2293 + #define ATOM_GET_VOLTAGE_SVID2 0x07 //Get SVI2 Regulator Info 2297 2294 2295 + // for SI, this state map to 0xff02 voltage state in Power Play table, which is power boost state 2296 + #define ATOM_GET_VOLTAGE_STATE0_LEAKAGE_VID 0x10 2298 2297 // for SI, this state map to 0xff01 voltage state in Power Play table, which is performance state 2299 2298 #define ATOM_GET_VOLTAGE_STATE1_LEAKAGE_VID 0x11 2300 - // undefined power state 2299 + 2301 2300 #define ATOM_GET_VOLTAGE_STATE2_LEAKAGE_VID 0x12 2302 2301 #define ATOM_GET_VOLTAGE_STATE3_LEAKAGE_VID 0x13 2302 + 2303 + // New Added from CI Hawaii for GetVoltageInfoTable, input parameter structure 2304 + typedef struct _GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_2 2305 + { 2306 + UCHAR ucVoltageType; // Input: To tell which voltage to set up, VDDC/MVDDC/MVDDQ/VDDCI 2307 + UCHAR ucVoltageMode; // Input: Indicate action: Get voltage info 2308 + USHORT usVoltageLevel; // Input: real voltage level in unit of mv or Voltage Phase (0, 1, 2, .. ) or Leakage Id 2309 + ULONG ulSCLKFreq; // Input: when ucVoltageMode= ATOM_GET_VOLTAGE_EVV_VOLTAGE, DPM state SCLK frequency, Define in PPTable SCLK/Voltage dependence table 2310 + }GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_2; 2311 + 2312 + // New in GetVoltageInfo v1.2 ucVoltageMode 2313 + #define ATOM_GET_VOLTAGE_EVV_VOLTAGE 0x09 2314 + 2315 + // New Added from CI Hawaii for EVV feature 2316 + typedef struct _GET_EVV_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_2 2317 + { 2318 + USHORT usVoltageLevel; // real voltage level in unit of mv 2319 + USHORT usVoltageId; // Voltage Id programmed in Voltage Regulator 2320 + ULONG ulReseved; 2321 + }GET_EVV_VOLTAGE_INFO_OUTPUT_PARAMETER_V1_2; 2303 2322 2304 2323 /****************************************************************************/ 2305 2324 // Structures used by TVEncoderControlTable ··· 3887 3864 #define PP_AC_DC_SWITCH_GPIO_PINID 60 3888 3865 //from SMU7.x, if ucGPIO_ID=VDDC_REGULATOR_VRHOT_GPIO_PINID in GPIO_LUTable, VRHot feature is enable 3889 3866 #define VDDC_VRHOT_GPIO_PINID 61 3867 + //if ucGPIO_ID=VDDC_PCC_GPIO_PINID in GPIO_LUTable, Peak Current Control feature is enabled 3868 + #define VDDC_PCC_GPIO_PINID 62 3890 3869 3891 3870 typedef struct _ATOM_GPIO_PIN_LUT 3892 3871 { ··· 4194 4169 #define ATOM_OBJECT_LINK_RECORD_TYPE 18 //Once this record is present under one object, it indicats the oobject is linked to another obj described by the record 4195 4170 #define ATOM_CONNECTOR_REMOTE_CAP_RECORD_TYPE 19 4196 4171 #define ATOM_ENCODER_CAP_RECORD_TYPE 20 4197 - 4172 + #define ATOM_BRACKET_LAYOUT_RECORD_TYPE 21 4198 4173 4199 4174 //Must be updated when new record type is added,equal to that record definition! 4200 - #define ATOM_MAX_OBJECT_RECORD_NUMBER ATOM_ENCODER_CAP_RECORD_TYPE 4175 + #define ATOM_MAX_OBJECT_RECORD_NUMBER ATOM_BRACKET_LAYOUT_RECORD_TYPE 4201 4176 4202 4177 typedef struct _ATOM_I2C_RECORD 4203 4178 { ··· 4422 4397 USHORT usReserved; 4423 4398 }ATOM_CONNECTOR_REMOTE_CAP_RECORD; 4424 4399 4400 + typedef struct _ATOM_CONNECTOR_LAYOUT_INFO 4401 + { 4402 + USHORT usConnectorObjectId; 4403 + UCHAR ucConnectorType; 4404 + UCHAR ucPosition; 4405 + }ATOM_CONNECTOR_LAYOUT_INFO; 4406 + 4407 + // define ATOM_CONNECTOR_LAYOUT_INFO.ucConnectorType to describe the display connector size 4408 + #define CONNECTOR_TYPE_DVI_D 1 4409 + #define CONNECTOR_TYPE_DVI_I 2 4410 + #define CONNECTOR_TYPE_VGA 3 4411 + #define CONNECTOR_TYPE_HDMI 4 4412 + #define CONNECTOR_TYPE_DISPLAY_PORT 5 4413 + #define CONNECTOR_TYPE_MINI_DISPLAY_PORT 6 4414 + 4415 + typedef struct _ATOM_BRACKET_LAYOUT_RECORD 4416 + { 4417 + ATOM_COMMON_RECORD_HEADER sheader; 4418 + UCHAR ucLength; 4419 + UCHAR ucWidth; 4420 + UCHAR ucConnNum; 4421 + UCHAR ucReserved; 4422 + ATOM_CONNECTOR_LAYOUT_INFO asConnInfo[1]; 4423 + }ATOM_BRACKET_LAYOUT_RECORD; 4424 + 4425 4425 /****************************************************************************/ 4426 4426 // ASIC voltage data table 4427 4427 /****************************************************************************/ ··· 4574 4524 #define VOLTAGE_OBJ_VR_I2C_INIT_SEQ 3 //VOLTAGE REGULATOR INIT sequece through I2C -> ATOM_I2C_VOLTAGE_OBJECT_V3 4575 4525 #define VOLTAGE_OBJ_PHASE_LUT 4 //Set Vregulator Phase lookup table ->ATOM_GPIO_VOLTAGE_OBJECT_V3 4576 4526 #define VOLTAGE_OBJ_SVID2 7 //Indicate voltage control by SVID2 ->ATOM_SVID2_VOLTAGE_OBJECT_V3 4577 - #define VOLTAGE_OBJ_PWRBOOST_LEAKAGE_LUT 0x10 //Powerboost Voltage and LeakageId lookup table->ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 4578 - #define VOLTAGE_OBJ_HIGH_STATE_LEAKAGE_LUT 0x11 //High voltage state Voltage and LeakageId lookup table->ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 4527 + #define VOLTAGE_OBJ_EVV 8 4528 + #define VOLTAGE_OBJ_PWRBOOST_LEAKAGE_LUT 0x10 //Powerboost Voltage and LeakageId lookup table->ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 4529 + #define VOLTAGE_OBJ_HIGH_STATE_LEAKAGE_LUT 0x11 //High voltage state Voltage and LeakageId lookup table->ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 4579 4530 #define VOLTAGE_OBJ_HIGH1_STATE_LEAKAGE_LUT 0x12 //High1 voltage state Voltage and LeakageId lookup table->ATOM_LEAKAGE_VOLTAGE_OBJECT_V3 4580 4531 4581 4532 typedef struct _VOLTAGE_LUT_ENTRY_V2 ··· 4602 4551 ULONG ulReserved; 4603 4552 VOLTAGE_LUT_ENTRY asVolI2cLut[1]; // end with 0xff 4604 4553 }ATOM_I2C_VOLTAGE_OBJECT_V3; 4554 + 4555 + // ATOM_I2C_VOLTAGE_OBJECT_V3.ucVoltageControlFlag 4556 + #define VOLTAGE_DATA_ONE_BYTE 0 4557 + #define VOLTAGE_DATA_TWO_BYTE 1 4605 4558 4606 4559 typedef struct _ATOM_GPIO_VOLTAGE_OBJECT_V3 4607 4560 { ··· 4639 4584 // 1:0 – offset trim, 4640 4585 USHORT usLoadLine_PSI; 4641 4586 // GPU GPIO pin Id to SVID2 regulator VRHot pin. possible value 0~31. 0 means GPIO0, 31 means GPIO31 4642 - UCHAR ucReserved[2]; 4587 + UCHAR ucSVDGpioId; //0~31 indicate GPIO0~31 4588 + UCHAR ucSVCGpioId; //0~31 indicate GPIO0~31 4643 4589 ULONG ulReserved; 4644 4590 }ATOM_SVID2_VOLTAGE_OBJECT_V3; 4645 4591 ··· 4692 4636 USHORT usElbVDDCI_IdArrayOffset; // offset of USHORT virtual VDDCI voltage id ( 0xff01~0xff08 ) 4693 4637 USHORT usElbVDDCI_LevelArrayOffset; // offset of 2 dimension voltage level USHORT array 4694 4638 }ATOM_ASIC_PROFILING_INFO_V2_1; 4639 + 4640 + typedef struct _ATOM_ASIC_PROFILING_INFO_V3_1 4641 + { 4642 + ATOM_COMMON_TABLE_HEADER asHeader; 4643 + ULONG ulEvvDerateTdp; 4644 + ULONG ulEvvDerateTdc; 4645 + ULONG ulBoardCoreTemp; 4646 + ULONG ulMaxVddc; 4647 + ULONG ulMinVddc; 4648 + ULONG ulLoadLineSlop; 4649 + ULONG ulLeakageTemp; 4650 + ULONG ulLeakageVoltage; 4651 + ULONG ulCACmEncodeRange; 4652 + ULONG ulCACmEncodeAverage; 4653 + ULONG ulCACbEncodeRange; 4654 + ULONG ulCACbEncodeAverage; 4655 + ULONG ulKt_bEncodeRange; 4656 + ULONG ulKt_bEncodeAverage; 4657 + ULONG ulKv_mEncodeRange; 4658 + ULONG ulKv_mEncodeAverage; 4659 + ULONG ulKv_bEncodeRange; 4660 + ULONG ulKv_bEncodeAverage; 4661 + ULONG ulLkgEncodeLn_MaxDivMin; 4662 + ULONG ulLkgEncodeMin; 4663 + ULONG ulEfuseLogisticAlpha; 4664 + USHORT usPowerDpm0; 4665 + USHORT usCurrentDpm0; 4666 + USHORT usPowerDpm1; 4667 + USHORT usCurrentDpm1; 4668 + USHORT usPowerDpm2; 4669 + USHORT usCurrentDpm2; 4670 + USHORT usPowerDpm3; 4671 + USHORT usCurrentDpm3; 4672 + USHORT usPowerDpm4; 4673 + USHORT usCurrentDpm4; 4674 + USHORT usPowerDpm5; 4675 + USHORT usCurrentDpm5; 4676 + USHORT usPowerDpm6; 4677 + USHORT usCurrentDpm6; 4678 + USHORT usPowerDpm7; 4679 + USHORT usCurrentDpm7; 4680 + }ATOM_ASIC_PROFILING_INFO_V3_1; 4681 + 4695 4682 4696 4683 typedef struct _ATOM_POWER_SOURCE_OBJECT 4697 4684 { ··· 5907 5808 #define ATOM_S7_DOS_MODE_PIXEL_DEPTHb0 0x0C 5908 5809 #define ATOM_S7_DOS_MODE_PIXEL_FORMATb0 0xF0 5909 5810 #define ATOM_S7_DOS_8BIT_DAC_ENb1 0x01 5811 + #define ATOM_S7_ASIC_INIT_COMPLETEb1 0x02 5812 + #define ATOM_S7_ASIC_INIT_COMPLETE_MASK 0x00000200 5910 5813 #define ATOM_S7_DOS_MODE_NUMBERw1 0x0FFFF 5911 5814 5912 5815 #define ATOM_S7_DOS_8BIT_DAC_EN_SHIFT 8 ··· 6343 6242 #define _128Mx32 0x53 6344 6243 #define _256Mx8 0x61 6345 6244 #define _256Mx16 0x62 6245 + #define _512Mx8 0x71 6346 6246 6347 6247 #define SAMSUNG 0x1 6348 6248 #define INFINEON 0x2 ··· 7089 6987 UCHAR ucMaxDispEngineNum; 7090 6988 UCHAR ucMaxActiveDispEngineNum; 7091 6989 UCHAR ucMaxPPLLNum; 7092 - UCHAR ucCoreRefClkSource; // value of CORE_REF_CLK_SOURCE 7093 - UCHAR ucReserved[3]; 7094 - ASIC_TRANSMITTER_INFO_V2 asTransmitterInfo[1]; // for alligment only 6990 + UCHAR ucCoreRefClkSource; // value of CORE_REF_CLK_SOURCE 6991 + UCHAR ucDispCaps; 6992 + UCHAR ucReserved[2]; 6993 + ASIC_TRANSMITTER_INFO_V2 asTransmitterInfo[1]; // for alligment only 7095 6994 }ATOM_DISP_OUT_INFO_V3; 7096 6995 7097 6996 //ucDispCaps