diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0589-drm-amd-dal-Prepare-support-for-next-Asic-generation.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0589-drm-amd-dal-Prepare-support-for-next-Asic-generation.patch | 3746 |
1 files changed, 0 insertions, 3746 deletions
diff --git a/common/recipes-kernel/linux/files/0589-drm-amd-dal-Prepare-support-for-next-Asic-generation.patch b/common/recipes-kernel/linux/files/0589-drm-amd-dal-Prepare-support-for-next-Asic-generation.patch deleted file mode 100644 index dd7e80e1..00000000 --- a/common/recipes-kernel/linux/files/0589-drm-amd-dal-Prepare-support-for-next-Asic-generation.patch +++ /dev/null @@ -1,3746 +0,0 @@ -From 52f9ede2646da29cec38ea3536c714eb8f60906c Mon Sep 17 00:00:00 2001 -From: Jun Lei <Jun.Lei@amd.com> -Date: Thu, 3 Dec 2015 11:01:33 -0500 -Subject: [PATCH 0589/1110] drm/amd/dal: Prepare support for next Asic - generation - -Support new atombios interfaces. -Clean up code as preparation for next Asic generation. - -Signed-off-by: Harry Wentland <harry.wentland@amd.com> -Acked-by: Harry Wentland<harry.wentland@amd.com> ---- - drivers/gpu/drm/amd/dal/dc/audio/audio_base.c | 3 + - drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c | 723 ++++++++-------- - drivers/gpu/drm/amd/dal/dc/bios/command_table.c | 912 +++++++++++++-------- - drivers/gpu/drm/amd/dal/dc/bios/command_table.h | 3 + - .../gpu/drm/amd/dal/dc/bios/command_table_helper.c | 2 +- - .../gpu/drm/amd/dal/dc/bios/command_table_helper.h | 3 + - .../gpu/drm/amd/dal/dc/dce110/dce110_resource.c | 2 + - drivers/gpu/drm/amd/dal/dc/gpu/clock_source.c | 1 + - drivers/gpu/drm/amd/dal/dc/gpu/clock_source.h | 4 + - .../drm/amd/dal/dc/i2caux/dce110/i2caux_dce110.c | 2 + - drivers/gpu/drm/amd/dal/dc/inc/core_types.h | 2 +- - .../drm/amd/dal/include/bios_parser_interface.h | 3 + - .../gpu/drm/amd/dal/include/bios_parser_types.h | 35 + - drivers/gpu/drm/amd/dal/include/grph_object_id.h | 19 +- - 14 files changed, 1010 insertions(+), 704 deletions(-) - -diff --git a/drivers/gpu/drm/amd/dal/dc/audio/audio_base.c b/drivers/gpu/drm/amd/dal/dc/audio/audio_base.c -index 6bac3ed..f553b7a 100644 ---- a/drivers/gpu/drm/amd/dal/dc/audio/audio_base.c -+++ b/drivers/gpu/drm/amd/dal/dc/audio/audio_base.c -@@ -30,7 +30,10 @@ - #include "audio.h" - #include "hw_ctx_audio.h" - -+#if defined(CONFIG_DRM_AMD_DAL_DCE11_0) - #include "dce110/audio_dce110.h" -+#include "dce110/hw_ctx_audio_dce110.h" -+#endif - - /***** static function : only used within audio.c *****/ - -diff --git a/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c b/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c -index 7a2b247..1d02be9 100644 ---- a/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c -+++ b/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c -@@ -94,6 +94,7 @@ static ATOM_ENCODER_CAP_RECORD *get_encoder_cap_record( - ATOM_OBJECT *object); - static void process_ext_display_connection_info(struct bios_parser *bp); - -+ - #define BIOS_IMAGE_SIZE_OFFSET 2 - #define BIOS_IMAGE_SIZE_UNIT 512 - -@@ -922,7 +923,7 @@ static enum bp_result get_firmware_info_v1_4( - /* Pixel clock pll information. We need to convert from 10KHz units into - * KHz units */ - info->pll_info.crystal_frequency = -- le16_to_cpu(firmware_info->usReferenceClock) * 10; -+ le16_to_cpu(firmware_info->usReferenceClock) * 10; - info->pll_info.min_input_pxl_clk_pll_frequency = - le16_to_cpu(firmware_info->usMinPixelClockPLL_Input) * 10; - info->pll_info.max_input_pxl_clk_pll_frequency = -@@ -973,7 +974,7 @@ static enum bp_result get_firmware_info_v2_1( - /* Pixel clock pll information. We need to convert from 10KHz units into - * KHz units */ - info->pll_info.crystal_frequency = -- le16_to_cpu(firmwareInfo->usCoreReferenceClock) * 10; -+ le16_to_cpu(firmwareInfo->usCoreReferenceClock) * 10; - info->pll_info.min_input_pxl_clk_pll_frequency = - le16_to_cpu(firmwareInfo->usMinPixelClockPLL_Input) * 10; - info->pll_info.max_input_pxl_clk_pll_frequency = -@@ -1059,7 +1060,7 @@ static enum bp_result get_firmware_info_v2_2( - /* Pixel clock pll information. We need to convert from 10KHz units into - * KHz units */ - info->pll_info.crystal_frequency = -- le16_to_cpu(firmware_info->usCoreReferenceClock) * 10; -+ le16_to_cpu(firmware_info->usCoreReferenceClock) * 10; - info->pll_info.min_input_pxl_clk_pll_frequency = - le16_to_cpu(firmware_info->usMinPixelClockPLL_Input) * 10; - info->pll_info.max_input_pxl_clk_pll_frequency = -@@ -1082,10 +1083,10 @@ static enum bp_result get_firmware_info_v2_2( - /* unit of 0.01% */ - info->feature.memory_clk_ss_percentage = THREE_PERCENT_OF_10000; - else if (get_ss_info_v3_1(bp, -- ASIC_INTERNAL_MEMORY_SS, index, &internal_ss) == BP_RESULT_OK) { -+ ASIC_INTERNAL_MEMORY_SS, index, &internal_ss) == BP_RESULT_OK) { - if (internal_ss.spread_spectrum_percentage) { - info->feature.memory_clk_ss_percentage = -- internal_ss.spread_spectrum_percentage; -+ internal_ss.spread_spectrum_percentage; - if (internal_ss.type.CENTER_MODE) { - /* if it is centermode, the exact SS Percentage - * will be round up of half of the percentage -@@ -1105,10 +1106,10 @@ static enum bp_result get_firmware_info_v2_2( - /* unit of 0.01% */ - info->feature.engine_clk_ss_percentage = THREE_PERCENT_OF_10000; - else if (get_ss_info_v3_1(bp, -- ASIC_INTERNAL_ENGINE_SS, index, &internal_ss) == BP_RESULT_OK) { -+ ASIC_INTERNAL_ENGINE_SS, index, &internal_ss) == BP_RESULT_OK) { - if (internal_ss.spread_spectrum_percentage) { - info->feature.engine_clk_ss_percentage = -- internal_ss.spread_spectrum_percentage; -+ internal_ss.spread_spectrum_percentage; - if (internal_ss.type.CENTER_MODE) { - /* if it is centermode, the exact SS Percentage - * will be round up of half of the percentage -@@ -1126,7 +1127,7 @@ static enum bp_result get_firmware_info_v2_2( - info->min_allowed_bl_level = firmware_info->ucMinAllowedBL_Level; - /* Used starting from CI */ - info->smu_gpu_pll_output_freq = -- (uint32_t) (le32_to_cpu(firmware_info->ulGPUPLL_OutputFreq) * 10); -+ (uint32_t) (le32_to_cpu(firmware_info->ulGPUPLL_OutputFreq) * 10); - - return BP_RESULT_OK; - } -@@ -1153,11 +1154,11 @@ static enum bp_result get_ss_info_v3_1( - DATA_TABLES(ASIC_InternalSS_Info)); - table_size = - (le16_to_cpu(ss_table_header_include->sHeader.usStructureSize) -- - sizeof(ATOM_COMMON_TABLE_HEADER)) -+ - sizeof(ATOM_COMMON_TABLE_HEADER)) - / sizeof(ATOM_ASIC_SS_ASSIGNMENT_V3); - - tbl = (ATOM_ASIC_SS_ASSIGNMENT_V3 *) -- &ss_table_header_include->asSpreadSpectrum[0]; -+ &ss_table_header_include->asSpreadSpectrum[0]; - - dc_service_memset(ss_info, 0, sizeof(struct spread_spectrum_info)); - -@@ -1193,17 +1194,17 @@ static enum bp_result get_ss_info_v3_1( - - /* #define SS_MODE_V3_PERCENTAGE_DIV_BY_1000_MASK 0x10 */ - if (SS_MODE_V3_PERCENTAGE_DIV_BY_1000_MASK -- & tbl[i].ucSpreadSpectrumMode) -+ & tbl[i].ucSpreadSpectrumMode) - ss_info->spread_percentage_divider = 1000; - - ss_info->type.STEP_AND_DELAY_INFO = false; -- /* convert [10KHz] into [KHz] */ -+ /* convert [10KHz] into [KHz] */ - ss_info->target_clock_range = -- le32_to_cpu(tbl[i].ulTargetClockRange) * 10; -+ le32_to_cpu(tbl[i].ulTargetClockRange) * 10; - ss_info->spread_spectrum_percentage = -- (uint32_t)le16_to_cpu(tbl[i].usSpreadSpectrumPercentage); -+ (uint32_t)le16_to_cpu(tbl[i].usSpreadSpectrumPercentage); - ss_info->spread_spectrum_range = -- (uint32_t)(le16_to_cpu(tbl[i].usSpreadRateIn10Hz) * 10); -+ (uint32_t)(le16_to_cpu(tbl[i].usSpreadRateIn10Hz) * 10); - - return BP_RESULT_OK; - } -@@ -1247,7 +1248,17 @@ enum bp_result dal_bios_parser_set_pixel_clock( - if (!bp->cmd_tbl.set_pixel_clock) - return BP_RESULT_FAILURE; - -- return bp->cmd_tbl.set_pixel_clock(bp, bp_params); -+ return bp->cmd_tbl.set_pixel_clock(bp, bp_params); -+} -+ -+enum bp_result dal_bios_parser_set_dce_clock( -+ struct bios_parser *bp, -+ struct bp_set_dce_clock_parameters *bp_params) -+{ -+ if (!bp->cmd_tbl.set_dce_clock) -+ return BP_RESULT_FAILURE; -+ -+ return bp->cmd_tbl.set_dce_clock(bp, bp_params); - } - - enum bp_result dal_bios_parser_enable_spread_spectrum_on_ppll( -@@ -1605,10 +1616,10 @@ enum bp_result dal_bios_parser_get_spread_spectrum_info( - break; - } - break; -- default: -- break; -+ default: -+ break; - } -- /* there can not be more then one entry for SS Info table */ -+ /* there can not be more then one entry for SS Info table */ - return result; - } - -@@ -1673,11 +1684,11 @@ static enum bp_result get_ss_info_from_internal_ss_info_tbl_V2_1( - dc_service_memset(info, 0, sizeof(struct spread_spectrum_info)); - - tbl_size = (le16_to_cpu(header->sHeader.usStructureSize) -- - sizeof(ATOM_COMMON_TABLE_HEADER)) -- / sizeof(ATOM_ASIC_SS_ASSIGNMENT_V2); -+ - sizeof(ATOM_COMMON_TABLE_HEADER)) -+ / sizeof(ATOM_ASIC_SS_ASSIGNMENT_V2); - - tbl = (ATOM_ASIC_SS_ASSIGNMENT_V2 *) -- &(header->asSpreadSpectrum[0]); -+ &(header->asSpreadSpectrum[0]); - for (i = 0; i < tbl_size; i++) { - result = BP_RESULT_NORECORD; - -@@ -1755,7 +1766,7 @@ static enum bp_result get_ss_info_from_ss_info_table( - struct embedded_panel_info panel_info; - - if (dal_bios_parser_get_embedded_panel_info(bp, &panel_info) -- == BP_RESULT_OK) -+ == BP_RESULT_OK) - id_local = panel_info.ss_id; - break; - } -@@ -1767,8 +1778,8 @@ static enum bp_result get_ss_info_from_ss_info_table( - return result; - - table_size = (le16_to_cpu(tbl->sHeader.usStructureSize) - -- sizeof(ATOM_COMMON_TABLE_HEADER)) / -- sizeof(ATOM_SPREAD_SPECTRUM_ASSIGNMENT); -+ sizeof(ATOM_COMMON_TABLE_HEADER)) / -+ sizeof(ATOM_SPREAD_SPECTRUM_ASSIGNMENT); - - for (i = 0; i < table_size; i++) { - if (id_local != (uint32_t)tbl->asSS_Info[i].ucSS_Id) -@@ -1777,11 +1788,11 @@ static enum bp_result get_ss_info_from_ss_info_table( - dc_service_memset(ss_info, 0, sizeof(struct spread_spectrum_info)); - - if (ATOM_EXTERNAL_SS_MASK & -- tbl->asSS_Info[i].ucSpreadSpectrumType) -+ tbl->asSS_Info[i].ucSpreadSpectrumType) - ss_info->type.EXTERNAL = true; - - if (ATOM_SS_CENTRE_SPREAD_MODE_MASK & -- tbl->asSS_Info[i].ucSpreadSpectrumType) -+ tbl->asSS_Info[i].ucSpreadSpectrumType) - ss_info->type.CENTER_MODE = true; - - ss_info->type.STEP_AND_DELAY_INFO = true; -@@ -1836,7 +1847,7 @@ enum bp_result dal_bios_parser_get_embedded_panel_info( - default: - break; - } -- default: -+ default: - break; - } - -@@ -1878,7 +1889,7 @@ static enum bp_result get_embedded_panel_info_v1_2( - /* doesn't have borders, so we should be okay leaving this as is for - * now. May need to revisit if we ever have LVDS with borders*/ - info->lcd_timing.horizontal_blanking_time = -- le16_to_cpu(lvds->sLCDTiming.usHBlanking_Time); -+ le16_to_cpu(lvds->sLCDTiming.usHBlanking_Time); - /* usVActive does not include borders, according to VBIOS team*/ - info->lcd_timing.vertical_addressable = - le16_to_cpu(lvds->sLCDTiming.usVActive); -@@ -1937,7 +1948,7 @@ static enum bp_result get_embedded_panel_info_v1_2( - - /*Drr panel support can be reported by VBIOS*/ - if (LCDPANEL_CAP_DRR_SUPPORTED -- & lvds->ucLCDPanel_SpecialHandlingCap) -+ & lvds->ucLCDPanel_SpecialHandlingCap) - info->drr_enabled = 1; - - if (ATOM_PANEL_MISC_DUAL & lvds->ucLVDS_Misc) -@@ -1948,7 +1959,7 @@ static enum bp_result get_embedded_panel_info_v1_2( - - info->lcd_timing.misc_info.GREY_LEVEL = - (uint32_t) (ATOM_PANEL_MISC_GREY_LEVEL & -- lvds->ucLVDS_Misc) >> ATOM_PANEL_MISC_GREY_LEVEL_SHIFT; -+ lvds->ucLVDS_Misc) >> ATOM_PANEL_MISC_GREY_LEVEL_SHIFT; - - if (ATOM_PANEL_MISC_SPATIAL & lvds->ucLVDS_Misc) - info->lcd_timing.misc_info.SPATIAL = true; -@@ -1980,17 +1991,17 @@ static enum bp_result get_embedded_panel_info_v1_3( - return BP_RESULT_BADBIOSTABLE; - - if (!((1 == lvds->sHeader.ucTableFormatRevision) -- && (3 <= lvds->sHeader.ucTableContentRevision))) -+ && (3 <= lvds->sHeader.ucTableContentRevision))) - return BP_RESULT_UNSUPPORTED; - - dc_service_memset(info, 0, sizeof(struct embedded_panel_info)); - - /* We need to convert from 10KHz units into KHz units */ - info->lcd_timing.pixel_clk = -- le16_to_cpu(lvds->sLCDTiming.usPixClk) * 10; -+ le16_to_cpu(lvds->sLCDTiming.usPixClk) * 10; - /* usHActive does not include borders, according to VBIOS team */ - info->lcd_timing.horizontal_addressable = -- le16_to_cpu(lvds->sLCDTiming.usHActive); -+ le16_to_cpu(lvds->sLCDTiming.usHActive); - /* usHBlanking_Time includes borders, so we should really be subtracting - * borders duing this translation, but LVDS generally*/ - /* doesn't have borders, so we should be okay leaving this as is for -@@ -2040,13 +2051,13 @@ static enum bp_result get_embedded_panel_info_v1_3( - - /* Drr panel support can be reported by VBIOS*/ - if (LCDPANEL_CAP_V13_DRR_SUPPORTED -- & lvds->ucLCDPanel_SpecialHandlingCap) -+ & lvds->ucLCDPanel_SpecialHandlingCap) - info->drr_enabled = 1; - - /* Get supported refresh rate*/ - if (info->drr_enabled == 1) { - uint8_t min_rr = -- lvds->sRefreshRateSupport.ucMinRefreshRateForDRR; -+ lvds->sRefreshRateSupport.ucMinRefreshRateForDRR; - uint8_t rr = lvds->sRefreshRateSupport.ucSupportedRefreshRate; - - if (min_rr != 0) { -@@ -2081,8 +2092,8 @@ static enum bp_result get_embedded_panel_info_v1_3( - info->lcd_timing.misc_info.RGB888 = true; - - info->lcd_timing.misc_info.GREY_LEVEL = -- (uint32_t) (ATOM_PANEL_MISC_V13_GREY_LEVEL & -- lvds->ucLCD_Misc) >> ATOM_PANEL_MISC_V13_GREY_LEVEL_SHIFT; -+ (uint32_t) (ATOM_PANEL_MISC_V13_GREY_LEVEL & -+ lvds->ucLCD_Misc) >> ATOM_PANEL_MISC_V13_GREY_LEVEL_SHIFT; - - return BP_RESULT_OK; - } -@@ -2150,7 +2161,7 @@ static ATOM_ENCODER_CAP_RECORD *get_encoder_cap_record( - } - - offset = le16_to_cpu(object->usRecordOffset) -- + bp->object_info_tbl_offset; -+ + bp->object_info_tbl_offset; - - for (;;) { - header = GET_IMAGE(ATOM_COMMON_RECORD_HEADER, offset); -@@ -2161,7 +2172,7 @@ static ATOM_ENCODER_CAP_RECORD *get_encoder_cap_record( - offset += header->ucRecordSize; - - if (LAST_RECORD_TYPE == header->ucRecordType || -- !header->ucRecordSize) -+ !header->ucRecordSize) - break; - - if (ATOM_ENCODER_CAP_RECORD_TYPE != header->ucRecordType) -@@ -2210,7 +2221,7 @@ enum bp_result dal_bios_parser_get_din_connector_info( - } - - offset = le16_to_cpu(object->usRecordOffset) -- + bp->object_info_tbl_offset; -+ + bp->object_info_tbl_offset; - - for (;;) { - header = GET_IMAGE(ATOM_COMMON_RECORD_HEADER, offset); -@@ -2224,15 +2235,15 @@ enum bp_result dal_bios_parser_get_din_connector_info( - - /* get out of the loop if no more records */ - if (LAST_RECORD_TYPE == header->ucRecordType || -- !header->ucRecordSize) -+ !header->ucRecordSize) - break; - - if (ATOM_CONNECTOR_CVTV_SHARE_DIN_RECORD_TYPE != -- header->ucRecordType) -+ header->ucRecordType) - continue; - - if (sizeof(ATOM_CONNECTOR_CVTV_SHARE_DIN_RECORD) -- > header->ucRecordSize) -+ > header->ucRecordSize) - continue; - - record = (ATOM_CONNECTOR_CVTV_SHARE_DIN_RECORD *)header; -@@ -2285,7 +2296,7 @@ uint32_t dal_bios_parser_get_ss_entry_number( - return get_ss_entry_number_from_ss_info_tbl(bp, ss_id); - - header = GET_IMAGE(ATOM_COMMON_TABLE_HEADER, -- DATA_TABLES(ASIC_InternalSS_Info)); -+ DATA_TABLES(ASIC_InternalSS_Info)); - get_atom_data_table_revision(header, &revision); - - switch (revision.major) { -@@ -2301,14 +2312,14 @@ uint32_t dal_bios_parser_get_ss_entry_number( - switch (revision.minor) { - case 1: - return -- get_ss_entry_number_from_internal_ss_info_tbl_V3_1( -- bp, ss_id); -+ get_ss_entry_number_from_internal_ss_info_tbl_V3_1( -+ bp, ss_id); - default: - break; - } - break; -- default: -- break; -+ default: -+ break; - } - - return 0; -@@ -2341,11 +2352,11 @@ static uint32_t get_ss_entry_number_from_ss_info_tbl( - return number; - - header = GET_IMAGE(ATOM_COMMON_TABLE_HEADER, -- DATA_TABLES(SS_Info)); -+ DATA_TABLES(SS_Info)); - get_atom_data_table_revision(header, &revision); - - tbl = GET_IMAGE(ATOM_SPREAD_SPECTRUM_INFO, -- DATA_TABLES(SS_Info)); -+ DATA_TABLES(SS_Info)); - - if (1 != revision.major || 2 > revision.minor) - return number; -@@ -2359,7 +2370,7 @@ static uint32_t get_ss_entry_number_from_ss_info_tbl( - struct embedded_panel_info panel_info; - - if (dal_bios_parser_get_embedded_panel_info(bp, &panel_info) -- == BP_RESULT_OK) -+ == BP_RESULT_OK) - id_local = panel_info.ss_id; - break; - } -@@ -2371,8 +2382,8 @@ static uint32_t get_ss_entry_number_from_ss_info_tbl( - return number; - - table_size = (le16_to_cpu(tbl->sHeader.usStructureSize) - -- sizeof(ATOM_COMMON_TABLE_HEADER)) / -- sizeof(ATOM_SPREAD_SPECTRUM_ASSIGNMENT); -+ sizeof(ATOM_COMMON_TABLE_HEADER)) / -+ sizeof(ATOM_SPREAD_SPECTRUM_ASSIGNMENT); - - for (i = 0; i < table_size; i++) - if (id_local == (uint32_t)tbl->asSS_Info[i].ucSS_Id) { -@@ -2424,14 +2435,14 @@ static uint32_t get_ss_entry_number_from_internal_ss_info_tbl_v2_1( - return 0; - - header_include = GET_IMAGE(ATOM_ASIC_INTERNAL_SS_INFO_V2, -- DATA_TABLES(ASIC_InternalSS_Info)); -+ DATA_TABLES(ASIC_InternalSS_Info)); - - size = (le16_to_cpu(header_include->sHeader.usStructureSize) -- - sizeof(ATOM_COMMON_TABLE_HEADER)) -- / sizeof(ATOM_ASIC_SS_ASSIGNMENT_V2); -+ - sizeof(ATOM_COMMON_TABLE_HEADER)) -+ / sizeof(ATOM_ASIC_SS_ASSIGNMENT_V2); - - tbl = (ATOM_ASIC_SS_ASSIGNMENT_V2 *) -- &header_include->asSpreadSpectrum[0]; -+ &header_include->asSpreadSpectrum[0]; - for (i = 0; i < size; i++) - if (tbl[i].ucClockIndication == (uint8_t)id) - return 1; -@@ -2460,13 +2471,13 @@ static uint32_t get_ss_entry_number_from_internal_ss_info_tbl_V3_1( - return number; - - header_include = GET_IMAGE(ATOM_ASIC_INTERNAL_SS_INFO_V3, -- DATA_TABLES(ASIC_InternalSS_Info)); -+ DATA_TABLES(ASIC_InternalSS_Info)); - size = (le16_to_cpu(header_include->sHeader.usStructureSize) - -- sizeof(ATOM_COMMON_TABLE_HEADER)) / -- sizeof(ATOM_ASIC_SS_ASSIGNMENT_V3); -+ sizeof(ATOM_COMMON_TABLE_HEADER)) / -+ sizeof(ATOM_ASIC_SS_ASSIGNMENT_V3); - - tbl = (ATOM_ASIC_SS_ASSIGNMENT_V3 *) -- &header_include->asSpreadSpectrum[0]; -+ &header_include->asSpreadSpectrum[0]; - - for (i = 0; i < size; i++) - if (tbl[i].ucClockIndication == (uint8_t)id) -@@ -2491,14 +2502,14 @@ static ATOM_FAKE_EDID_PATCH_RECORD *get_faked_edid_record( - return NULL; - - if (1 != info->sHeader.ucTableFormatRevision -- || 2 > info->sHeader.ucTableContentRevision) -+ || 2 > info->sHeader.ucTableContentRevision) - return NULL; - - if (!le16_to_cpu(info->usExtInfoTableOffset)) - return NULL; - - record = GET_IMAGE(uint8_t, DATA_TABLES(LVDS_Info) -- + le16_to_cpu(info->usExtInfoTableOffset)); -+ + le16_to_cpu(info->usExtInfoTableOffset)); - - if (!record) - return NULL; -@@ -2586,15 +2597,15 @@ enum bp_result dal_bios_parser_get_gpio_pin_info( - return BP_RESULT_BADBIOSTABLE; - - if (sizeof(ATOM_COMMON_TABLE_HEADER) + sizeof(ATOM_GPIO_PIN_LUT) -- > le16_to_cpu(header->sHeader.usStructureSize)) -+ > le16_to_cpu(header->sHeader.usStructureSize)) - return BP_RESULT_BADBIOSTABLE; - - if (1 != header->sHeader.ucTableContentRevision) - return BP_RESULT_UNSUPPORTED; - - count = (le16_to_cpu(header->sHeader.usStructureSize) -- - sizeof(ATOM_COMMON_TABLE_HEADER)) -- / sizeof(ATOM_GPIO_PIN_ASSIGNMENT); -+ - sizeof(ATOM_COMMON_TABLE_HEADER)) -+ / sizeof(ATOM_GPIO_PIN_ASSIGNMENT); - for (i = 0; i < count; ++i) { - if (header->asGPIO_Pin[i].ucGPIO_ID != gpio_id) - continue; -@@ -2650,14 +2661,14 @@ enum bp_result dal_bios_parser_enum_embedded_panel_patch_mode( - return BP_RESULT_BADBIOSTABLE; - - if (1 != info->sHeader.ucTableFormatRevision -- || 2 > info->sHeader.ucTableContentRevision) -+ || 2 > info->sHeader.ucTableContentRevision) - return BP_RESULT_UNSUPPORTED; - - if (!le16_to_cpu(info->usExtInfoTableOffset)) - return BP_RESULT_UNSUPPORTED; - - record = GET_IMAGE(uint8_t, list_of_tables->LVDS_Info + -- le16_to_cpu(info->usExtInfoTableOffset)); -+ le16_to_cpu(info->usExtInfoTableOffset)); - - if (!record) - return BP_RESULT_BADBIOSTABLE; -@@ -2707,7 +2718,7 @@ static enum bp_result get_gpio_i2c_info(struct bios_parser *bp, - return BP_RESULT_BADBIOSTABLE; - - if (sizeof(ATOM_COMMON_TABLE_HEADER) + sizeof(ATOM_GPIO_I2C_ASSIGMENT) -- > le16_to_cpu(header->sHeader.usStructureSize)) -+ > le16_to_cpu(header->sHeader.usStructureSize)) - return BP_RESULT_BADBIOSTABLE; - - if (1 != header->sHeader.ucTableContentRevision) -@@ -2715,8 +2726,8 @@ static enum bp_result get_gpio_i2c_info(struct bios_parser *bp, - - /* get data count */ - count = (le16_to_cpu(header->sHeader.usStructureSize) -- - sizeof(ATOM_COMMON_TABLE_HEADER)) -- / sizeof(ATOM_GPIO_I2C_ASSIGMENT); -+ - sizeof(ATOM_COMMON_TABLE_HEADER)) -+ / sizeof(ATOM_GPIO_I2C_ASSIGMENT); - if (count < record->sucI2cId.bfI2C_LineMux) - return BP_RESULT_BADBIOSTABLE; - -@@ -2727,38 +2738,38 @@ static enum bp_result get_gpio_i2c_info(struct bios_parser *bp, - info->i2c_slave_address = record->ucI2CAddr; - - info->gpio_info.clk_mask_register_index = -- le16_to_cpu(header->asGPIO_Info[info->i2c_line].usClkMaskRegisterIndex); -+ le16_to_cpu(header->asGPIO_Info[info->i2c_line].usClkMaskRegisterIndex); - info->gpio_info.clk_en_register_index = -- le16_to_cpu(header->asGPIO_Info[info->i2c_line].usClkEnRegisterIndex); -+ le16_to_cpu(header->asGPIO_Info[info->i2c_line].usClkEnRegisterIndex); - info->gpio_info.clk_y_register_index = -- le16_to_cpu(header->asGPIO_Info[info->i2c_line].usClkY_RegisterIndex); -+ le16_to_cpu(header->asGPIO_Info[info->i2c_line].usClkY_RegisterIndex); - info->gpio_info.clk_a_register_index = -- le16_to_cpu(header->asGPIO_Info[info->i2c_line].usClkA_RegisterIndex); -+ le16_to_cpu(header->asGPIO_Info[info->i2c_line].usClkA_RegisterIndex); - info->gpio_info.data_mask_register_index = -- le16_to_cpu(header->asGPIO_Info[info->i2c_line].usDataMaskRegisterIndex); -+ le16_to_cpu(header->asGPIO_Info[info->i2c_line].usDataMaskRegisterIndex); - info->gpio_info.data_en_register_index = -- le16_to_cpu(header->asGPIO_Info[info->i2c_line].usDataEnRegisterIndex); -+ le16_to_cpu(header->asGPIO_Info[info->i2c_line].usDataEnRegisterIndex); - info->gpio_info.data_y_register_index = -- le16_to_cpu(header->asGPIO_Info[info->i2c_line].usDataY_RegisterIndex); -+ le16_to_cpu(header->asGPIO_Info[info->i2c_line].usDataY_RegisterIndex); - info->gpio_info.data_a_register_index = -- le16_to_cpu(header->asGPIO_Info[info->i2c_line].usDataA_RegisterIndex); -+ le16_to_cpu(header->asGPIO_Info[info->i2c_line].usDataA_RegisterIndex); - - info->gpio_info.clk_mask_shift = -- header->asGPIO_Info[info->i2c_line].ucClkMaskShift; -+ header->asGPIO_Info[info->i2c_line].ucClkMaskShift; - info->gpio_info.clk_en_shift = -- header->asGPIO_Info[info->i2c_line].ucClkEnShift; -+ header->asGPIO_Info[info->i2c_line].ucClkEnShift; - info->gpio_info.clk_y_shift = -- header->asGPIO_Info[info->i2c_line].ucClkY_Shift; -+ header->asGPIO_Info[info->i2c_line].ucClkY_Shift; - info->gpio_info.clk_a_shift = -- header->asGPIO_Info[info->i2c_line].ucClkA_Shift; -+ header->asGPIO_Info[info->i2c_line].ucClkA_Shift; - info->gpio_info.data_mask_shift = -- header->asGPIO_Info[info->i2c_line].ucDataMaskShift; -+ header->asGPIO_Info[info->i2c_line].ucDataMaskShift; - info->gpio_info.data_en_shift = -- header->asGPIO_Info[info->i2c_line].ucDataEnShift; -+ header->asGPIO_Info[info->i2c_line].ucDataEnShift; - info->gpio_info.data_y_shift = -- header->asGPIO_Info[info->i2c_line].ucDataY_Shift; -+ header->asGPIO_Info[info->i2c_line].ucDataY_Shift; - info->gpio_info.data_a_shift = -- header->asGPIO_Info[info->i2c_line].ucDataA_Shift; -+ header->asGPIO_Info[info->i2c_line].ucDataA_Shift; - - return BP_RESULT_OK; - } -@@ -2801,8 +2812,8 @@ static ATOM_OBJECT *get_bios_object(struct bios_parser *bp, - - for (i = 0; i < tbl->ucNumberOfObjects; i++) - if (dal_graphics_object_id_is_equal(id, -- object_id_from_bios_object_id( -- le16_to_cpu(tbl->asObjects[i].usObjectID)))) -+ object_id_from_bios_object_id( -+ le16_to_cpu(tbl->asObjects[i].usObjectID)))) - return &tbl->asObjects[i]; - - return NULL; -@@ -2820,7 +2831,7 @@ static uint32_t get_dest_obj_list(struct bios_parser *bp, - } - - offset = le16_to_cpu(object->usSrcDstTableOffset) -- + bp->object_info_tbl_offset; -+ + bp->object_info_tbl_offset; - - number = GET_IMAGE(uint8_t, offset); - if (!number) -@@ -2835,7 +2846,7 @@ static uint32_t get_dest_obj_list(struct bios_parser *bp, - - offset += sizeof(uint8_t); - *id_list = (uint16_t *)get_image(bp, offset, -- *number * sizeof(uint16_t)); -+ *number * sizeof(uint16_t)); - - if (!*id_list) - return 0; -@@ -2855,7 +2866,7 @@ static uint32_t get_src_obj_list(struct bios_parser *bp, ATOM_OBJECT *object, - } - - offset = le16_to_cpu(object->usSrcDstTableOffset) -- + bp->object_info_tbl_offset; -+ + bp->object_info_tbl_offset; - - number = GET_IMAGE(uint8_t, offset); - if (!number) -@@ -2863,7 +2874,7 @@ static uint32_t get_src_obj_list(struct bios_parser *bp, ATOM_OBJECT *object, - - offset += sizeof(uint8_t); - *id_list = (uint16_t *)get_image(bp, offset, -- *number * sizeof(uint16_t)); -+ *number * sizeof(uint16_t)); - - if (!*id_list) - return 0; -@@ -2883,7 +2894,7 @@ static uint32_t get_dst_number_from_object(struct bios_parser *bp, - } - - offset = le16_to_cpu(object->usSrcDstTableOffset) -- + bp->object_info_tbl_offset; -+ + bp->object_info_tbl_offset; - - number = GET_IMAGE(uint8_t, offset); - if (!number) -@@ -2924,11 +2935,11 @@ static uint32_t get_record_size(uint8_t *record) - - case LCD_FAKE_EDID_PATCH_RECORD_TYPE: { - ATOM_FAKE_EDID_PATCH_RECORD *fake_record = -- (ATOM_FAKE_EDID_PATCH_RECORD *) record; -+ (ATOM_FAKE_EDID_PATCH_RECORD *) record; - uint32_t edid_size = get_edid_size(fake_record); - - return sizeof(ATOM_FAKE_EDID_PATCH_RECORD) + edid_size -- - sizeof(fake_record->ucFakeEDIDString); -+ - sizeof(fake_record->ucFakeEDIDString); - } - - case LCD_PANEL_RESOLUTION_RECORD_TYPE: -@@ -2967,7 +2978,7 @@ static struct graphics_object_id object_id_from_bios_object_id( - return go_id; - - go_id = dal_graphics_object_id_init( -- id_from_bios_object_id(type, bios_object_id), enum_id, type); -+ id_from_bios_object_id(type, bios_object_id), enum_id, type); - - return go_id; - } -@@ -2975,7 +2986,7 @@ static struct graphics_object_id object_id_from_bios_object_id( - static enum object_type object_type_from_bios_object_id(uint32_t bios_object_id) - { - uint32_t bios_object_type = (bios_object_id & OBJECT_TYPE_MASK) -- >> OBJECT_TYPE_SHIFT; -+ >> OBJECT_TYPE_SHIFT; - enum object_type object_type; - - switch (bios_object_type) { -@@ -3005,7 +3016,7 @@ static enum object_type object_type_from_bios_object_id(uint32_t bios_object_id) - static enum object_enum_id enum_id_from_bios_object_id(uint32_t bios_object_id) - { - uint32_t bios_enum_id = -- (bios_object_id & ENUM_ID_MASK) >> ENUM_ID_SHIFT; -+ (bios_object_id & ENUM_ID_MASK) >> ENUM_ID_SHIFT; - enum object_enum_id id; - - switch (bios_enum_id) { -@@ -3048,7 +3059,7 @@ static uint32_t id_from_bios_object_id(enum object_type type, - return (uint32_t)encoder_id_from_bios_object_id(bios_object_id); - case OBJECT_TYPE_CONNECTOR: - return (uint32_t)connector_id_from_bios_object_id( -- bios_object_id); -+ bios_object_id); - case OBJECT_TYPE_GENERIC: - return generic_id_from_bios_object_id(bios_object_id); - default: -@@ -3341,9 +3352,9 @@ static void get_atom_data_table_revision( - return; - - tbl_revision->major = -- (uint32_t) GET_DATA_TABLE_MAJOR_REVISION(atom_data_tbl); -+ (uint32_t) GET_DATA_TABLE_MAJOR_REVISION(atom_data_tbl); - tbl_revision->minor = -- (uint32_t) GET_DATA_TABLE_MINOR_REVISION(atom_data_tbl); -+ (uint32_t) GET_DATA_TABLE_MINOR_REVISION(atom_data_tbl); - } - - static uint32_t signal_to_ss_id(enum as_signal_type signal) -@@ -3388,52 +3399,52 @@ static uint32_t get_support_mask_for_device_id(struct device_id device_id) - break; - } - break; -- case DEVICE_TYPE_CRT: -- switch (enum_id) { -- case 1: -- return ATOM_DEVICE_CRT1_SUPPORT; -- case 2: -- return ATOM_DEVICE_CRT2_SUPPORT; -- default: -- break; -- } -- break; -- case DEVICE_TYPE_DFP: -- switch (enum_id) { -- case 1: -- return ATOM_DEVICE_DFP1_SUPPORT; -- case 2: -- return ATOM_DEVICE_DFP2_SUPPORT; -- case 3: -- return ATOM_DEVICE_DFP3_SUPPORT; -- case 4: -- return ATOM_DEVICE_DFP4_SUPPORT; -- case 5: -- return ATOM_DEVICE_DFP5_SUPPORT; -- case 6: -- return ATOM_DEVICE_DFP6_SUPPORT; -- default: -- break; -- } -- break; -- case DEVICE_TYPE_CV: -- switch (enum_id) { -- case 1: -- return ATOM_DEVICE_CV_SUPPORT; -- default: -- break; -- } -- break; -- case DEVICE_TYPE_TV: -- switch (enum_id) { -- case 1: -- return ATOM_DEVICE_TV1_SUPPORT; -- default: -+ case DEVICE_TYPE_CRT: -+ switch (enum_id) { -+ case 1: -+ return ATOM_DEVICE_CRT1_SUPPORT; -+ case 2: -+ return ATOM_DEVICE_CRT2_SUPPORT; -+ default: -+ break; -+ } - break; -- } -- break; -- default: -- break; -+ case DEVICE_TYPE_DFP: -+ switch (enum_id) { -+ case 1: -+ return ATOM_DEVICE_DFP1_SUPPORT; -+ case 2: -+ return ATOM_DEVICE_DFP2_SUPPORT; -+ case 3: -+ return ATOM_DEVICE_DFP3_SUPPORT; -+ case 4: -+ return ATOM_DEVICE_DFP4_SUPPORT; -+ case 5: -+ return ATOM_DEVICE_DFP5_SUPPORT; -+ case 6: -+ return ATOM_DEVICE_DFP6_SUPPORT; -+ default: -+ break; -+ } -+ break; -+ case DEVICE_TYPE_CV: -+ switch (enum_id) { -+ case 1: -+ return ATOM_DEVICE_CV_SUPPORT; -+ default: -+ break; -+ } -+ break; -+ case DEVICE_TYPE_TV: -+ switch (enum_id) { -+ case 1: -+ return ATOM_DEVICE_TV1_SUPPORT; -+ default: -+ break; -+ } -+ break; -+ default: -+ break; - }; - - /* Unidentified device ID, return empty support mask. */ -@@ -3441,8 +3452,8 @@ static uint32_t get_support_mask_for_device_id(struct device_id device_id) - } - - /** --* HwContext interface for writing MM registers --*/ -+ * HwContext interface for writing MM registers -+ */ - - static bool i2c_read( - struct bios_parser *bp, -@@ -3466,27 +3477,27 @@ static bool i2c_read( - - { - struct i2c_payload payloads[] = { -- { -- .address = i2c_info->i2c_slave_address >> 1, -- .data = offset, -- .length = sizeof(offset), -- .write = true -- }, -- { -- .address = i2c_info->i2c_slave_address >> 1, -- .data = buffer, -- .length = length, -- .write = false -- } -+ { -+ .address = i2c_info->i2c_slave_address >> 1, -+ .data = offset, -+ .length = sizeof(offset), -+ .write = true -+ }, -+ { -+ .address = i2c_info->i2c_slave_address >> 1, -+ .data = buffer, -+ .length = length, -+ .write = false -+ } - }; - - cmd.payloads = payloads; - cmd.number_of_payloads = ARRAY_SIZE(payloads); - - result = dal_i2caux_submit_i2c_command( -- dal_adapter_service_get_i2caux(bp->as), -- ddc, -- &cmd); -+ dal_adapter_service_get_i2caux(bp->as), -+ ddc, -+ &cmd); - } - - dal_adapter_service_release_ddc(bp->as, ddc); -@@ -3519,20 +3530,20 @@ static enum bp_result get_ext_display_connection_info( - struct graphics_object_i2c_info i2c_info; - - gpio_i2c_header = GET_IMAGE(ATOM_GPIO_I2C_INFO, -- bp->master_data_tbl->ListOfDataTables.GPIO_I2C_Info); -+ bp->master_data_tbl->ListOfDataTables.GPIO_I2C_Info); - - if (NULL == gpio_i2c_header) - return BP_RESULT_BADBIOSTABLE; - - if (get_gpio_i2c_info(bp, i2c_record, &i2c_info) != -- BP_RESULT_OK) -+ BP_RESULT_OK) - return BP_RESULT_BADBIOSTABLE; - - if (i2c_read( -- bp, -- &i2c_info, -- (uint8_t *)ext_display_connection_info_tbl, -- sizeof(ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO))) { -+ bp, -+ &i2c_info, -+ (uint8_t *)ext_display_connection_info_tbl, -+ sizeof(ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO))) { - config_tbl_present = true; - } - } -@@ -3541,7 +3552,7 @@ static enum bp_result get_ext_display_connection_info( - if (config_tbl_present) - for (i = 0; i < NUMBER_OF_UCHAR_FOR_GUID; i++) { - if (ext_display_connection_info_tbl->ucGuid[i] -- != ext_display_connection_guid[i]) { -+ != ext_display_connection_guid[i]) { - config_tbl_present = false; - break; - } -@@ -3551,10 +3562,10 @@ static enum bp_result get_ext_display_connection_info( - if (config_tbl_present) { - uint8_t check_sum = 0; - uint8_t *buf = -- (uint8_t *)ext_display_connection_info_tbl; -+ (uint8_t *)ext_display_connection_info_tbl; - - for (i = 0; i < sizeof(ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO); -- i++) { -+ i++) { - check_sum += buf[i]; - } - -@@ -3646,9 +3657,9 @@ static bool get_patched_device_tag( - /* Use fallback behaviour if not supported. */ - if (!bp->remap_device_tags) { - device_tag->ulACPIDeviceEnum = -- cpu_to_le32((uint32_t) le16_to_cpu(ext_display_path->usDeviceACPIEnum)); -+ cpu_to_le32((uint32_t) le16_to_cpu(ext_display_path->usDeviceACPIEnum)); - device_tag->usDeviceID = -- cpu_to_le16(le16_to_cpu(ext_display_path->usDeviceTag)); -+ cpu_to_le16(le16_to_cpu(ext_display_path->usDeviceTag)); - return true; - } - -@@ -3658,7 +3669,7 @@ static bool get_patched_device_tag( - /* Assign this device ID if supported. */ - if ((device_support & dev_id) != 0) { - device_tag->ulACPIDeviceEnum = -- cpu_to_le32((uint32_t) le16_to_cpu(ext_display_path->usDeviceACPIEnum)); -+ cpu_to_le32((uint32_t) le16_to_cpu(ext_display_path->usDeviceACPIEnum)); - device_tag->usDeviceID = cpu_to_le16((USHORT) dev_id); - return true; - } -@@ -3688,31 +3699,31 @@ static void add_device_tag_from_ext_display_path( - ATOM_CONNECTOR_DEVICE_TAG *device_tag = NULL; - ATOM_CONNECTOR_DEVICE_TAG_RECORD *device_tag_record = NULL; - enum bp_result result = -- dal_bios_parser_get_device_tag_record( -- bp, object, &device_tag_record); -+ dal_bios_parser_get_device_tag_record( -+ bp, object, &device_tag_record); - - if ((le16_to_cpu(ext_display_path->usDeviceTag) != CONNECTOR_OBJECT_ID_NONE) -- && (result == BP_RESULT_OK)) { -+ && (result == BP_RESULT_OK)) { - uint8_t index; - - if ((device_tag_record->ucNumberOfDevice == 1) && -- (le16_to_cpu(device_tag_record->asDeviceTag[0].usDeviceID) == 0)) { -+ (le16_to_cpu(device_tag_record->asDeviceTag[0].usDeviceID) == 0)) { - /*Workaround bug in current VBIOS releases where - * ucNumberOfDevice = 1 but there is no actual device - * tag data. This w/a is temporary until the updated - * VBIOS is distributed. */ - device_tag_record->ucNumberOfDevice = -- device_tag_record->ucNumberOfDevice - 1; -+ device_tag_record->ucNumberOfDevice - 1; - } - - /* Attempt to find a matching device ID. */ - index = device_tag_record->ucNumberOfDevice; - device_tag = &device_tag_record->asDeviceTag[index]; - if (get_patched_device_tag( -- bp, -- ext_display_path, -- *device_support, -- device_tag)) { -+ bp, -+ ext_display_path, -+ *device_support, -+ device_tag)) { - /* Update cached device support to remove assigned ID. - */ - *device_support &= ~le16_to_cpu(device_tag->usDeviceID); -@@ -3737,7 +3748,7 @@ static EXT_DISPLAY_PATH *get_ext_display_path_entry( - { - EXT_DISPLAY_PATH *ext_display_path; - uint32_t ext_display_path_index = -- ((bios_object_id & ENUM_ID_MASK) >> ENUM_ID_SHIFT) - 1; -+ ((bios_object_id & ENUM_ID_MASK) >> ENUM_ID_SHIFT) - 1; - - if (ext_display_path_index >= MAX_NUMBER_OF_EXT_DISPLAY_PATH) - return NULL; -@@ -3770,7 +3781,7 @@ static ATOM_CONNECTOR_AUXDDC_LUT_RECORD *get_ext_connector_aux_ddc_lut_record( - } - - offset = le16_to_cpu(object->usRecordOffset) -- + bp->object_info_tbl_offset; -+ + bp->object_info_tbl_offset; - - for (;;) { - header = GET_IMAGE(ATOM_COMMON_RECORD_HEADER, offset); -@@ -3779,13 +3790,13 @@ static ATOM_CONNECTOR_AUXDDC_LUT_RECORD *get_ext_connector_aux_ddc_lut_record( - return NULL; - - if (LAST_RECORD_TYPE == header->ucRecordType || -- 0 == header->ucRecordSize) -+ 0 == header->ucRecordSize) - break; - - if (ATOM_CONNECTOR_AUXDDC_LUT_RECORD_TYPE == -- header->ucRecordType && -- sizeof(ATOM_CONNECTOR_AUXDDC_LUT_RECORD) <= -- header->ucRecordSize) -+ header->ucRecordType && -+ sizeof(ATOM_CONNECTOR_AUXDDC_LUT_RECORD) <= -+ header->ucRecordSize) - return (ATOM_CONNECTOR_AUXDDC_LUT_RECORD *)(header); - - offset += header->ucRecordSize; -@@ -3814,7 +3825,7 @@ static ATOM_CONNECTOR_HPDPIN_LUT_RECORD *get_ext_connector_hpd_pin_lut_record( - } - - offset = le16_to_cpu(object->usRecordOffset) -- + bp->object_info_tbl_offset; -+ + bp->object_info_tbl_offset; - - for (;;) { - header = GET_IMAGE(ATOM_COMMON_RECORD_HEADER, offset); -@@ -3823,13 +3834,13 @@ static ATOM_CONNECTOR_HPDPIN_LUT_RECORD *get_ext_connector_hpd_pin_lut_record( - return NULL; - - if (LAST_RECORD_TYPE == header->ucRecordType || -- 0 == header->ucRecordSize) -+ 0 == header->ucRecordSize) - break; - - if (ATOM_CONNECTOR_HPDPIN_LUT_RECORD_TYPE == -- header->ucRecordType && -- sizeof(ATOM_CONNECTOR_HPDPIN_LUT_RECORD) <= -- header->ucRecordSize) -+ header->ucRecordType && -+ sizeof(ATOM_CONNECTOR_HPDPIN_LUT_RECORD) <= -+ header->ucRecordSize) - return (ATOM_CONNECTOR_HPDPIN_LUT_RECORD *)header; - - offset += header->ucRecordSize; -@@ -3866,13 +3877,13 @@ static enum bp_result patch_bios_image_from_ext_display_connection_info( - ATOM_OBJECT *opm_object = NULL; - uint32_t i = 0; - struct graphics_object_id opm_object_id = -- dal_graphics_object_id_init( -- GENERIC_ID_MXM_OPM, -- ENUM_ID_1, -- OBJECT_TYPE_GENERIC); -+ dal_graphics_object_id_init( -+ GENERIC_ID_MXM_OPM, -+ ENUM_ID_1, -+ OBJECT_TYPE_GENERIC); - ATOM_CONNECTOR_DEVICE_TAG_RECORD *dev_tag_record; - uint32_t cached_device_support = -- le16_to_cpu(bp->object_info_tbl.v1_1->usDeviceSupport); -+ le16_to_cpu(bp->object_info_tbl.v1_1->usDeviceSupport); - - uint32_t dst_number; - uint16_t *dst_object_id_list; -@@ -3882,23 +3893,23 @@ static enum bp_result patch_bios_image_from_ext_display_connection_info( - return BP_RESULT_UNSUPPORTED; - - dc_service_memset(&ext_display_connection_info_tbl, 0, -- sizeof(ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO)); -+ sizeof(ATOM_EXTERNAL_DISPLAY_CONNECTION_INFO)); - - connector_tbl_offset = bp->object_info_tbl_offset -- + le16_to_cpu(bp->object_info_tbl.v1_1->usConnectorObjectTableOffset); -+ + le16_to_cpu(bp->object_info_tbl.v1_1->usConnectorObjectTableOffset); - connector_tbl = GET_IMAGE(ATOM_OBJECT_TABLE, connector_tbl_offset); - - /* Read Connector info table from EEPROM through i2c */ - if (get_ext_display_connection_info( -- bp, -- opm_object, -- &ext_display_connection_info_tbl) != BP_RESULT_OK) { -+ bp, -+ opm_object, -+ &ext_display_connection_info_tbl) != BP_RESULT_OK) { - if (bp->headless_no_opm) { - /* Failed to read OPM, remove all non-CF connectors. */ - for (i = 0; i < connector_tbl->ucNumberOfObjects; ++i) { - object = &connector_tbl->asObjects[i]; - object_id = object_id_from_bios_object_id( -- le16_to_cpu(object->usObjectID)); -+ le16_to_cpu(object->usObjectID)); - if (OBJECT_TYPE_CONNECTOR == object_id.type) - object->usObjectID = cpu_to_le16(0); - } -@@ -3907,17 +3918,17 @@ static enum bp_result patch_bios_image_from_ext_display_connection_info( - } - - dal_logger_write(bp->ctx->logger, -- LOG_MAJOR_BIOS, -- LOG_MINOR_BIOS_CMD_TABLE, -- "%s: Failed to read Connection Info Table", __func__); -+ LOG_MAJOR_BIOS, -+ LOG_MINOR_BIOS_CMD_TABLE, -+ "%s: Failed to read Connection Info Table", __func__); - return BP_RESULT_UNSUPPORTED; - } - - /* Get pointer to AUX/DDC and HPD LUTs */ - aux_ddc_lut_record = -- get_ext_connector_aux_ddc_lut_record(bp, opm_object); -+ get_ext_connector_aux_ddc_lut_record(bp, opm_object); - hpd_pin_lut_record = -- get_ext_connector_hpd_pin_lut_record(bp, opm_object); -+ get_ext_connector_hpd_pin_lut_record(bp, opm_object); - - if ((aux_ddc_lut_record == NULL) || (hpd_pin_lut_record == NULL)) - return BP_RESULT_UNSUPPORTED; -@@ -3929,21 +3940,21 @@ static enum bp_result patch_bios_image_from_ext_display_connection_info( - /* Remove support for all non-MXM connectors. */ - object = &connector_tbl->asObjects[i]; - object_id = object_id_from_bios_object_id( -- le16_to_cpu(object->usObjectID)); -+ le16_to_cpu(object->usObjectID)); - if ((OBJECT_TYPE_CONNECTOR != object_id.type) || -- (CONNECTOR_ID_MXM == object_id.id)) -+ (CONNECTOR_ID_MXM == object_id.id)) - continue; - - /* Remove support for all device tags. */ - if (dal_bios_parser_get_device_tag_record( -- bp, object, &dev_tag_record) != BP_RESULT_OK) -+ bp, object, &dev_tag_record) != BP_RESULT_OK) - continue; - - for (j = 0; j < dev_tag_record->ucNumberOfDevice; ++j) { - ATOM_CONNECTOR_DEVICE_TAG *device_tag = -- &dev_tag_record->asDeviceTag[j]; -+ &dev_tag_record->asDeviceTag[j]; - cached_device_support &= -- ~le16_to_cpu(device_tag->usDeviceID); -+ ~le16_to_cpu(device_tag->usDeviceID); - } - } - } -@@ -3956,37 +3967,37 @@ static enum bp_result patch_bios_image_from_ext_display_connection_info( - object = &connector_tbl->asObjects[i]; - object_id = object_id_from_bios_object_id(le16_to_cpu(object->usObjectID)); - if ((OBJECT_TYPE_CONNECTOR != object_id.type) || -- (CONNECTOR_ID_MXM != object_id.id)) -+ (CONNECTOR_ID_MXM != object_id.id)) - continue; - - /* Get the correct connection info table entry based on the enum - * id. */ - ext_display_path = get_ext_display_path_entry( -- &ext_display_connection_info_tbl, -- le16_to_cpu(object->usObjectID)); -+ &ext_display_connection_info_tbl, -+ le16_to_cpu(object->usObjectID)); - if (!ext_display_path) - return BP_RESULT_FAILURE; - - /* Patch device connector ID */ - object->usObjectID = -- cpu_to_le16(le16_to_cpu(ext_display_path->usDeviceConnector)); -+ cpu_to_le16(le16_to_cpu(ext_display_path->usDeviceConnector)); - - /* Patch device tag, ulACPIDeviceEnum. */ - add_device_tag_from_ext_display_path( -- bp, -- object, -- ext_display_path, -- &cached_device_support); -+ bp, -+ object, -+ ext_display_path, -+ &cached_device_support); - - /* Patch HPD info */ - if (ext_display_path->ucExtHPDPINLutIndex < -- MAX_NUMBER_OF_EXT_HPDPIN_LUT_ENTRIES) { -+ MAX_NUMBER_OF_EXT_HPDPIN_LUT_ENTRIES) { - hpd_record = get_hpd_record(bp, object); - if (hpd_record) { - uint8_t index = -- ext_display_path->ucExtHPDPINLutIndex; -+ ext_display_path->ucExtHPDPINLutIndex; - hpd_record->ucHPDIntGPIOID = -- hpd_pin_lut_record->ucHPDPINMap[index]; -+ hpd_pin_lut_record->ucHPDPINMap[index]; - } else { - BREAK_TO_DEBUGGER(); - /* Invalid hpd record */ -@@ -3996,13 +4007,13 @@ static enum bp_result patch_bios_image_from_ext_display_connection_info( - - /* Patch I2C/AUX info */ - if (ext_display_path->ucExtHPDPINLutIndex < -- MAX_NUMBER_OF_EXT_AUXDDC_LUT_ENTRIES) { -+ MAX_NUMBER_OF_EXT_AUXDDC_LUT_ENTRIES) { - i2c_record = get_i2c_record(bp, object); - if (i2c_record) { - uint8_t index = -- ext_display_path->ucExtAUXDDCLutIndex; -+ ext_display_path->ucExtAUXDDCLutIndex; - i2c_record->sucI2cId = -- aux_ddc_lut_record->ucAUXDDCMap[index]; -+ aux_ddc_lut_record->ucAUXDDCMap[index]; - } else { - BREAK_TO_DEBUGGER(); - /* Invalid I2C record */ -@@ -4013,37 +4024,37 @@ static enum bp_result patch_bios_image_from_ext_display_connection_info( - /* Merge with other MXM connectors that map to the same physical - * connector. */ - for (j = i + 1; -- j < connector_tbl->ucNumberOfObjects; j++) { -+ j < connector_tbl->ucNumberOfObjects; j++) { - ATOM_OBJECT *next_object; - struct graphics_object_id next_object_id; - EXT_DISPLAY_PATH *next_ext_display_path; - - next_object = &connector_tbl->asObjects[j]; - next_object_id = object_id_from_bios_object_id( -- le16_to_cpu(next_object->usObjectID)); -+ le16_to_cpu(next_object->usObjectID)); - - if ((OBJECT_TYPE_CONNECTOR != next_object_id.type) && -- (CONNECTOR_ID_MXM == next_object_id.id)) -+ (CONNECTOR_ID_MXM == next_object_id.id)) - continue; - - next_ext_display_path = get_ext_display_path_entry( -- &ext_display_connection_info_tbl, -- le16_to_cpu(next_object->usObjectID)); -+ &ext_display_connection_info_tbl, -+ le16_to_cpu(next_object->usObjectID)); - - if (next_ext_display_path == NULL) - return BP_RESULT_FAILURE; - - /* Merge if using same connector. */ - if ((le16_to_cpu(next_ext_display_path->usDeviceConnector) == -- le16_to_cpu(ext_display_path->usDeviceConnector)) && -- (le16_to_cpu(ext_display_path->usDeviceConnector) != 0)) { -+ le16_to_cpu(ext_display_path->usDeviceConnector)) && -+ (le16_to_cpu(ext_display_path->usDeviceConnector) != 0)) { - /* Clear duplicate connector from table. */ - next_object->usObjectID = cpu_to_le16(0); - add_device_tag_from_ext_display_path( -- bp, -- object, -- ext_display_path, -- &cached_device_support); -+ bp, -+ object, -+ ext_display_path, -+ &cached_device_support); - } - } - } -@@ -4053,7 +4064,7 @@ static enum bp_result patch_bios_image_from_ext_display_connection_info( - * display connection info table */ - - encoder_table_offset = bp->object_info_tbl_offset -- + le16_to_cpu(bp->object_info_tbl.v1_1->usEncoderObjectTableOffset); -+ + le16_to_cpu(bp->object_info_tbl.v1_1->usEncoderObjectTableOffset); - encoder_table = GET_IMAGE(ATOM_OBJECT_TABLE, encoder_table_offset); - - for (i = 0; i < encoder_table->ucNumberOfObjects; i++) { -@@ -4065,24 +4076,24 @@ static enum bp_result patch_bios_image_from_ext_display_connection_info( - - for (j = 0; j < dst_number; j++) { - object_id = object_id_from_bios_object_id( -- dst_object_id_list[j]); -+ dst_object_id_list[j]); - - if ((OBJECT_TYPE_CONNECTOR != object_id.type) || -- (CONNECTOR_ID_MXM != object_id.id)) -+ (CONNECTOR_ID_MXM != object_id.id)) - continue; - - /* Get the correct connection info table entry based on - * the enum id. */ - ext_display_path = -- get_ext_display_path_entry( -- &ext_display_connection_info_tbl, -- dst_object_id_list[j]); -+ get_ext_display_path_entry( -+ &ext_display_connection_info_tbl, -+ dst_object_id_list[j]); - - if (ext_display_path == NULL) - return BP_RESULT_FAILURE; - - dst_object_id_list[j] = -- le16_to_cpu(ext_display_path->usDeviceConnector); -+ le16_to_cpu(ext_display_path->usDeviceConnector); - } - } - -@@ -4111,7 +4122,7 @@ static void process_ext_display_connection_info(struct bios_parser *bp) - uint32_t i = 0; - - connector_tbl_offset = bp->object_info_tbl_offset + -- le16_to_cpu(bp->object_info_tbl.v1_1->usConnectorObjectTableOffset); -+ le16_to_cpu(bp->object_info_tbl.v1_1->usConnectorObjectTableOffset); - connector_tbl = GET_IMAGE(ATOM_OBJECT_TABLE, connector_tbl_offset); - - /* Look for MXM connectors to determine whether we need patch the VBIOS -@@ -4122,7 +4133,7 @@ static void process_ext_display_connection_info(struct bios_parser *bp) - object_id = object_id_from_bios_object_id(le16_to_cpu(object->usObjectID)); - - if ((OBJECT_TYPE_CONNECTOR == object_id.type) && -- (CONNECTOR_ID_MXM == object_id.id)) { -+ (CONNECTOR_ID_MXM == object_id.id)) { - /* Once we found MXM connector - we can break */ - mxm_connector_found = true; - break; -@@ -4150,20 +4161,20 @@ static void process_ext_display_connection_info(struct bios_parser *bp) - original_bios = bp->bios; - bp->bios = bp->bios_local_image; - connector_tbl = -- GET_IMAGE(ATOM_OBJECT_TABLE, connector_tbl_offset); -+ GET_IMAGE(ATOM_OBJECT_TABLE, connector_tbl_offset); - - /* Step 2: (only if MXM connector found) Patch BIOS image with - * info from external module */ - if (mxm_connector_found && -- patch_bios_image_from_ext_display_connection_info(bp) != -- BP_RESULT_OK) { -+ patch_bios_image_from_ext_display_connection_info(bp) != -+ BP_RESULT_OK) { - /* Patching the bios image has failed. We will copy - * again original image provided and afterwards - * only remove null entries */ - dc_service_memmove( -- bp->bios_local_image, -- original_bios, -- bp->bios_size); -+ bp->bios_local_image, -+ original_bios, -+ bp->bios_size); - } - - /* Step 3: Compact connector table (remove null entries, valid -@@ -4171,17 +4182,17 @@ static void process_ext_display_connection_info(struct bios_parser *bp) - for (i = 0; i < connector_tbl->ucNumberOfObjects; i++) { - object = &connector_tbl->asObjects[i]; - object_id = object_id_from_bios_object_id( -- le16_to_cpu(object->usObjectID)); -+ le16_to_cpu(object->usObjectID)); - - if (OBJECT_TYPE_CONNECTOR != object_id.type) - continue; - - if (i != connectors_num) { - dc_service_memmove( -- &connector_tbl-> -- asObjects[connectors_num], -- object, -- sizeof(ATOM_OBJECT)); -+ &connector_tbl-> -+ asObjects[connectors_num], -+ object, -+ sizeof(ATOM_OBJECT)); - } - ++connectors_num; - } -@@ -4199,27 +4210,27 @@ bool dal_bios_parser_is_accelerated_mode( - { - #ifdef CONFIG_DRM_AMD_DAL_VBIOS_PRESENT - return bp->bios_helper->is_accelerated_mode( -- bp->ctx); -+ bp->ctx); - #else - dal_logger_write(bp->ctx->logger, -- LOG_MAJOR_BIOS, -- LOG_MINOR_BIOS_CMD_TABLE, -- "%s: VBIOS is not supported", __func__); -+ LOG_MAJOR_BIOS, -+ LOG_MINOR_BIOS_CMD_TABLE, -+ "%s: VBIOS is not supported", __func__); - return false; - #endif - } - - /** --* dal_bios_parser_set_scratch_connected --* --* @brief --* update VBIOS scratch register about connected displays --* --* @param --* bool - update scratch register or just prepare info to be updated --* bool - connection state --* const ConnectorDeviceTagInfo* - pointer to device type and enum ID --*/ -+ * dal_bios_parser_set_scratch_connected -+ * -+ * @brief -+ * update VBIOS scratch register about connected displays -+ * -+ * @param -+ * bool - update scratch register or just prepare info to be updated -+ * bool - connection state -+ * const ConnectorDeviceTagInfo* - pointer to device type and enum ID -+ */ - void dal_bios_parser_set_scratch_connected( - struct bios_parser *bp, - struct graphics_object_id connector_id, -@@ -4228,25 +4239,25 @@ void dal_bios_parser_set_scratch_connected( - { - #ifdef CONFIG_DRM_AMD_DAL_VBIOS_PRESENT - bp->bios_helper->set_scratch_connected( -- bp->ctx, -- connector_id, connected, device_tag); -+ bp->ctx, -+ connector_id, connected, device_tag); - #else - dal_logger_write(bp->ctx->logger, -- LOG_MAJOR_BIOS, -- LOG_MINOR_BIOS_CMD_TABLE, -- "%s: VBIOS is not supported", __func__); -+ LOG_MAJOR_BIOS, -+ LOG_MINOR_BIOS_CMD_TABLE, -+ "%s: VBIOS is not supported", __func__); - #endif - } - - /** --* dal_bios_parser_set_scratch_critical_state --* --* @brief --* update critical state bit in VBIOS scratch register --* --* @param --* bool - to set or reset state --*/ -+ * dal_bios_parser_set_scratch_critical_state -+ * -+ * @brief -+ * update critical state bit in VBIOS scratch register -+ * -+ * @param -+ * bool - to set or reset state -+ */ - void dal_bios_parser_set_scratch_critical_state( - struct bios_parser *bp, - bool state) -@@ -4256,9 +4267,9 @@ void dal_bios_parser_set_scratch_critical_state( - bp->ctx, state); - #else - dal_logger_write(bp->ctx->logger, -- LOG_MAJOR_BIOS, -- LOG_MINOR_BIOS_CMD_TABLE, -- "%s: VBIOS is not supported", __func__); -+ LOG_MAJOR_BIOS, -+ LOG_MINOR_BIOS_CMD_TABLE, -+ "%s: VBIOS is not supported", __func__); - #endif - } - -@@ -4267,27 +4278,27 @@ void dal_bios_parser_set_scratch_acc_mode_change( - { - #ifdef CONFIG_DRM_AMD_DAL_VBIOS_PRESENT - bp->bios_helper->set_scratch_acc_mode_change( -- bp->ctx); -+ bp->ctx); - #else - dal_logger_write(bp->ctx->logger, -- LOG_MAJOR_BIOS, -- LOG_MINOR_BIOS_CMD_TABLE, -- "%s: VBIOS is not supported", __func__); -+ LOG_MAJOR_BIOS, -+ LOG_MINOR_BIOS_CMD_TABLE, -+ "%s: VBIOS is not supported", __func__); - #endif - } - - /** --* dal_bios_parser_prepare_scratch_active_and_requested --* --* @brief --* update VBIOS scratch registers about active and requested displays --* --* @param --* enum controller_id - controller Id --* enum signal_type signal - signal type used on display --* const struct connector_device_tag_info * - pointer to display type and --* enum Id --*/ -+ * dal_bios_parser_prepare_scratch_active_and_requested -+ * -+ * @brief -+ * update VBIOS scratch registers about active and requested displays -+ * -+ * @param -+ * enum controller_id - controller Id -+ * enum signal_type signal - signal type used on display -+ * const struct connector_device_tag_info * - pointer to display type and -+ * enum Id -+ */ - void dal_bios_parser_prepare_scratch_active_and_requested( - struct bios_parser *bp, - enum controller_id controller_id, -@@ -4303,9 +4314,9 @@ void dal_bios_parser_prepare_scratch_active_and_requested( - device_tag); - #else - dal_logger_write(bp->ctx->logger, -- LOG_MAJOR_BIOS, -- LOG_MINOR_BIOS_CMD_TABLE, -- "%s: VBIOS is not supported", __func__); -+ LOG_MAJOR_BIOS, -+ LOG_MINOR_BIOS_CMD_TABLE, -+ "%s: VBIOS is not supported", __func__); - #endif - } - -@@ -4314,13 +4325,13 @@ void dal_bios_parser_set_scratch_active_and_requested( - { - #ifdef CONFIG_DRM_AMD_DAL_VBIOS_PRESENT - bp->bios_helper->set_scratch_active_and_requested( -- bp->ctx, -- &bp->vbios_helper_data); -+ bp->ctx, -+ &bp->vbios_helper_data); - #else - dal_logger_write(bp->ctx->logger, -- LOG_MAJOR_BIOS, -- LOG_MINOR_BIOS_CMD_TABLE, -- "%s: VBIOS is not supported", __func__); -+ LOG_MAJOR_BIOS, -+ LOG_MINOR_BIOS_CMD_TABLE, -+ "%s: VBIOS is not supported", __func__); - #endif - } - -@@ -4347,29 +4358,29 @@ static enum bp_result get_integrated_info_v8( - uint32_t i; - - info_v8 = GET_IMAGE(ATOM_INTEGRATED_SYSTEM_INFO_V1_8, -- bp->master_data_tbl->ListOfDataTables.IntegratedSystemInfo); -+ bp->master_data_tbl->ListOfDataTables.IntegratedSystemInfo); - - if (info_v8 != NULL) { - info->boot_up_engine_clock = -- le32_to_cpu(info_v8->ulBootUpEngineClock) * 10; -+ le32_to_cpu(info_v8->ulBootUpEngineClock) * 10; - info->dentist_vco_freq = -- le32_to_cpu(info_v8->ulDentistVCOFreq) * 10; -+ le32_to_cpu(info_v8->ulDentistVCOFreq) * 10; - info->boot_up_uma_clock = -- le32_to_cpu(info_v8->ulBootUpUMAClock) * 10; -+ le32_to_cpu(info_v8->ulBootUpUMAClock) * 10; - - for (i = 0; i < NUMBER_OF_DISP_CLK_VOLTAGE; ++i) { - /* Convert [10KHz] into [KHz] */ - info->disp_clk_voltage[i].max_supported_clk = - le32_to_cpu(info_v8->sDISPCLK_Voltage[i]. -- ulMaximumSupportedCLK) * 10; -+ ulMaximumSupportedCLK) * 10; - info->disp_clk_voltage[i].voltage_index = -- le32_to_cpu(info_v8->sDISPCLK_Voltage[i].ulVoltageIndex); -+ le32_to_cpu(info_v8->sDISPCLK_Voltage[i].ulVoltageIndex); - } - - info->boot_up_req_display_vector = -- le32_to_cpu(info_v8->ulBootUpReqDisplayVector); -+ le32_to_cpu(info_v8->ulBootUpReqDisplayVector); - info->gpu_cap_info = -- le32_to_cpu(info_v8->ulGPUCapInfo); -+ le32_to_cpu(info_v8->ulGPUCapInfo); - - /* - * system_config: Bit[0] = 0 : PCIE power gating disabled -@@ -4394,8 +4405,8 @@ static enum bp_result get_integrated_info_v8( - le32_to_cpu(info_v8->ulNbpStateNClkFreq[0]); - for (i = 1; i < 4; ++i) - info->minimum_n_clk = -- info->minimum_n_clk < le32_to_cpu(info_v8->ulNbpStateNClkFreq[i]) ? -- info->minimum_n_clk : le32_to_cpu(info_v8->ulNbpStateNClkFreq[i]); -+ info->minimum_n_clk < le32_to_cpu(info_v8->ulNbpStateNClkFreq[i]) ? -+ info->minimum_n_clk : le32_to_cpu(info_v8->ulNbpStateNClkFreq[i]); - - info->idle_n_clk = le32_to_cpu(info_v8->ulIdleNClk); - info->ddr_dll_power_up_time = -@@ -4439,11 +4450,11 @@ static enum bp_result get_integrated_info_v8( - for (i = 0; i < NUMBER_OF_AVAILABLE_SCLK; ++i) { - /* Convert [10KHz] into [KHz] */ - info->avail_s_clk[i].supported_s_clk = -- le32_to_cpu(info_v8->sAvail_SCLK[i].ulSupportedSCLK) * 10; -+ le32_to_cpu(info_v8->sAvail_SCLK[i].ulSupportedSCLK) * 10; - info->avail_s_clk[i].voltage_index = -- le16_to_cpu(info_v8->sAvail_SCLK[i].usVoltageIndex); -+ le16_to_cpu(info_v8->sAvail_SCLK[i].usVoltageIndex); - info->avail_s_clk[i].voltage_id = -- le16_to_cpu(info_v8->sAvail_SCLK[i].usVoltageID); -+ le16_to_cpu(info_v8->sAvail_SCLK[i].usVoltageID); - } - - for (i = 0; i < NUMBER_OF_UCHAR_FOR_GUID; ++i) { -@@ -4454,22 +4465,22 @@ static enum bp_result get_integrated_info_v8( - for (i = 0; i < MAX_NUMBER_OF_EXT_DISPLAY_PATH; ++i) { - info->ext_disp_conn_info.path[i].device_connector_id = - object_id_from_bios_object_id( -- le16_to_cpu(info_v8->sExtDispConnInfo.sPath[i].usDeviceConnector)); -+ le16_to_cpu(info_v8->sExtDispConnInfo.sPath[i].usDeviceConnector)); - - info->ext_disp_conn_info.path[i].ext_encoder_obj_id = - object_id_from_bios_object_id( -- le16_to_cpu(info_v8->sExtDispConnInfo.sPath[i].usExtEncoderObjId)); -+ le16_to_cpu(info_v8->sExtDispConnInfo.sPath[i].usExtEncoderObjId)); - - info->ext_disp_conn_info.path[i].device_tag = -- le16_to_cpu(info_v8->sExtDispConnInfo.sPath[i].usDeviceTag); -+ le16_to_cpu(info_v8->sExtDispConnInfo.sPath[i].usDeviceTag); - info->ext_disp_conn_info.path[i].device_acpi_enum = -- le16_to_cpu(info_v8->sExtDispConnInfo.sPath[i].usDeviceACPIEnum); -+ le16_to_cpu(info_v8->sExtDispConnInfo.sPath[i].usDeviceACPIEnum); - info->ext_disp_conn_info.path[i].ext_aux_ddc_lut_index = -- info_v8->sExtDispConnInfo.sPath[i].ucExtAUXDDCLutIndex; -+ info_v8->sExtDispConnInfo.sPath[i].ucExtAUXDDCLutIndex; - info->ext_disp_conn_info.path[i].ext_hpd_pin_lut_index = -- info_v8->sExtDispConnInfo.sPath[i].ucExtHPDPINLutIndex; -+ info_v8->sExtDispConnInfo.sPath[i].ucExtHPDPINLutIndex; - info->ext_disp_conn_info.path[i].channel_mapping.raw = -- info_v8->sExtDispConnInfo.sPath[i].ucChannelMapping; -+ info_v8->sExtDispConnInfo.sPath[i].ucChannelMapping; - } - info->ext_disp_conn_info.checksum = - info_v8->sExtDispConnInfo.ucChecksum; -@@ -4503,7 +4514,7 @@ static enum bp_result get_integrated_info_v9( - uint32_t i; - - info_v9 = GET_IMAGE(ATOM_INTEGRATED_SYSTEM_INFO_V1_9, -- bp->master_data_tbl->ListOfDataTables.IntegratedSystemInfo); -+ bp->master_data_tbl->ListOfDataTables.IntegratedSystemInfo); - - if (info_v9 != NULL) { - info->boot_up_engine_clock = -@@ -4516,9 +4527,9 @@ static enum bp_result get_integrated_info_v9( - for (i = 0; i < NUMBER_OF_DISP_CLK_VOLTAGE; ++i) { - /* Convert [10KHz] into [KHz] */ - info->disp_clk_voltage[i].max_supported_clk = -- le32_to_cpu(info_v9->sDISPCLK_Voltage[i].ulMaximumSupportedCLK) * 10; -+ le32_to_cpu(info_v9->sDISPCLK_Voltage[i].ulMaximumSupportedCLK) * 10; - info->disp_clk_voltage[i].voltage_index = -- le32_to_cpu(info_v9->sDISPCLK_Voltage[i].ulVoltageIndex); -+ le32_to_cpu(info_v9->sDISPCLK_Voltage[i].ulVoltageIndex); - } - - info->boot_up_req_display_vector = -@@ -4548,8 +4559,8 @@ static enum bp_result get_integrated_info_v9( - le32_to_cpu(info_v9->ulNbpStateNClkFreq[0]); - for (i = 1; i < 4; ++i) - info->minimum_n_clk = -- info->minimum_n_clk < le32_to_cpu(info_v9->ulNbpStateNClkFreq[i]) ? -- info->minimum_n_clk : le32_to_cpu(info_v9->ulNbpStateNClkFreq[i]); -+ info->minimum_n_clk < le32_to_cpu(info_v9->ulNbpStateNClkFreq[i]) ? -+ info->minimum_n_clk : le32_to_cpu(info_v9->ulNbpStateNClkFreq[i]); - - info->idle_n_clk = le32_to_cpu(info_v9->ulIdleNClk); - info->ddr_dll_power_up_time = -@@ -4593,11 +4604,11 @@ static enum bp_result get_integrated_info_v9( - for (i = 0; i < NUMBER_OF_AVAILABLE_SCLK; ++i) { - /* Convert [10KHz] into [KHz] */ - info->avail_s_clk[i].supported_s_clk = -- le32_to_cpu(info_v9->sAvail_SCLK[i].ulSupportedSCLK) * 10; -+ le32_to_cpu(info_v9->sAvail_SCLK[i].ulSupportedSCLK) * 10; - info->avail_s_clk[i].voltage_index = -- le16_to_cpu(info_v9->sAvail_SCLK[i].usVoltageIndex); -+ le16_to_cpu(info_v9->sAvail_SCLK[i].usVoltageIndex); - info->avail_s_clk[i].voltage_id = -- le16_to_cpu(info_v9->sAvail_SCLK[i].usVoltageID); -+ le16_to_cpu(info_v9->sAvail_SCLK[i].usVoltageID); - } - - for (i = 0; i < NUMBER_OF_UCHAR_FOR_GUID; ++i) { -@@ -4608,22 +4619,22 @@ static enum bp_result get_integrated_info_v9( - for (i = 0; i < MAX_NUMBER_OF_EXT_DISPLAY_PATH; ++i) { - info->ext_disp_conn_info.path[i].device_connector_id = - object_id_from_bios_object_id( -- le16_to_cpu(info_v9->sExtDispConnInfo.sPath[i].usDeviceConnector)); -+ le16_to_cpu(info_v9->sExtDispConnInfo.sPath[i].usDeviceConnector)); - - info->ext_disp_conn_info.path[i].ext_encoder_obj_id = - object_id_from_bios_object_id( -- le16_to_cpu(info_v9->sExtDispConnInfo.sPath[i].usExtEncoderObjId)); -+ le16_to_cpu(info_v9->sExtDispConnInfo.sPath[i].usExtEncoderObjId)); - - info->ext_disp_conn_info.path[i].device_tag = -- le16_to_cpu(info_v9->sExtDispConnInfo.sPath[i].usDeviceTag); -+ le16_to_cpu(info_v9->sExtDispConnInfo.sPath[i].usDeviceTag); - info->ext_disp_conn_info.path[i].device_acpi_enum = -- le16_to_cpu(info_v9->sExtDispConnInfo.sPath[i].usDeviceACPIEnum); -+ le16_to_cpu(info_v9->sExtDispConnInfo.sPath[i].usDeviceACPIEnum); - info->ext_disp_conn_info.path[i].ext_aux_ddc_lut_index = -- info_v9->sExtDispConnInfo.sPath[i].ucExtAUXDDCLutIndex; -+ info_v9->sExtDispConnInfo.sPath[i].ucExtAUXDDCLutIndex; - info->ext_disp_conn_info.path[i].ext_hpd_pin_lut_index = -- info_v9->sExtDispConnInfo.sPath[i].ucExtHPDPINLutIndex; -+ info_v9->sExtDispConnInfo.sPath[i].ucExtHPDPINLutIndex; - info->ext_disp_conn_info.path[i].channel_mapping.raw = -- info_v9->sExtDispConnInfo.sPath[i].ucChannelMapping; -+ info_v9->sExtDispConnInfo.sPath[i].ucChannelMapping; - } - info->ext_disp_conn_info.checksum = - info_v9->sExtDispConnInfo.ucChecksum; -@@ -4658,9 +4669,9 @@ static enum bp_result construct_integrated_info( - struct atom_data_revision revision; - - if (info != NULL && -- bp->master_data_tbl->ListOfDataTables.IntegratedSystemInfo) { -+ bp->master_data_tbl->ListOfDataTables.IntegratedSystemInfo) { - header = GET_IMAGE(ATOM_COMMON_TABLE_HEADER, -- bp->master_data_tbl->ListOfDataTables.IntegratedSystemInfo); -+ bp->master_data_tbl->ListOfDataTables.IntegratedSystemInfo); - - get_atom_data_table_revision(header, &revision); - -@@ -4687,12 +4698,12 @@ static enum bp_result construct_integrated_info( - for (i = 1; i < NUMBER_OF_DISP_CLK_VOLTAGE; ++i) { - for (j = i; j > 0; --j) { - if ( -- info->disp_clk_voltage[j].max_supported_clk < -- info->disp_clk_voltage[j-1].max_supported_clk) { -+ info->disp_clk_voltage[j].max_supported_clk < -+ info->disp_clk_voltage[j-1].max_supported_clk) { - /* swap j and j - 1*/ - temp = info->disp_clk_voltage[j-1]; - info->disp_clk_voltage[j-1] = -- info->disp_clk_voltage[j]; -+ info->disp_clk_voltage[j]; - info->disp_clk_voltage[j] = temp; - } - } -diff --git a/drivers/gpu/drm/amd/dal/dc/bios/command_table.c b/drivers/gpu/drm/amd/dal/dc/bios/command_table.c -index a807ab6..8503eca 100644 ---- a/drivers/gpu/drm/amd/dal/dc/bios/command_table.c -+++ b/drivers/gpu/drm/amd/dal/dc/bios/command_table.c -@@ -67,6 +67,7 @@ static void init_compute_memore_engine_pll(struct bios_parser *bp); - static void init_external_encoder_control(struct bios_parser *bp); - static void init_enable_disp_power_gating(struct bios_parser *bp); - static void init_program_clock(struct bios_parser *bp); -+static void init_set_dce_clock(struct bios_parser *bp); - - void dal_bios_parser_init_cmd_tbl(struct bios_parser *bp) - { -@@ -89,22 +90,23 @@ void dal_bios_parser_init_cmd_tbl(struct bios_parser *bp) - init_compute_memore_engine_pll(bp); - init_external_encoder_control(bp); - init_enable_disp_power_gating(bp); -+ init_set_dce_clock(bp); - } - - /******************************************************************************* --******************************************************************************** --** --** D I G E N C O D E R C O N T R O L --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** D I G E N C O D E R C O N T R O L -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - static enum bp_result encoder_control_digx_v3( -- struct bios_parser *bp, -- struct bp_encoder_control *cntl); -+ struct bios_parser *bp, -+ struct bp_encoder_control *cntl); - - static enum bp_result encoder_control_digx_v4( -- struct bios_parser *bp, -- struct bp_encoder_control *cntl); -+ struct bios_parser *bp, -+ struct bp_encoder_control *cntl); - static void init_encoder_control_dig_v1(struct bios_parser *bp); - - static void init_dig_encoder_control(struct bios_parser *bp) -@@ -126,14 +128,14 @@ static void init_dig_encoder_control(struct bios_parser *bp) - } - - static enum bp_result encoder_control_dig_v1( -- struct bios_parser *bp, -- struct bp_encoder_control *cntl); -+ struct bios_parser *bp, -+ struct bp_encoder_control *cntl); - static enum bp_result encoder_control_dig1_v1( -- struct bios_parser *bp, -- struct bp_encoder_control *cntl); -+ struct bios_parser *bp, -+ struct bp_encoder_control *cntl); - static enum bp_result encoder_control_dig2_v1( -- struct bios_parser *bp, -- struct bp_encoder_control *cntl); -+ struct bios_parser *bp, -+ struct bp_encoder_control *cntl); - - static void init_encoder_control_dig_v1(struct bios_parser *bp) - { -@@ -153,8 +155,8 @@ static void init_encoder_control_dig_v1(struct bios_parser *bp) - } - - static enum bp_result encoder_control_dig_v1( -- struct bios_parser *bp, -- struct bp_encoder_control *cntl) -+ struct bios_parser *bp, -+ struct bp_encoder_control *cntl) - { - enum bp_result result = BP_RESULT_FAILURE; - struct cmd_tbl *cmd_tbl = &bp->cmd_tbl; -@@ -180,8 +182,8 @@ static enum bp_result encoder_control_dig_v1( - } - - static enum bp_result encoder_control_dig1_v1( -- struct bios_parser *bp, -- struct bp_encoder_control *cntl) -+ struct bios_parser *bp, -+ struct bp_encoder_control *cntl) - { - enum bp_result result = BP_RESULT_FAILURE; - DIG_ENCODER_CONTROL_PARAMETERS_V2 params = {0}; -@@ -195,8 +197,8 @@ static enum bp_result encoder_control_dig1_v1( - } - - static enum bp_result encoder_control_dig2_v1( -- struct bios_parser *bp, -- struct bp_encoder_control *cntl) -+ struct bios_parser *bp, -+ struct bp_encoder_control *cntl) - { - enum bp_result result = BP_RESULT_FAILURE; - DIG_ENCODER_CONTROL_PARAMETERS_V2 params = {0}; -@@ -210,8 +212,8 @@ static enum bp_result encoder_control_dig2_v1( - } - - static enum bp_result encoder_control_digx_v3( -- struct bios_parser *bp, -- struct bp_encoder_control *cntl) -+ struct bios_parser *bp, -+ struct bp_encoder_control *cntl) - { - enum bp_result result = BP_RESULT_FAILURE; - DIG_ENCODER_CONTROL_PARAMETERS_V3 params = {0}; -@@ -227,9 +229,9 @@ static enum bp_result encoder_control_digx_v3( - params.ucAction = bp->cmd_helper->encoder_action_to_atom(cntl->action); - params.usPixelClock = cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); - params.ucEncoderMode = -- (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -- cntl->signal, -- cntl->enable_dp_audio); -+ (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -+ cntl->signal, -+ cntl->enable_dp_audio); - params.ucLaneNum = (uint8_t)(cntl->lanes_number); - - if (cntl->signal == SIGNAL_TYPE_HDMI_TYPE_A) -@@ -257,8 +259,8 @@ static enum bp_result encoder_control_digx_v3( - } - - static enum bp_result encoder_control_digx_v4( -- struct bios_parser *bp, -- struct bp_encoder_control *cntl) -+ struct bios_parser *bp, -+ struct bp_encoder_control *cntl) - { - enum bp_result result = BP_RESULT_FAILURE; - DIG_ENCODER_CONTROL_PARAMETERS_V4 params = {0}; -@@ -275,9 +277,9 @@ static enum bp_result encoder_control_digx_v4( - params.ucAction = bp->cmd_helper->encoder_action_to_atom(cntl->action); - params.usPixelClock = cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); - params.ucEncoderMode = -- (uint8_t)(bp->cmd_helper->encoder_mode_bp_to_atom( -- cntl->signal, -- cntl->enable_dp_audio)); -+ (uint8_t)(bp->cmd_helper->encoder_mode_bp_to_atom( -+ cntl->signal, -+ cntl->enable_dp_audio)); - params.ucLaneNum = (uint8_t)(cntl->lanes_number); - - if (cntl->signal == SIGNAL_TYPE_HDMI_TYPE_A) -@@ -305,16 +307,16 @@ static enum bp_result encoder_control_digx_v4( - } - - /******************************************************************************* --******************************************************************************** --** --** DVO ENCODER CONTROL --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** DVO ENCODER CONTROL -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result dvo_encoder_control_v3( -- struct bios_parser *bp, -- struct bp_dvo_encoder_control *cntl); -+ struct bios_parser *bp, -+ struct bp_dvo_encoder_control *cntl); - - static void init_dvo_encoder_control(struct bios_parser *bp) - { -@@ -329,8 +331,8 @@ static void init_dvo_encoder_control(struct bios_parser *bp) - } - - static enum bp_result dvo_encoder_control_v3( -- struct bios_parser *bp, -- struct bp_dvo_encoder_control *cntl) -+ struct bios_parser *bp, -+ struct bp_dvo_encoder_control *cntl) - { - enum bp_result result = BP_RESULT_FAILURE; - DVO_ENCODER_CONTROL_PARAMETERS_V3 params; -@@ -364,25 +366,28 @@ static enum bp_result dvo_encoder_control_v3( - } - - /******************************************************************************* --******************************************************************************** --** --** TRANSMITTER CONTROL --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** TRANSMITTER CONTROL -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result transmitter_control_v2( -- struct bios_parser *bp, -- struct bp_transmitter_control *cntl); -+ struct bios_parser *bp, -+ struct bp_transmitter_control *cntl); - static enum bp_result transmitter_control_v3( -- struct bios_parser *bp, -- struct bp_transmitter_control *cntl); -+ struct bios_parser *bp, -+ struct bp_transmitter_control *cntl); - static enum bp_result transmitter_control_v4( - struct bios_parser *bp, - struct bp_transmitter_control *cntl); - static enum bp_result transmitter_control_v1_5( - struct bios_parser *bp, - struct bp_transmitter_control *cntl); -+static enum bp_result transmitter_control_v1_6( -+ struct bios_parser *bp, -+ struct bp_transmitter_control *cntl); - - static void init_transmitter_control(struct bios_parser *bp) - { -@@ -405,6 +410,9 @@ static void init_transmitter_control(struct bios_parser *bp) - case 5: - bp->cmd_tbl.transmitter_control = transmitter_control_v1_5; - break; -+ case 6: -+ bp->cmd_tbl.transmitter_control = transmitter_control_v1_6; -+ break; - default: - bp->cmd_tbl.transmitter_control = NULL; - break; -@@ -412,8 +420,8 @@ static void init_transmitter_control(struct bios_parser *bp) - } - - static enum bp_result transmitter_control_v2( -- struct bios_parser *bp, -- struct bp_transmitter_control *cntl) -+ struct bios_parser *bp, -+ struct bp_transmitter_control *cntl) - { - enum bp_result result = BP_RESULT_FAILURE; - DIG_TRANSMITTER_CONTROL_PARAMETERS_V2 params; -@@ -449,7 +457,7 @@ static enum bp_result transmitter_control_v2( - - /* connector object id */ - params.usInitInfo = -- cpu_to_le16((uint8_t)cntl->connector_obj_id.id); -+ cpu_to_le16((uint8_t)cntl->connector_obj_id.id); - break; - case TRANSMITTER_CONTROL_SET_VOLTAGE_AND_PREEMPASIS: - /* votage swing and pre-emphsis */ -@@ -471,13 +479,13 @@ static enum bp_result transmitter_control_v2( - * We need to convert from KHz units into 20KHz units - */ - params.usPixelClock = -- cpu_to_le16((uint16_t)(cntl->pixel_clock / 20)); -+ cpu_to_le16((uint16_t)(cntl->pixel_clock / 20)); - } else - /* link rate, half for dual link - * We need to convert from KHz units into 10KHz units - */ - params.usPixelClock = -- cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); -+ cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); - break; - } - -@@ -520,8 +528,8 @@ static enum bp_result transmitter_control_v2( - * =3 reserved - */ - params.acConfig.ucTransmitterSel = -- (uint8_t)bp->cmd_helper->transmitter_bp_to_atom( -- cntl->transmitter); -+ (uint8_t)bp->cmd_helper->transmitter_bp_to_atom( -+ cntl->transmitter); - - params.ucAction = (uint8_t)cntl->action; - -@@ -532,17 +540,17 @@ static enum bp_result transmitter_control_v2( - } - - static enum bp_result transmitter_control_v3( -- struct bios_parser *bp, -- struct bp_transmitter_control *cntl) -+ struct bios_parser *bp, -+ struct bp_transmitter_control *cntl) - { - enum bp_result result = BP_RESULT_FAILURE; - DIG_TRANSMITTER_CONTROL_PARAMETERS_V3 params; - uint32_t pll_id; - enum connector_id conn_id = -- dal_graphics_object_id_get_connector_id(cntl->connector_obj_id); -+ dal_graphics_object_id_get_connector_id(cntl->connector_obj_id); - const struct command_table_helper *cmd = bp->cmd_helper; - bool dual_link_conn = (CONNECTOR_ID_DUAL_LINK_DVII == conn_id) -- || (CONNECTOR_ID_DUAL_LINK_DVID == conn_id); -+ || (CONNECTOR_ID_DUAL_LINK_DVID == conn_id); - - dc_service_memset(¶ms, 0, sizeof(params)); - -@@ -577,7 +585,7 @@ static enum bp_result transmitter_control_v3( - - /* connector object id */ - params.usInitInfo = -- cpu_to_le16((uint8_t)(cntl->connector_obj_id.id)); -+ cpu_to_le16((uint8_t)(cntl->connector_obj_id.id)); - break; - case TRANSMITTER_CONTROL_SET_VOLTAGE_AND_PREEMPASIS: - /* votage swing and pre-emphsis */ -@@ -608,26 +616,26 @@ static enum bp_result transmitter_control_v3( - * We need to convert from KHz units into 20KHz units - */ - params.usPixelClock = -- cpu_to_le16((uint16_t)(cntl->pixel_clock / 20)); -+ cpu_to_le16((uint16_t)(cntl->pixel_clock / 20)); - } else { - /* link rate, half for dual link - * We need to convert from KHz units into 10KHz units - */ - params.usPixelClock = -- cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); -+ cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); - if (cntl->signal == SIGNAL_TYPE_HDMI_TYPE_A) - switch (cntl->color_depth) { - case COLOR_DEPTH_101010: - params.usPixelClock = -- cpu_to_le16((le16_to_cpu(params.usPixelClock) * 30) / 24); -+ cpu_to_le16((le16_to_cpu(params.usPixelClock) * 30) / 24); - break; - case COLOR_DEPTH_121212: - params.usPixelClock = -- cpu_to_le16((le16_to_cpu(params.usPixelClock) * 36) / 24); -+ cpu_to_le16((le16_to_cpu(params.usPixelClock) * 36) / 24); - break; - case COLOR_DEPTH_161616: - params.usPixelClock = -- cpu_to_le16((le16_to_cpu(params.usPixelClock) * 48) / 24); -+ cpu_to_le16((le16_to_cpu(params.usPixelClock) * 48) / 24); - break; - default: - break; -@@ -643,8 +651,8 @@ static enum bp_result transmitter_control_v3( - params.acConfig.fCoherentMode = cntl->coherent; - - if ((TRANSMITTER_UNIPHY_B == cntl->transmitter) -- || (TRANSMITTER_UNIPHY_D == cntl->transmitter) -- || (TRANSMITTER_UNIPHY_F == cntl->transmitter)) -+ || (TRANSMITTER_UNIPHY_D == cntl->transmitter) -+ || (TRANSMITTER_UNIPHY_F == cntl->transmitter)) - /* Bit2: Transmitter Link selection - * =0 when bit0=0, single link A/C/E, when bit0=1, - * master link A/C/E -@@ -668,7 +676,7 @@ static enum bp_result transmitter_control_v3( - * =3 reserved - */ - params.acConfig.ucTransmitterSel = -- (uint8_t)cmd->transmitter_bp_to_atom(cntl->transmitter); -+ (uint8_t)cmd->transmitter_bp_to_atom(cntl->transmitter); - - params.ucLaneNum = (uint8_t)cntl->lanes_number; - -@@ -690,7 +698,7 @@ static enum bp_result transmitter_control_v4( - DIG_TRANSMITTER_CONTROL_PARAMETERS_V4 params; - uint32_t ref_clk_src_id; - enum connector_id conn_id = -- dal_graphics_object_id_get_connector_id(cntl->connector_obj_id); -+ dal_graphics_object_id_get_connector_id(cntl->connector_obj_id); - const struct command_table_helper *cmd = bp->cmd_helper; - - dc_service_memset(¶ms, 0, sizeof(params)); -@@ -715,7 +723,7 @@ static enum bp_result transmitter_control_v4( - case TRANSMITTER_CONTROL_INIT: - { - if ((CONNECTOR_ID_DUAL_LINK_DVII == conn_id) || -- (CONNECTOR_ID_DUAL_LINK_DVID == conn_id)) -+ (CONNECTOR_ID_DUAL_LINK_DVID == conn_id)) - /* on INIT this bit should be set according to the - * phisycal connector - * Bit0: dual link connector flag -@@ -726,7 +734,7 @@ static enum bp_result transmitter_control_v4( - - /* connector object id */ - params.usInitInfo = -- cpu_to_le16((uint8_t)(cntl->connector_obj_id.id)); -+ cpu_to_le16((uint8_t)(cntl->connector_obj_id.id)); - } - break; - case TRANSMITTER_CONTROL_SET_VOLTAGE_AND_PREEMPASIS: -@@ -736,7 +744,7 @@ static enum bp_result transmitter_control_v4( - break; - default: - if ((CONNECTOR_ID_DUAL_LINK_DVII == conn_id) || -- (CONNECTOR_ID_DUAL_LINK_DVID == conn_id)) -+ (CONNECTOR_ID_DUAL_LINK_DVID == conn_id)) - /* on ENABLE/DISABLE this bit should be set according to - * actual timing (number of lanes) - * Bit0: dual link connector flag -@@ -751,27 +759,27 @@ static enum bp_result transmitter_control_v4( - * We need to convert from KHz units into 20KHz units - */ - params.usPixelClock = -- cpu_to_le16((uint16_t)(cntl->pixel_clock / 20)); -+ cpu_to_le16((uint16_t)(cntl->pixel_clock / 20)); - else { - /* link rate, half for dual link - * We need to convert from KHz units into 10KHz units - */ - params.usPixelClock = -- cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); -+ cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); - - if (cntl->signal == SIGNAL_TYPE_HDMI_TYPE_A) - switch (cntl->color_depth) { - case COLOR_DEPTH_101010: - params.usPixelClock = -- cpu_to_le16((le16_to_cpu(params.usPixelClock) * 30) / 24); -+ cpu_to_le16((le16_to_cpu(params.usPixelClock) * 30) / 24); - break; - case COLOR_DEPTH_121212: - params.usPixelClock = -- cpu_to_le16((le16_to_cpu(params.usPixelClock) * 36) / 24); -+ cpu_to_le16((le16_to_cpu(params.usPixelClock) * 36) / 24); - break; - case COLOR_DEPTH_161616: - params.usPixelClock = -- cpu_to_le16((le16_to_cpu(params.usPixelClock) * 48) / 24); -+ cpu_to_le16((le16_to_cpu(params.usPixelClock) * 48) / 24); - break; - default: - break; -@@ -878,8 +886,8 @@ static enum bp_result transmitter_control_v1_5( - break; - } - break; -- default: -- break; -+ default: -+ break; - } - - if (EXEC_BIOS_CMD_TABLE(UNIPHYTransmitterControl, params)) -@@ -888,13 +896,76 @@ static enum bp_result transmitter_control_v1_5( - return result; - } - -+static enum bp_result transmitter_control_v1_6( -+ struct bios_parser *bp, -+ struct bp_transmitter_control *cntl) -+{ -+ enum bp_result result = BP_RESULT_FAILURE; -+#ifdef LATEST_ATOM_BIOS_SUPPORT -+ const struct command_table_helper *cmd = bp->cmd_helper; -+ DIG_TRANSMITTER_CONTROL_PARAMETERS_V1_6 params; -+ -+ dc_service_memset(¶ms, 0, sizeof(params)); -+ params.ucPhyId = cmd->phy_id_to_atom(cntl->transmitter); -+ params.ucAction = (uint8_t)cntl->action; -+ -+ if (cntl->action == TRANSMITTER_CONTROL_SET_VOLTAGE_AND_PREEMPASIS) -+ params.ucDPLaneSet = (uint8_t)cntl->lane_settings; -+ else -+ params.ucDigMode = cmd->signal_type_to_atom_dig_mode(cntl->signal); -+ -+ params.ucLaneNum = (uint8_t)cntl->lanes_number; -+ params.ucHPDSel = cmd->hpd_sel_to_atom(cntl->hpd_sel); -+ params.ucDigEncoderSel = cmd->dig_encoder_sel_to_atom(cntl->engine_id); -+ params.ucConnObjId = (uint8_t)cntl->connector_obj_id.id; -+ params.ulSymClock = cntl->pixel_clock/10; -+ -+ /* -+ * In SI/TN case, caller have to set usPixelClock as following: -+ * DP mode: usPixelClock = DP_LINK_CLOCK/10 -+ * (DP_LINK_CLOCK = 1.62GHz, 2.7GHz, 5.4GHz) -+ * DVI single link mode: usPixelClock = pixel clock -+ * DVI dual link mode: usPixelClock = pixel clock -+ * HDMI mode: usPixelClock = pixel clock * deep_color_ratio -+ * (=1: 8bpp, =1.25: 10bpp, =1.5:12bpp, =2: 16bpp) -+ * LVDS mode: usPixelClock = pixel clock -+ */ -+ switch (cntl->signal) { -+ case SIGNAL_TYPE_HDMI_TYPE_A: -+ switch (cntl->color_depth) { -+ case COLOR_DEPTH_101010: -+ params.ulSymClock = -+ cpu_to_le16((le16_to_cpu(params.ulSymClock) * 30) / 24); -+ break; -+ case COLOR_DEPTH_121212: -+ params.ulSymClock = -+ cpu_to_le16((le16_to_cpu(params.ulSymClock) * 36) / 24); -+ break; -+ case COLOR_DEPTH_161616: -+ params.ulSymClock = -+ cpu_to_le16((le16_to_cpu(params.ulSymClock) * 48) / 24); -+ break; -+ default: -+ break; -+ } -+ break; -+ default: -+ break; -+ } -+ -+ if (EXEC_BIOS_CMD_TABLE(UNIPHYTransmitterControl, params)) -+ result = BP_RESULT_OK; -+#endif -+ return result; -+} -+ - /******************************************************************************* --******************************************************************************** --** --** SET PIXEL CLOCK --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** SET PIXEL CLOCK -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result set_pixel_clock_v3( - struct bios_parser *bp, -@@ -905,6 +976,9 @@ static enum bp_result set_pixel_clock_v5( - static enum bp_result set_pixel_clock_v6( - struct bios_parser *bp, - struct bp_pixel_clock_parameters *bp_params); -+static enum bp_result set_pixel_clock_v7( -+ struct bios_parser *bp, -+ struct bp_pixel_clock_parameters *bp_params); - - static void init_set_pixel_clock(struct bios_parser *bp) - { -@@ -918,6 +992,9 @@ static void init_set_pixel_clock(struct bios_parser *bp) - case 6: - bp->cmd_tbl.set_pixel_clock = set_pixel_clock_v6; - break; -+ case 7: -+ bp->cmd_tbl.set_pixel_clock = set_pixel_clock_v7; -+ break; - default: - bp->cmd_tbl.set_pixel_clock = NULL; - break; -@@ -942,26 +1019,26 @@ static enum bp_result set_pixel_clock_v3( - return BP_RESULT_BADINPUT; - - allocation.sPCLKInput.usRefDiv = -- cpu_to_le16((uint16_t)bp_params->reference_divider); -+ cpu_to_le16((uint16_t)bp_params->reference_divider); - allocation.sPCLKInput.usFbDiv = -- cpu_to_le16((uint16_t)bp_params->feedback_divider); -+ cpu_to_le16((uint16_t)bp_params->feedback_divider); - allocation.sPCLKInput.ucFracFbDiv = -- (uint8_t)bp_params->fractional_feedback_divider; -+ (uint8_t)bp_params->fractional_feedback_divider; - allocation.sPCLKInput.ucPostDiv = -- (uint8_t)bp_params->pixel_clock_post_divider; -+ (uint8_t)bp_params->pixel_clock_post_divider; - - /* We need to convert from KHz units into 10KHz units */ - allocation.sPCLKInput.usPixelClock = -- cpu_to_le16((uint16_t)(bp_params->target_pixel_clock / 10)); -+ cpu_to_le16((uint16_t)(bp_params->target_pixel_clock / 10)); - - params = (PIXEL_CLOCK_PARAMETERS_V3 *)&allocation.sPCLKInput; - params->ucTransmitterId = -- bp->cmd_helper->encoder_id_to_atom( -- dal_graphics_object_id_get_encoder_id( -- bp_params->encoder_object_id)); -+ bp->cmd_helper->encoder_id_to_atom( -+ dal_graphics_object_id_get_encoder_id( -+ bp_params->encoder_object_id)); - params->ucEncoderMode = -- (uint8_t)(bp->cmd_helper->encoder_mode_bp_to_atom( -- bp_params->signal_type, false)); -+ (uint8_t)(bp->cmd_helper->encoder_mode_bp_to_atom( -+ bp_params->signal_type, false)); - - if (bp_params->flags.FORCE_PROGRAMMING_OF_PLL) - params->ucMiscInfo |= PIXEL_CLOCK_MISC_FORCE_PROG_PPLL; -@@ -1008,37 +1085,37 @@ static enum bp_result set_pixel_clock_v5( - dc_service_memset(&clk, 0, sizeof(clk)); - - if (bp->cmd_helper->clock_source_id_to_atom(bp_params->pll_id, &pll_id) -- && bp->cmd_helper->controller_id_to_atom( -- bp_params->controller_id, &controller_id)) { -+ && bp->cmd_helper->controller_id_to_atom( -+ bp_params->controller_id, &controller_id)) { - clk.sPCLKInput.ucCRTC = controller_id; - clk.sPCLKInput.ucPpll = (uint8_t)pll_id; - clk.sPCLKInput.ucRefDiv = -- (uint8_t)(bp_params->reference_divider); -+ (uint8_t)(bp_params->reference_divider); - clk.sPCLKInput.usFbDiv = -- cpu_to_le16((uint16_t)(bp_params->feedback_divider)); -+ cpu_to_le16((uint16_t)(bp_params->feedback_divider)); - clk.sPCLKInput.ulFbDivDecFrac = -- cpu_to_le32(bp_params->fractional_feedback_divider); -+ cpu_to_le32(bp_params->fractional_feedback_divider); - clk.sPCLKInput.ucPostDiv = -- (uint8_t)(bp_params->pixel_clock_post_divider); -+ (uint8_t)(bp_params->pixel_clock_post_divider); - clk.sPCLKInput.ucTransmitterID = -- bp->cmd_helper->encoder_id_to_atom( -- dal_graphics_object_id_get_encoder_id( -- bp_params->encoder_object_id)); -+ bp->cmd_helper->encoder_id_to_atom( -+ dal_graphics_object_id_get_encoder_id( -+ bp_params->encoder_object_id)); - clk.sPCLKInput.ucEncoderMode = -- (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -- bp_params->signal_type, false); -+ (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -+ bp_params->signal_type, false); - - /* We need to convert from KHz units into 10KHz units */ - clk.sPCLKInput.usPixelClock = -- cpu_to_le16((uint16_t)(bp_params->target_pixel_clock / 10)); -+ cpu_to_le16((uint16_t)(bp_params->target_pixel_clock / 10)); - - if (bp_params->flags.FORCE_PROGRAMMING_OF_PLL) - clk.sPCLKInput.ucMiscInfo |= -- PIXEL_CLOCK_MISC_FORCE_PROG_PPLL; -+ PIXEL_CLOCK_MISC_FORCE_PROG_PPLL; - - if (bp_params->flags.SET_EXTERNAL_REF_DIV_SRC) - clk.sPCLKInput.ucMiscInfo |= -- PIXEL_CLOCK_MISC_REF_DIV_SRC; -+ PIXEL_CLOCK_MISC_REF_DIV_SRC; - - /* clkV5.ucMiscInfo bit[3:2]= HDMI panel bit depth: =0: 24bpp - * =1:30bpp, =2:32bpp -@@ -1065,8 +1142,8 @@ static enum bp_result set_pixel_clock_v6( - dc_service_memset(&clk, 0, sizeof(clk)); - - if (bp->cmd_helper->clock_source_id_to_atom(bp_params->pll_id, &pll_id) -- && bp->cmd_helper->controller_id_to_atom( -- bp_params->controller_id, &controller_id)) { -+ && bp->cmd_helper->controller_id_to_atom( -+ bp_params->controller_id, &controller_id)) { - /* Note: VBIOS still wants to use ucCRTC name which is now - * 1 byte in ULONG - *typedef struct _CRTC_PIXEL_CLOCK_FREQ -@@ -1089,33 +1166,33 @@ static enum bp_result set_pixel_clock_v6( - clk.sPCLKInput.ulCrtcPclkFreq.ucCRTC = controller_id; - clk.sPCLKInput.ucPpll = (uint8_t) pll_id; - clk.sPCLKInput.ucRefDiv = -- (uint8_t) bp_params->reference_divider; -+ (uint8_t) bp_params->reference_divider; - clk.sPCLKInput.usFbDiv = -- cpu_to_le16((uint16_t) bp_params->feedback_divider); -+ cpu_to_le16((uint16_t) bp_params->feedback_divider); - clk.sPCLKInput.ulFbDivDecFrac = -- cpu_to_le32(bp_params->fractional_feedback_divider); -+ cpu_to_le32(bp_params->fractional_feedback_divider); - clk.sPCLKInput.ucPostDiv = -- (uint8_t) bp_params->pixel_clock_post_divider; -+ (uint8_t) bp_params->pixel_clock_post_divider; - clk.sPCLKInput.ucTransmitterID = -- bp->cmd_helper->encoder_id_to_atom( -- dal_graphics_object_id_get_encoder_id( -- bp_params->encoder_object_id)); -+ bp->cmd_helper->encoder_id_to_atom( -+ dal_graphics_object_id_get_encoder_id( -+ bp_params->encoder_object_id)); - clk.sPCLKInput.ucEncoderMode = -- (uint8_t) bp->cmd_helper->encoder_mode_bp_to_atom( -- bp_params->signal_type, false); -+ (uint8_t) bp->cmd_helper->encoder_mode_bp_to_atom( -+ bp_params->signal_type, false); - - /* We need to convert from KHz units into 10KHz units */ - clk.sPCLKInput.ulCrtcPclkFreq.ulPixelClock = -- cpu_to_le32(bp_params->target_pixel_clock / 10); -+ cpu_to_le32(bp_params->target_pixel_clock / 10); - - if (bp_params->flags.FORCE_PROGRAMMING_OF_PLL) { - clk.sPCLKInput.ucMiscInfo |= -- PIXEL_CLOCK_V6_MISC_FORCE_PROG_PPLL; -+ PIXEL_CLOCK_V6_MISC_FORCE_PROG_PPLL; - } - - if (bp_params->flags.SET_EXTERNAL_REF_DIV_SRC) { - clk.sPCLKInput.ucMiscInfo |= -- PIXEL_CLOCK_V6_MISC_REF_DIV_SRC; -+ PIXEL_CLOCK_V6_MISC_REF_DIV_SRC; - } - - /* clkV6.ucMiscInfo bit[3:2]= HDMI panel bit depth: =0: -@@ -1131,13 +1208,84 @@ static enum bp_result set_pixel_clock_v6( - return result; - } - -+static enum bp_result set_pixel_clock_v7( -+ struct bios_parser *bp, -+ struct bp_pixel_clock_parameters *bp_params) -+{ -+ enum bp_result result = BP_RESULT_FAILURE; -+#ifdef LATEST_ATOM_BIOS_SUPPORT -+ PIXEL_CLOCK_PARAMETERS_V7 clk; -+ uint8_t controller_id; -+ uint32_t pll_id; -+ -+ dc_service_memset(&clk, 0, sizeof(clk)); -+ -+ if (bp->cmd_helper->clock_source_id_to_atom(bp_params->pll_id, &pll_id) -+ && bp->cmd_helper->controller_id_to_atom(bp_params->controller_id, &controller_id)) { -+ /* Note: VBIOS still wants to use ucCRTC name which is now -+ * 1 byte in ULONG -+ *typedef struct _CRTC_PIXEL_CLOCK_FREQ -+ *{ -+ * target the pixel clock to drive the CRTC timing. -+ * ULONG ulPixelClock:24; -+ * 0 means disable PPLL/DCPLL. Expanded to 24 bits comparing to -+ * previous version. -+ * ATOM_CRTC1~6, indicate the CRTC controller to -+ * ULONG ucCRTC:8; -+ * drive the pixel clock. not used for DCPLL case. -+ *}CRTC_PIXEL_CLOCK_FREQ; -+ *union -+ *{ -+ * pixel clock and CRTC id frequency -+ * CRTC_PIXEL_CLOCK_FREQ ulCrtcPclkFreq; -+ * ULONG ulDispEngClkFreq; dispclk frequency -+ *}; -+ */ -+ clk.ucCRTC = controller_id; -+ clk.ucPpll = (uint8_t) pll_id; -+ clk.ucTransmitterID = bp->cmd_helper->encoder_id_to_atom(dal_graphics_object_id_get_encoder_id(bp_params->encoder_object_id)); -+ clk.ucEncoderMode = (uint8_t) bp->cmd_helper->encoder_mode_bp_to_atom(bp_params->signal_type, false); -+ -+ /* We need to convert from KHz units into 10KHz units */ -+ clk.ulPixelClock = cpu_to_le32(bp_params->target_pixel_clock / 10); -+ -+ clk.ucDeepColorRatio = (uint8_t) bp->cmd_helper->transmitter_color_depth_to_atom(bp_params->color_depth); -+ -+ if (bp_params->flags.FORCE_PROGRAMMING_OF_PLL) -+ clk.ucMiscInfo |= PIXEL_CLOCK_V7_MISC_FORCE_PROG_PPLL; -+ -+ if (bp_params->flags.SET_EXTERNAL_REF_DIV_SRC) -+ clk.ucMiscInfo |= PIXEL_CLOCK_V7_MISC_REF_DIV_SRC; -+ -+ if (bp_params->flags.PROGRAM_PHY_PLL_ONLY) -+ clk.ucMiscInfo |= PIXEL_CLOCK_V7_MISC_PROG_PHYPLL; -+ -+ if (bp_params->flags.SUPPORT_YUV_420) -+ clk.ucMiscInfo |= PIXEL_CLOCK_V7_MISC_YUV420_MODE; -+ -+ if (bp_params->flags.SET_XTALIN_REF_SRC) -+ clk.ucMiscInfo |= PIXEL_CLOCK_V7_MISC_REF_DIV_SRC_XTALIN; -+ -+ if (bp_params->flags.SET_GENLOCK_REF_DIV_SRC) -+ clk.ucMiscInfo |= PIXEL_CLOCK_V7_MISC_REF_DIV_SRC_GENLK; -+ -+ if (bp_params->signal_type == SIGNAL_TYPE_DVI_DUAL_LINK) -+ clk.ucMiscInfo |= PIXEL_CLOCK_V7_MISC_DVI_DUALLINK_EN; -+ -+ if (EXEC_BIOS_CMD_TABLE(SetPixelClock, clk)) -+ result = BP_RESULT_OK; -+ } -+#endif -+ return result; -+} -+ - /******************************************************************************* --******************************************************************************** --** --** ENABLE PIXEL CLOCK SS --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** ENABLE PIXEL CLOCK SS -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - static enum bp_result enable_spread_spectrum_on_ppll_v1( - struct bios_parser *bp, - struct bp_spread_spectrum_parameters *bp_params, -@@ -1156,15 +1304,15 @@ static void init_enable_spread_spectrum_on_ppll(struct bios_parser *bp) - switch (BIOS_CMD_TABLE_PARA_REVISION(EnableSpreadSpectrumOnPPLL)) { - case 1: - bp->cmd_tbl.enable_spread_spectrum_on_ppll = -- enable_spread_spectrum_on_ppll_v1; -+ enable_spread_spectrum_on_ppll_v1; - break; - case 2: - bp->cmd_tbl.enable_spread_spectrum_on_ppll = -- enable_spread_spectrum_on_ppll_v2; -+ enable_spread_spectrum_on_ppll_v2; - break; - case 3: - bp->cmd_tbl.enable_spread_spectrum_on_ppll = -- enable_spread_spectrum_on_ppll_v3; -+ enable_spread_spectrum_on_ppll_v3; - break; - default: - bp->cmd_tbl.enable_spread_spectrum_on_ppll = NULL; -@@ -1188,14 +1336,14 @@ static enum bp_result enable_spread_spectrum_on_ppll_v1( - params.ucEnable = ATOM_DISABLE; - - params.usSpreadSpectrumPercentage = -- cpu_to_le16((uint16_t)bp_params->percentage); -+ cpu_to_le16((uint16_t)bp_params->percentage); - params.ucSpreadSpectrumStep = -- (uint8_t)bp_params->ver1.step; -+ (uint8_t)bp_params->ver1.step; - params.ucSpreadSpectrumDelay = -- (uint8_t)bp_params->ver1.delay; -+ (uint8_t)bp_params->ver1.delay; - /* convert back to unit of 10KHz */ - params.ucSpreadSpectrumRange = -- (uint8_t)(bp_params->ver1.range / 10000); -+ (uint8_t)(bp_params->ver1.range / 10000); - - if (bp_params->flags.EXTERNAL_SS) - params.ucSpreadSpectrumType |= ATOM_EXTERNAL_SS_MASK; -@@ -1237,28 +1385,28 @@ static enum bp_result enable_spread_spectrum_on_ppll_v2( - params.ucEnable = ATOM_ENABLE; - - params.usSpreadSpectrumPercentage = -- cpu_to_le16((uint16_t)(bp_params->percentage)); -+ cpu_to_le16((uint16_t)(bp_params->percentage)); - params.usSpreadSpectrumStep = -- cpu_to_le16((uint16_t)(bp_params->ds.ds_frac_size)); -+ cpu_to_le16((uint16_t)(bp_params->ds.ds_frac_size)); - - if (bp_params->flags.EXTERNAL_SS) - params.ucSpreadSpectrumType |= -- ATOM_PPLL_SS_TYPE_V2_EXT_SPREAD; -+ ATOM_PPLL_SS_TYPE_V2_EXT_SPREAD; - - if (bp_params->flags.CENTER_SPREAD) - params.ucSpreadSpectrumType |= -- ATOM_PPLL_SS_TYPE_V2_CENTRE_SPREAD; -+ ATOM_PPLL_SS_TYPE_V2_CENTRE_SPREAD; - - /* Both amounts need to be left shifted first before bit - * comparison. Otherwise, the result will always be zero here - */ - params.usSpreadSpectrumAmount = cpu_to_le16((uint16_t)( -- ((bp_params->ds.feedback_amount << -- ATOM_PPLL_SS_AMOUNT_V2_FBDIV_SHIFT) & -- ATOM_PPLL_SS_AMOUNT_V2_FBDIV_MASK) | -- ((bp_params->ds.nfrac_amount << -- ATOM_PPLL_SS_AMOUNT_V2_NFRAC_SHIFT) & -- ATOM_PPLL_SS_AMOUNT_V2_NFRAC_MASK))); -+ ((bp_params->ds.feedback_amount << -+ ATOM_PPLL_SS_AMOUNT_V2_FBDIV_SHIFT) & -+ ATOM_PPLL_SS_AMOUNT_V2_FBDIV_MASK) | -+ ((bp_params->ds.nfrac_amount << -+ ATOM_PPLL_SS_AMOUNT_V2_NFRAC_SHIFT) & -+ ATOM_PPLL_SS_AMOUNT_V2_NFRAC_MASK))); - } else - params.ucEnable = ATOM_DISABLE; - -@@ -1307,27 +1455,27 @@ static enum bp_result enable_spread_spectrum_on_ppll_v3( - params.ucEnable = ATOM_ENABLE; - - params.usSpreadSpectrumAmountFrac = -- cpu_to_le16((uint16_t)(bp_params->ds_frac_amount)); -+ cpu_to_le16((uint16_t)(bp_params->ds_frac_amount)); - params.usSpreadSpectrumStep = -- cpu_to_le16((uint16_t)(bp_params->ds.ds_frac_size)); -+ cpu_to_le16((uint16_t)(bp_params->ds.ds_frac_size)); - - if (bp_params->flags.EXTERNAL_SS) - params.ucSpreadSpectrumType |= -- ATOM_PPLL_SS_TYPE_V3_EXT_SPREAD; -+ ATOM_PPLL_SS_TYPE_V3_EXT_SPREAD; - if (bp_params->flags.CENTER_SPREAD) - params.ucSpreadSpectrumType |= -- ATOM_PPLL_SS_TYPE_V3_CENTRE_SPREAD; -+ ATOM_PPLL_SS_TYPE_V3_CENTRE_SPREAD; - - /* Both amounts need to be left shifted first before bit - * comparison. Otherwise, the result will always be zero here - */ - params.usSpreadSpectrumAmount = cpu_to_le16((uint16_t)( -- ((bp_params->ds.feedback_amount << -- ATOM_PPLL_SS_AMOUNT_V3_FBDIV_SHIFT) & -- ATOM_PPLL_SS_AMOUNT_V3_FBDIV_MASK) | -- ((bp_params->ds.nfrac_amount << -- ATOM_PPLL_SS_AMOUNT_V3_NFRAC_SHIFT) & -- ATOM_PPLL_SS_AMOUNT_V3_NFRAC_MASK))); -+ ((bp_params->ds.feedback_amount << -+ ATOM_PPLL_SS_AMOUNT_V3_FBDIV_SHIFT) & -+ ATOM_PPLL_SS_AMOUNT_V3_FBDIV_MASK) | -+ ((bp_params->ds.nfrac_amount << -+ ATOM_PPLL_SS_AMOUNT_V3_NFRAC_SHIFT) & -+ ATOM_PPLL_SS_AMOUNT_V3_NFRAC_MASK))); - } else - params.ucEnable = ATOM_DISABLE; - -@@ -1338,12 +1486,12 @@ static enum bp_result enable_spread_spectrum_on_ppll_v3( - } - - /******************************************************************************* --******************************************************************************** --** --** ADJUST DISPLAY PLL --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** ADJUST DISPLAY PLL -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result adjust_display_pll_v2( - struct bios_parser *bp, -@@ -1372,7 +1520,7 @@ static bool adjust_display_pll_bug_patch(ADJUST_DISPLAY_PLL_PARAMETERS *params) - /* vbios bug: pixel clock should not be doubled for DVO with 24bit - * interface */ - if ((params->ucTransmitterID == ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1) -- && (params->ucDVOConfig == DVO_ENCODER_CONFIG_24BIT)) -+ && (params->ucDVOConfig == DVO_ENCODER_CONFIG_24BIT)) - /* the current pixel clock is good. no adjustment is required */ - return true; - return false; -@@ -1391,16 +1539,16 @@ static enum bp_result adjust_display_pll_v2( - - params.usPixelClock = cpu_to_le16((uint16_t)(pixel_clock_10KHz_in)); - params.ucTransmitterID = -- bp->cmd_helper->encoder_id_to_atom( -- dal_graphics_object_id_get_encoder_id( -- bp_params->encoder_object_id)); -+ bp->cmd_helper->encoder_id_to_atom( -+ dal_graphics_object_id_get_encoder_id( -+ bp_params->encoder_object_id)); - params.ucEncodeMode = -- (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -- bp_params->signal_type, false); -+ (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -+ bp_params->signal_type, false); - params.ucDVOConfig = (uint8_t)(bp_params->dvo_config); - - if (adjust_display_pll_bug_patch(¶ms) -- || EXEC_BIOS_CMD_TABLE(AdjustDisplayPll, params)) { -+ || EXEC_BIOS_CMD_TABLE(AdjustDisplayPll, params)) { - /* Convert output pixel clock back 10KHz-->KHz: multiply - * original pixel clock in KHz by ratio - * [output pxlClk/input pxlClk] */ -@@ -1409,8 +1557,8 @@ static enum bp_result adjust_display_pll_v2( - uint64_t pixel_clock = (uint64_t)bp_params->pixel_clock; - - bp_params->adjusted_pixel_clock = -- div_u64(pixel_clock * pixel_clock_10KHz_out, -- pixel_clock_10KHz_in); -+ div_u64(pixel_clock * pixel_clock_10KHz_out, -+ pixel_clock_10KHz_in); - result = BP_RESULT_OK; - } - -@@ -1431,31 +1579,31 @@ static enum bp_result adjust_display_pll_v3( - * output pixel clock back 10KHz-->KHz */ - params.sInput.usPixelClock = cpu_to_le16((uint16_t)pixel_clk_10_kHz_in); - params.sInput.ucTransmitterID = -- bp->cmd_helper->encoder_id_to_atom( -- dal_graphics_object_id_get_encoder_id( -- bp_params->encoder_object_id)); -+ bp->cmd_helper->encoder_id_to_atom( -+ dal_graphics_object_id_get_encoder_id( -+ bp_params->encoder_object_id)); - params.sInput.ucEncodeMode = -- (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -- bp_params->signal_type, false); -+ (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -+ bp_params->signal_type, false); - - if (DISP_PLL_CONFIG_DVO_DDR_MODE_LOW_12BIT == -- bp_params->display_pll_config) -+ bp_params->display_pll_config) - params.sInput.ucDispPllConfig = -- DISPPLL_CONFIG_DVO_DDR_SPEED | -- DISPPLL_CONFIG_DVO_LOW12BIT; -+ DISPPLL_CONFIG_DVO_DDR_SPEED | -+ DISPPLL_CONFIG_DVO_LOW12BIT; - else if (DISP_PLL_CONFIG_DVO_DDR_MODE_UPPER_12BIT == -- bp_params->display_pll_config) -+ bp_params->display_pll_config) - params.sInput.ucDispPllConfig = -- DISPPLL_CONFIG_DVO_DDR_SPEED | -- DISPPLL_CONFIG_DVO_UPPER12BIT; -+ DISPPLL_CONFIG_DVO_DDR_SPEED | -+ DISPPLL_CONFIG_DVO_UPPER12BIT; - else if (DISP_PLL_CONFIG_DVO_DDR_MODE_24BIT == -- bp_params->display_pll_config) -+ bp_params->display_pll_config) - params.sInput.ucDispPllConfig = -- DISPPLL_CONFIG_DVO_DDR_SPEED | DISPPLL_CONFIG_DVO_24BIT; -+ DISPPLL_CONFIG_DVO_DDR_SPEED | DISPPLL_CONFIG_DVO_24BIT; - else - /* this does not mean anything here */ - params.sInput.ucDispPllConfig = -- (uint8_t)(bp_params->display_pll_config); -+ (uint8_t)(bp_params->display_pll_config); - - if (bp_params->ss_enable == true) - params.sInput.ucDispPllConfig |= DISPPLL_CONFIG_SS_ENABLE; -@@ -1468,13 +1616,13 @@ static enum bp_result adjust_display_pll_v3( - * original pixel clock in KHz by ratio - * [output pxlClk/input pxlClk] */ - uint64_t pixel_clk_10_khz_out = -- (uint64_t)le32_to_cpu(params.sOutput.ulDispPllFreq); -+ (uint64_t)le32_to_cpu(params.sOutput.ulDispPllFreq); - uint64_t pixel_clk = (uint64_t)bp_params->pixel_clock; - - if (pixel_clk_10_kHz_in != 0) { - bp_params->adjusted_pixel_clock = -- div_u64(pixel_clk * pixel_clk_10_khz_out, -- pixel_clk_10_kHz_in); -+ div_u64(pixel_clk * pixel_clk_10_khz_out, -+ pixel_clk_10_kHz_in); - } else { - bp_params->adjusted_pixel_clock = 0; - BREAK_TO_DEBUGGER(); -@@ -1490,12 +1638,12 @@ static enum bp_result adjust_display_pll_v3( - } - - /******************************************************************************* --******************************************************************************** --** --** DAC ENCODER CONTROL --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** DAC ENCODER CONTROL -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result dac1_encoder_control_v1( - struct bios_parser *bp, -@@ -1589,12 +1737,12 @@ static enum bp_result dac2_encoder_control_v1( - } - - /******************************************************************************* --******************************************************************************** --** --** DAC OUTPUT CONTROL --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** DAC OUTPUT CONTROL -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - static enum bp_result dac1_output_control_v1( - struct bios_parser *bp, - bool enable); -@@ -1623,7 +1771,7 @@ static void init_dac_output_control(struct bios_parser *bp) - } - - static enum bp_result dac1_output_control_v1( -- struct bios_parser *bp, bool enable) -+ struct bios_parser *bp, bool enable) - { - enum bp_result result = BP_RESULT_FAILURE; - DISPLAY_DEVICE_OUTPUT_CONTROL_PS_ALLOCATION params; -@@ -1640,7 +1788,7 @@ static enum bp_result dac1_output_control_v1( - } - - static enum bp_result dac2_output_control_v1( -- struct bios_parser *bp, bool enable) -+ struct bios_parser *bp, bool enable) - { - enum bp_result result = BP_RESULT_FAILURE; - DISPLAY_DEVICE_OUTPUT_CONTROL_PS_ALLOCATION params; -@@ -1657,12 +1805,12 @@ static enum bp_result dac2_output_control_v1( - } - - /******************************************************************************* --******************************************************************************** --** --** DAC LOAD DETECTION --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** DAC LOAD DETECTION -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum signal_type dac_load_detection_v3( - struct bios_parser *bp, -@@ -1711,8 +1859,8 @@ static enum signal_type dac_load_detection_v3( - break; - } - break; -- default: -- return signal; -+ default: -+ return signal; - } - - /* set the encoder to detect on */ -@@ -1736,10 +1884,10 @@ static enum signal_type dac_load_detection_v3( - return signal; - #if defined(CONFIG_DRM_AMD_DAL_VBIOS_PRESENT) - signal = bp->bios_helper->detect_sink( -- bp->ctx, -- encoder, -- connector, -- display_signal); -+ bp->ctx, -+ encoder, -+ connector, -+ display_signal); - #else - BREAK_TO_DEBUGGER(); /* VBios is needed */ - #endif -@@ -1748,17 +1896,17 @@ static enum signal_type dac_load_detection_v3( - } - - /******************************************************************************* --******************************************************************************** --** --** BLANK CRTC --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** BLANK CRTC -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result blank_crtc_v1( -- struct bios_parser *bp, -- struct bp_blank_crtc_parameters *bp_params, -- bool blank); -+ struct bios_parser *bp, -+ struct bp_blank_crtc_parameters *bp_params, -+ bool blank); - - static void init_blank_crtc(struct bios_parser *bp) - { -@@ -1773,9 +1921,9 @@ static void init_blank_crtc(struct bios_parser *bp) - } - - static enum bp_result blank_crtc_v1( -- struct bios_parser *bp, -- struct bp_blank_crtc_parameters *bp_params, -- bool blank) -+ struct bios_parser *bp, -+ struct bp_blank_crtc_parameters *bp_params, -+ bool blank) - { - enum bp_result result = BP_RESULT_FAILURE; - BLANK_CRTC_PARAMETERS params = {0}; -@@ -1790,11 +1938,11 @@ static enum bp_result blank_crtc_v1( - else - params.ucBlanking = ATOM_BLANKING_OFF; - params.usBlackColorRCr = -- cpu_to_le16((uint16_t)bp_params->black_color_rcr); -+ cpu_to_le16((uint16_t)bp_params->black_color_rcr); - params.usBlackColorGY = -- cpu_to_le16((uint16_t)bp_params->black_color_gy); -+ cpu_to_le16((uint16_t)bp_params->black_color_gy); - params.usBlackColorBCb = -- cpu_to_le16((uint16_t)bp_params->black_color_bcb); -+ cpu_to_le16((uint16_t)bp_params->black_color_bcb); - - if (EXEC_BIOS_CMD_TABLE(BlankCRTC, params)) - result = BP_RESULT_OK; -@@ -1808,29 +1956,29 @@ static enum bp_result blank_crtc_v1( - } - - /******************************************************************************* --******************************************************************************** --** --** SET CRTC TIMING --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** SET CRTC TIMING -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result set_crtc_using_dtd_timing_v3( -- struct bios_parser *bp, -- struct bp_hw_crtc_timing_parameters *bp_params); -+ struct bios_parser *bp, -+ struct bp_hw_crtc_timing_parameters *bp_params); - static enum bp_result set_crtc_timing_v1( -- struct bios_parser *bp, -- struct bp_hw_crtc_timing_parameters *bp_params); -+ struct bios_parser *bp, -+ struct bp_hw_crtc_timing_parameters *bp_params); - - static void init_set_crtc_timing(struct bios_parser *bp) - { - uint32_t dtd_version = -- BIOS_CMD_TABLE_PARA_REVISION(SetCRTC_UsingDTDTiming); -+ BIOS_CMD_TABLE_PARA_REVISION(SetCRTC_UsingDTDTiming); - if (dtd_version > 2) - switch (dtd_version) { - case 3: - bp->cmd_tbl.set_crtc_timing = -- set_crtc_using_dtd_timing_v3; -+ set_crtc_using_dtd_timing_v3; - break; - default: - bp->cmd_tbl.set_crtc_timing = NULL; -@@ -1848,15 +1996,15 @@ static void init_set_crtc_timing(struct bios_parser *bp) - } - - static enum bp_result set_crtc_timing_v1( -- struct bios_parser *bp, -- struct bp_hw_crtc_timing_parameters *bp_params) -+ struct bios_parser *bp, -+ struct bp_hw_crtc_timing_parameters *bp_params) - { - enum bp_result result = BP_RESULT_FAILURE; - SET_CRTC_TIMING_PARAMETERS_PS_ALLOCATION params = {0}; - uint8_t atom_controller_id; - - if (bp->cmd_helper->controller_id_to_atom( -- bp_params->controller_id, &atom_controller_id)) -+ bp_params->controller_id, &atom_controller_id)) - params.ucCRTC = atom_controller_id; - - params.usH_Total = cpu_to_le16((uint16_t)(bp_params->h_total)); -@@ -1884,15 +2032,15 @@ static enum bp_result set_crtc_timing_v1( - - if (0 == bp_params->flags.HSYNC_POSITIVE_POLARITY) - params.susModeMiscInfo.usAccess = -- cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_HSYNC_POLARITY); -+ cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_HSYNC_POLARITY); - - if (0 == bp_params->flags.VSYNC_POSITIVE_POLARITY) - params.susModeMiscInfo.usAccess = -- cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_VSYNC_POLARITY); -+ cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_VSYNC_POLARITY); - - if (bp_params->flags.INTERLACE) { - params.susModeMiscInfo.usAccess = -- cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_INTERLACE); -+ cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_INTERLACE); - - /* original DAL code has this condition to apply tis for - * non-TV/CV only due to complex MV testing for possible -@@ -1908,12 +2056,12 @@ static enum bp_result set_crtc_timing_v1( - * (spec CEA 861) or CEA timing table. - */ - params.usV_SyncStart = -- cpu_to_le16((uint16_t)(bp_params->v_sync_start + 1)); -+ cpu_to_le16((uint16_t)(bp_params->v_sync_start + 1)); - } - - if (bp_params->flags.HORZ_COUNT_BY_TWO) - params.susModeMiscInfo.usAccess = -- cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_DOUBLE_CLOCK_MODE); -+ cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_DOUBLE_CLOCK_MODE); - - if (EXEC_BIOS_CMD_TABLE(SetCRTC_Timing, params)) - result = BP_RESULT_OK; -@@ -1922,38 +2070,38 @@ static enum bp_result set_crtc_timing_v1( - } - - static enum bp_result set_crtc_using_dtd_timing_v3( -- struct bios_parser *bp, -- struct bp_hw_crtc_timing_parameters *bp_params) -+ struct bios_parser *bp, -+ struct bp_hw_crtc_timing_parameters *bp_params) - { - enum bp_result result = BP_RESULT_FAILURE; - SET_CRTC_USING_DTD_TIMING_PARAMETERS params = {0}; - uint8_t atom_controller_id; - - if (bp->cmd_helper->controller_id_to_atom( -- bp_params->controller_id, &atom_controller_id)) -+ bp_params->controller_id, &atom_controller_id)) - params.ucCRTC = atom_controller_id; - - /* bios usH_Size wants h addressable size */ - params.usH_Size = cpu_to_le16((uint16_t)bp_params->h_addressable); - /* bios usH_Blanking_Time wants borders included in blanking */ - params.usH_Blanking_Time = -- cpu_to_le16((uint16_t)(bp_params->h_total - bp_params->h_addressable)); -+ cpu_to_le16((uint16_t)(bp_params->h_total - bp_params->h_addressable)); - /* bios usV_Size wants v addressable size */ - params.usV_Size = cpu_to_le16((uint16_t)bp_params->v_addressable); - /* bios usV_Blanking_Time wants borders included in blanking */ - params.usV_Blanking_Time = -- cpu_to_le16((uint16_t)(bp_params->v_total - bp_params->v_addressable)); -+ cpu_to_le16((uint16_t)(bp_params->v_total - bp_params->v_addressable)); - /* bios usHSyncOffset is the offset from the end of h addressable, - * our horizontalSyncStart is the offset from the beginning - * of h addressable */ - params.usH_SyncOffset = -- cpu_to_le16((uint16_t)(bp_params->h_sync_start - bp_params->h_addressable)); -+ cpu_to_le16((uint16_t)(bp_params->h_sync_start - bp_params->h_addressable)); - params.usH_SyncWidth = cpu_to_le16((uint16_t)bp_params->h_sync_width); - /* bios usHSyncOffset is the offset from the end of v addressable, - * our verticalSyncStart is the offset from the beginning of - * v addressable */ - params.usV_SyncOffset = -- cpu_to_le16((uint16_t)(bp_params->v_sync_start - bp_params->v_addressable)); -+ cpu_to_le16((uint16_t)(bp_params->v_sync_start - bp_params->v_addressable)); - params.usV_SyncWidth = cpu_to_le16((uint16_t)bp_params->v_sync_width); - - /* we assume that overscan from original timing does not get bigger -@@ -1963,16 +2111,16 @@ static enum bp_result set_crtc_using_dtd_timing_v3( - - if (0 == bp_params->flags.HSYNC_POSITIVE_POLARITY) - params.susModeMiscInfo.usAccess = -- cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_HSYNC_POLARITY); -+ cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_HSYNC_POLARITY); - - if (0 == bp_params->flags.VSYNC_POSITIVE_POLARITY) - params.susModeMiscInfo.usAccess = -- cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_VSYNC_POLARITY); -+ cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_VSYNC_POLARITY); - - - if (bp_params->flags.INTERLACE) { - params.susModeMiscInfo.usAccess = -- cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_INTERLACE); -+ cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_INTERLACE); - - /* original DAL code has this condition to apply this - * for non-TV/CV only -@@ -1990,14 +2138,14 @@ static enum bp_result set_crtc_using_dtd_timing_v3( - * or CEA timing table. - */ - params.usV_SyncOffset = -- cpu_to_le16(le16_to_cpu(params.usV_SyncOffset) + 1); -+ cpu_to_le16(le16_to_cpu(params.usV_SyncOffset) + 1); - - } - } - - if (bp_params->flags.HORZ_COUNT_BY_TWO) - params.susModeMiscInfo.usAccess = -- cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_DOUBLE_CLOCK_MODE); -+ cpu_to_le16(le16_to_cpu(params.susModeMiscInfo.usAccess) | ATOM_DOUBLE_CLOCK_MODE); - - if (EXEC_BIOS_CMD_TABLE(SetCRTC_UsingDTDTiming, params)) - result = BP_RESULT_OK; -@@ -2006,12 +2154,12 @@ static enum bp_result set_crtc_using_dtd_timing_v3( - } - - /******************************************************************************* --******************************************************************************** --** --** SET CRTC OVERSCAN --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** SET CRTC OVERSCAN -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result set_crtc_overscan_v1( - struct bios_parser *bp, -@@ -2038,7 +2186,7 @@ static enum bp_result set_crtc_overscan_v1( - uint8_t atom_controller_id; - - if (bp->cmd_helper->controller_id_to_atom( -- bp_params->controller_id, &atom_controller_id)) -+ bp_params->controller_id, &atom_controller_id)) - params.ucCRTC = atom_controller_id; - else - return BP_RESULT_BADINPUT; -@@ -2059,12 +2207,12 @@ static enum bp_result set_crtc_overscan_v1( - } - - /******************************************************************************* --******************************************************************************** --** --** SELECT CRTC SOURCE --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** SELECT CRTC SOURCE -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result select_crtc_source_v2( - struct bios_parser *bp, -@@ -2102,26 +2250,26 @@ static enum bp_result select_crtc_source_v2( - - /* set controller id */ - if (bp->cmd_helper->controller_id_to_atom( -- bp_params->controller_id, &atom_controller_id)) -+ bp_params->controller_id, &atom_controller_id)) - params.ucCRTC = atom_controller_id; - else - return BP_RESULT_FAILURE; - - /* set encoder id */ - if (bp->cmd_helper->engine_bp_to_atom( -- bp_params->engine_id, &atom_engine_id)) -+ bp_params->engine_id, &atom_engine_id)) - params.ucEncoderID = (uint8_t)atom_engine_id; - else - return BP_RESULT_FAILURE; - - if (SIGNAL_TYPE_EDP == s || - (SIGNAL_TYPE_DISPLAY_PORT == s && -- SIGNAL_TYPE_LVDS == bp_params->sink_signal)) -+ SIGNAL_TYPE_LVDS == bp_params->sink_signal)) - s = SIGNAL_TYPE_LVDS; - - params.ucEncodeMode = -- (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -- s, bp_params->enable_dp_audio); -+ (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -+ s, bp_params->enable_dp_audio); - - if (EXEC_BIOS_CMD_TABLE(SelectCRTC_Source, params)) - result = BP_RESULT_OK; -@@ -2155,12 +2303,12 @@ static enum bp_result select_crtc_source_v3( - - if (SIGNAL_TYPE_EDP == s || - (SIGNAL_TYPE_DISPLAY_PORT == s && -- SIGNAL_TYPE_LVDS == bp_params->sink_signal)) -+ SIGNAL_TYPE_LVDS == bp_params->sink_signal)) - s = SIGNAL_TYPE_LVDS; - - params.ucEncodeMode = -- bp->cmd_helper->encoder_mode_bp_to_atom( -- s, bp_params->enable_dp_audio); -+ bp->cmd_helper->encoder_mode_bp_to_atom( -+ s, bp_params->enable_dp_audio); - /* Needed for VBIOS Random Spatial Dithering feature */ - params.ucDstBpc = (uint8_t)(bp_params->display_output_bit_depth); - -@@ -2171,12 +2319,12 @@ static enum bp_result select_crtc_source_v3( - } - - /******************************************************************************* --******************************************************************************** --** --** ENABLE CRTC --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** ENABLE CRTC -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result enable_crtc_v1( - struct bios_parser *bp, -@@ -2221,12 +2369,12 @@ static enum bp_result enable_crtc_v1( - } - - /******************************************************************************* --******************************************************************************** --** --** ENABLE CRTC MEM REQ --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** ENABLE CRTC MEM REQ -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result enable_crtc_mem_req_v1( - struct bios_parser *bp, -@@ -2272,12 +2420,12 @@ static enum bp_result enable_crtc_mem_req_v1( - } - - /******************************************************************************* --******************************************************************************** --** --** DISPLAY PLL --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** DISPLAY PLL -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result program_clock_v5( - struct bios_parser *bp, -@@ -2312,7 +2460,7 @@ static enum bp_result program_clock_v5( - - dc_service_memset(¶ms, 0, sizeof(params)); - if (!bp->cmd_helper->clock_source_id_to_atom( -- bp_params->pll_id, &atom_pll_id)) { -+ bp_params->pll_id, &atom_pll_id)) { - BREAK_TO_DEBUGGER(); /* Invalid Inpute!! */ - return BP_RESULT_BADINPUT; - } -@@ -2320,7 +2468,7 @@ static enum bp_result program_clock_v5( - /* We need to convert from KHz units into 10KHz units */ - params.sPCLKInput.ucPpll = (uint8_t) atom_pll_id; - params.sPCLKInput.usPixelClock = -- cpu_to_le16((uint16_t) (bp_params->target_pixel_clock / 10)); -+ cpu_to_le16((uint16_t) (bp_params->target_pixel_clock / 10)); - params.sPCLKInput.ucCRTC = (uint8_t) ATOM_CRTC_INVALID; - - if (bp_params->flags.SET_EXTERNAL_REF_DIV_SRC) -@@ -2344,7 +2492,7 @@ static enum bp_result program_clock_v6( - dc_service_memset(¶ms, 0, sizeof(params)); - - if (!bp->cmd_helper->clock_source_id_to_atom( -- bp_params->pll_id, &atom_pll_id)) { -+ bp_params->pll_id, &atom_pll_id)) { - BREAK_TO_DEBUGGER(); /*Invalid Input!!*/ - return BP_RESULT_BADINPUT; - } -@@ -2352,7 +2500,7 @@ static enum bp_result program_clock_v6( - /* We need to convert from KHz units into 10KHz units */ - params.sPCLKInput.ucPpll = (uint8_t)atom_pll_id; - params.sPCLKInput.ulDispEngClkFreq = -- cpu_to_le32(bp_params->target_pixel_clock / 10); -+ cpu_to_le32(bp_params->target_pixel_clock / 10); - - if (bp_params->flags.SET_EXTERNAL_REF_DIV_SRC) - params.sPCLKInput.ucMiscInfo |= PIXEL_CLOCK_MISC_REF_DIV_SRC; -@@ -2361,7 +2509,7 @@ static enum bp_result program_clock_v6( - /* True display clock is returned by VBIOS if DFS bypass - * is enabled. */ - bp_params->dfs_bypass_display_clock = -- (uint32_t)(le32_to_cpu(params.sPCLKInput.ulDispEngClkFreq) * 10); -+ (uint32_t)(le32_to_cpu(params.sPCLKInput.ulDispEngClkFreq) * 10); - result = BP_RESULT_OK; - } - -@@ -2369,12 +2517,12 @@ static enum bp_result program_clock_v6( - } - - /******************************************************************************* --******************************************************************************** --** --** COMPUTE MEMORY ENGINE PLL --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** COMPUTE MEMORY ENGINE PLL -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result compute_memore_engine_pll_v4( - struct bios_parser *bp, -@@ -2385,7 +2533,7 @@ static void init_compute_memore_engine_pll(struct bios_parser *bp) - switch (BIOS_CMD_TABLE_PARA_REVISION(ComputeMemoryEnginePLL)) { - case 4: - bp->cmd_tbl.compute_memore_engine_pll = -- compute_memore_engine_pll_v4; -+ compute_memore_engine_pll_v4; - break; - default: - bp->cmd_tbl.compute_memore_engine_pll = NULL; -@@ -2419,12 +2567,12 @@ static enum bp_result compute_memore_engine_pll_v4( - } - - /******************************************************************************* --******************************************************************************** --** --** EXTERNAL ENCODER CONTROL --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** EXTERNAL ENCODER CONTROL -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result external_encoder_control_v3( - struct bios_parser *bp, -@@ -2436,7 +2584,7 @@ static void init_external_encoder_control( - switch (BIOS_CMD_TABLE_PARA_REVISION(ExternalEncoderControl)) { - case 3: - bp->cmd_tbl.external_encoder_control = -- external_encoder_control_v3; -+ external_encoder_control_v3; - break; - default: - bp->cmd_tbl.external_encoder_control = NULL; -@@ -2494,7 +2642,7 @@ static enum bp_result external_encoder_control_v3( - /* output display connector type. Only valid in encoder - * initialization */ - cntl_params->usConnectorId = -- cpu_to_le16((uint16_t)cntl->connector_obj_id.id); -+ cpu_to_le16((uint16_t)cntl->connector_obj_id.id); - break; - case EXTERNAL_ENCODER_CONTROL_SETUP: - /* EXTERNAL_ENCODER_CONTROL_PARAMETERS_V3 pixel clock unit in -@@ -2503,12 +2651,12 @@ static enum bp_result external_encoder_control_v3( - * Only valid in setup and enableoutput - */ - cntl_params->usPixelClock = -- cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); -+ cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); - /* Indicate display output signal type drive by external - * encoder, only valid in setup and enableoutput */ - cntl_params->ucEncoderMode = -- (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -- cntl->signal, false); -+ (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -+ cntl->signal, false); - - if (is_input_signal_dp) { - /* Bit[0]: indicate link rate, =1: 2.7Ghz, =0: 1.62Ghz, -@@ -2519,7 +2667,7 @@ static enum bp_result external_encoder_control_v3( - * in DP mode, only valid in encoder setup in DP mode. - */ - cntl_params->ucBitPerColor = -- (uint8_t)(cntl->color_depth); -+ (uint8_t)(cntl->color_depth); - } - /* Indicate how many lanes used by external encoder, only valid - * in encoder setup and enableoutput. */ -@@ -2527,10 +2675,10 @@ static enum bp_result external_encoder_control_v3( - break; - case EXTERNAL_ENCODER_CONTROL_ENABLE: - cntl_params->usPixelClock = -- cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); -+ cpu_to_le16((uint16_t)(cntl->pixel_clock / 10)); - cntl_params->ucEncoderMode = -- (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -- cntl->signal, false); -+ (uint8_t)bp->cmd_helper->encoder_mode_bp_to_atom( -+ cntl->signal, false); - cntl_params->ucLaneNum = (uint8_t)cntl->lanes_number; - break; - default: -@@ -2549,10 +2697,10 @@ static enum bp_result external_encoder_control_v3( - * ExternalEncoderControl runs detection and save result - * in BIOS scratch registers. */ - cntl->signal = bp->bios_helper->detect_sink( -- bp->ctx, -- encoder, -- cntl->connector_obj_id, -- cntl->signal); -+ bp->ctx, -+ encoder, -+ cntl->connector_obj_id, -+ cntl->signal); - else/* BIOS table does not work. */ - #endif - { -@@ -2565,12 +2713,12 @@ static enum bp_result external_encoder_control_v3( - } - - /******************************************************************************* --******************************************************************************** --** --** ENABLE DISPLAY POWER GATING --** --******************************************************************************** --*******************************************************************************/ -+ ******************************************************************************** -+ ** -+ ** ENABLE DISPLAY POWER GATING -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ - - static enum bp_result enable_disp_power_gating_v2_1( - struct bios_parser *bp, -@@ -2583,7 +2731,7 @@ static void init_enable_disp_power_gating( - switch (BIOS_CMD_TABLE_PARA_REVISION(EnableDispPowerGating)) { - case 1: - bp->cmd_tbl.enable_disp_power_gating = -- enable_disp_power_gating_v2_1; -+ enable_disp_power_gating_v2_1; - break; - default: - bp->cmd_tbl.enable_disp_power_gating = NULL; -@@ -2607,10 +2755,88 @@ static enum bp_result enable_disp_power_gating_v2_1( - return BP_RESULT_BADINPUT; - - params.ucEnable = -- bp->cmd_helper->disp_power_gating_action_to_atom(action); -+ bp->cmd_helper->disp_power_gating_action_to_atom(action); - - if (EXEC_BIOS_CMD_TABLE(EnableDispPowerGating, params)) - result = BP_RESULT_OK; - - return result; - } -+ -+ -+/******************************************************************************* -+ ******************************************************************************** -+ ** -+ ** SET DCE CLOCK -+ ** -+ ******************************************************************************** -+ *******************************************************************************/ -+#ifdef LATEST_ATOM_BIOS_SUPPORT -+enum bp_result set_dce_clock_v2_1( -+ struct bios_parser *bp, -+ struct bp_set_dce_clock_parameters *bp_params); -+#endif -+ -+static void init_set_dce_clock(struct bios_parser *bp) -+{ -+#ifdef LATEST_ATOM_BIOS_SUPPORT -+ switch (BIOS_CMD_TABLE_PARA_REVISION(SetDCEClock)) { -+ case 1: -+ bp->cmd_tbl.set_dce_clock = set_dce_clock_v2_1; -+ break; -+ default: -+ bp->cmd_tbl.set_dce_clock = NULL; -+ break; -+ } -+#endif -+} -+ -+#ifdef LATEST_ATOM_BIOS_SUPPORT -+static enum bp_result set_dce_clock_v2_1( -+ struct bios_parser *bp, -+ struct bp_set_dce_clock_parameters *bp_params) -+{ -+ enum bp_result result = BP_RESULT_FAILURE; -+ -+ SET_DCE_CLOCK_PS_ALLOCATION_V2_1 params; -+ uint32_t atom_pll_id; -+ uint32_t atom_clock_type; -+ -+ dc_service_memset(¶ms, 0, sizeof(params)); -+ -+ const struct command_table_helper *cmd = bp->cmd_helper; -+ -+ if (!cmd->clock_source_id_to_atom(bp_params->pll_id, &atom_pll_id) || -+ !cmd->dc_clock_type_to_atom(bp_params->clock_type, &atom_clock_type)) -+ return BP_RESULT_BADINPUT; -+ -+ params.asParam.ucDCEClkSrc = atom_pll_id; -+ params.asParam.ucDCEClkType = atom_clock_type; -+ -+ if (bp_params->clock_type == DCECLOCK_TYPE_DPREFCLK) { -+ if (bp_params->flags.USE_GENLOCK_AS_SOURCE_FOR_DPREFCLK) -+ params.asParam.ucDCEClkFlag |= DCE_CLOCK_FLAG_PLL_REFCLK_SRC_GENLK; -+ -+ if (bp_params->flags.USE_PCIE_AS_SOURCE_FOR_DPREFCLK) -+ params.asParam.ucDCEClkFlag |= DCE_CLOCK_FLAG_PLL_REFCLK_SRC_PCIE; -+ -+ if (bp_params->flags.USE_XTALIN_AS_SOURCE_FOR_DPREFCLK) -+ params.asParam.ucDCEClkFlag |= DCE_CLOCK_FLAG_PLL_REFCLK_SRC_XTALIN; -+ -+ if (bp_params->flags.USE_GENERICA_AS_SOURCE_FOR_DPREFCLK) -+ params.asParam.ucDCEClkFlag |= DCE_CLOCK_FLAG_PLL_REFCLK_SRC_GENERICA; -+ } -+ else -+ /* only program clock frequency if display clock is used; VBIOS will program DPREFCLK */ -+ /* We need to convert from KHz units into 10KHz units */ -+ params.asParam.ulDCEClkFreq = cpu_to_le32(bp_params->target_clock_frequency / 10); -+ -+ if (EXEC_BIOS_CMD_TABLE(SetDCEClock, params)) { -+ /* Convert from 10KHz units back to KHz */ -+ bp_params->target_clock_frequency = le32_to_cpu(params.asParam.ulDCEClkFreq) * 10; -+ result = BP_RESULT_OK; -+ } -+ -+ return result; -+} -+#endif -diff --git a/drivers/gpu/drm/amd/dal/dc/bios/command_table.h b/drivers/gpu/drm/amd/dal/dc/bios/command_table.h -index 814d31f..e233ea6 100644 ---- a/drivers/gpu/drm/amd/dal/dc/bios/command_table.h -+++ b/drivers/gpu/drm/amd/dal/dc/bios/command_table.h -@@ -110,6 +110,9 @@ struct cmd_tbl { - struct bios_parser *bp, - enum controller_id crtc_id, - enum bp_pipe_control_action action); -+ enum bp_result (*set_dce_clock)( -+ struct bios_parser *bp, -+ struct bp_set_dce_clock_parameters *bp_params); - }; - - void dal_bios_parser_init_cmd_tbl(struct bios_parser *bp); -diff --git a/drivers/gpu/drm/amd/dal/dc/bios/command_table_helper.c b/drivers/gpu/drm/amd/dal/dc/bios/command_table_helper.c -index dad1426..51027c5 100644 ---- a/drivers/gpu/drm/amd/dal/dc/bios/command_table_helper.c -+++ b/drivers/gpu/drm/amd/dal/dc/bios/command_table_helper.c -@@ -42,8 +42,8 @@ bool dal_bios_parser_init_cmd_tbl_helper( - case DCE_VERSION_11_0: - *h = dal_cmd_tbl_helper_dce110_get_table(); - return true; -- - #endif -+ - default: - /* Unsupported DCE */ - BREAK_TO_DEBUGGER(); -diff --git a/drivers/gpu/drm/amd/dal/dc/bios/command_table_helper.h b/drivers/gpu/drm/amd/dal/dc/bios/command_table_helper.h -index e5c00de..cf563ce 100644 ---- a/drivers/gpu/drm/amd/dal/dc/bios/command_table_helper.h -+++ b/drivers/gpu/drm/amd/dal/dc/bios/command_table_helper.h -@@ -57,6 +57,9 @@ struct command_table_helper { - uint8_t (*phy_id_to_atom)(enum transmitter t); - uint8_t (*disp_power_gating_action_to_atom)( - enum bp_pipe_control_action action); -+ bool (*dc_clock_type_to_atom)(enum bp_dce_clock_type id, -+ uint32_t *atom_clock_type); -+ uint8_t (*transmitter_color_depth_to_atom)(enum transmitter_color_depth id); - }; - - bool dal_bios_parser_init_cmd_tbl_helper(const struct command_table_helper **h, -diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c -index 45a069a..6121277 100644 ---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c -+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c -@@ -684,6 +684,8 @@ enum dc_status dce110_validate_with_context( - context->res_ctx.pool = dc->res_pool; - - result = dce_base_map_resources(dc, context); -+ -+ if (result == DC_OK) - result = map_clock_resources(dc, context); - - if (result == DC_OK) -diff --git a/drivers/gpu/drm/amd/dal/dc/gpu/clock_source.c b/drivers/gpu/drm/amd/dal/dc/gpu/clock_source.c -index 8e700ea..11f16b7 100644 ---- a/drivers/gpu/drm/amd/dal/dc/gpu/clock_source.c -+++ b/drivers/gpu/drm/amd/dal/dc/gpu/clock_source.c -@@ -75,6 +75,7 @@ struct clock_source *dal_clock_source_create( - } - break; - #endif -+ - default: - dal_logger_write(clk_src_init_data->ctx->logger, - LOG_MAJOR_ERROR, -diff --git a/drivers/gpu/drm/amd/dal/dc/gpu/clock_source.h b/drivers/gpu/drm/amd/dal/dc/gpu/clock_source.h -index 0a83874..0210f03 100644 ---- a/drivers/gpu/drm/amd/dal/dc/gpu/clock_source.h -+++ b/drivers/gpu/drm/amd/dal/dc/gpu/clock_source.h -@@ -88,6 +88,10 @@ struct registers { - uint32_t dp_dtox_phase; - uint32_t dp_dtox_modulo; - uint32_t crtcx_pixel_rate_cntl; -+ uint32_t combophyx_pll_wrap_cntl; -+ uint32_t combophyx_freq_cntl0; -+ uint32_t combophyx_freq_cntl2; -+ uint32_t combophyx_freq_cntl3; - }; - - struct clock_source { -diff --git a/drivers/gpu/drm/amd/dal/dc/i2caux/dce110/i2caux_dce110.c b/drivers/gpu/drm/amd/dal/dc/i2caux/dce110/i2caux_dce110.c -index 71d1a6c..3de8951 100644 ---- a/drivers/gpu/drm/amd/dal/dc/i2caux/dce110/i2caux_dce110.c -+++ b/drivers/gpu/drm/amd/dal/dc/i2caux/dce110/i2caux_dce110.c -@@ -125,12 +125,14 @@ static const enum gpio_ddc_line hw_ddc_lines[] = { - GPIO_DDC_LINE_DDC1, - GPIO_DDC_LINE_DDC2, - GPIO_DDC_LINE_DDC3, -+ GPIO_DDC_LINE_DDC4, - }; - - static const enum gpio_ddc_line hw_aux_lines[] = { - GPIO_DDC_LINE_DDC1, - GPIO_DDC_LINE_DDC2, - GPIO_DDC_LINE_DDC3, -+ GPIO_DDC_LINE_DDC4, - }; - - /* function table */ -diff --git a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h -index a728446..6ef41b1 100644 ---- a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h -+++ b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h -@@ -40,7 +40,7 @@ struct core_stream; - - #define MAX_PIPES 6 - #define MAX_STREAMS 6 --#define MAX_CLOCK_SOURCES 4 -+#define MAX_CLOCK_SOURCES 7 - - struct core_target { - struct dc_target public; -diff --git a/drivers/gpu/drm/amd/dal/include/bios_parser_interface.h b/drivers/gpu/drm/amd/dal/include/bios_parser_interface.h -index 6269164..13fa8ab 100644 ---- a/drivers/gpu/drm/amd/dal/include/bios_parser_interface.h -+++ b/drivers/gpu/drm/amd/dal/include/bios_parser_interface.h -@@ -243,6 +243,9 @@ enum bp_result dal_bios_parser_adjust_pixel_clock( - enum bp_result dal_bios_parser_set_pixel_clock( - struct bios_parser *bp, - struct bp_pixel_clock_parameters *bp_params); -+enum bp_result dal_bios_parser_set_dce_clock( -+ struct bios_parser *bp, -+ struct bp_set_dce_clock_parameters *bp_params); - enum bp_result dal_bios_parser_enable_spread_spectrum_on_ppll( - struct bios_parser *bp, - struct bp_spread_spectrum_parameters *bp_params, -diff --git a/drivers/gpu/drm/amd/dal/include/bios_parser_types.h b/drivers/gpu/drm/amd/dal/include/bios_parser_types.h -index da7d5f2..4176f28 100644 ---- a/drivers/gpu/drm/amd/dal/include/bios_parser_types.h -+++ b/drivers/gpu/drm/amd/dal/include/bios_parser_types.h -@@ -248,6 +248,9 @@ struct bp_pixel_clock_parameters { - /* VBIOS returns a fixed display clock when DFS-bypass feature - * is enabled (KHz) */ - uint32_t dfs_bypass_display_clock; -+ /* color depth to support HDMI deep color */ -+ enum transmitter_color_depth color_depth; -+ - struct program_pixel_clock_flags { - uint32_t FORCE_PROGRAMMING_OF_PLL:1; - /* Use Engine Clock as source for Display Clock when -@@ -255,6 +258,14 @@ struct bp_pixel_clock_parameters { - uint32_t USE_E_CLOCK_AS_SOURCE_FOR_D_CLOCK:1; - /* Use external reference clock (refDivSrc for PLL) */ - uint32_t SET_EXTERNAL_REF_DIV_SRC:1; -+ /* Force program PHY PLL only */ -+ uint32_t PROGRAM_PHY_PLL_ONLY:1; -+ /* Support for YUV420 */ -+ uint32_t SUPPORT_YUV_420:1; -+ /* Use XTALIN reference clock source */ -+ uint32_t SET_XTALIN_REF_SRC:1; -+ /* Use GENLK reference clock source */ -+ uint32_t SET_GENLOCK_REF_DIV_SRC:1; - } flags; - }; - -@@ -266,6 +277,30 @@ struct bp_display_clock_parameters { - uint32_t actual_post_divider_id; - }; - -+enum bp_dce_clock_type { -+ DCECLOCK_TYPE_DISPLAY_CLOCK = 0, -+ DCECLOCK_TYPE_DPREFCLK = 1 -+}; -+ -+/* DCE Clock Parameters structure for SetDceClock Exec command table */ -+struct bp_set_dce_clock_parameters { -+ enum clock_source_id pll_id; /* Clock Source Id */ -+ /* Display clock or DPREFCLK value */ -+ uint32_t target_clock_frequency; -+ /* Clock to set: =0: DISPCLK =1: DPREFCLK =2: PIXCLK */ -+ enum bp_dce_clock_type clock_type; -+ -+ struct set_dce_clock_flags { -+ uint32_t USE_GENERICA_AS_SOURCE_FOR_DPREFCLK:1; -+ /* Use XTALIN reference clock source */ -+ uint32_t USE_XTALIN_AS_SOURCE_FOR_DPREFCLK:1; -+ /* Use PCIE reference clock source */ -+ uint32_t USE_PCIE_AS_SOURCE_FOR_DPREFCLK:1; -+ /* Use GENLK reference clock source */ -+ uint32_t USE_GENLOCK_AS_SOURCE_FOR_DPREFCLK:1; -+ } flags; -+}; -+ - struct spread_spectrum_flags { - /* 1 = Center Spread; 0 = down spread */ - uint32_t CENTER_SPREAD:1; -diff --git a/drivers/gpu/drm/amd/dal/include/grph_object_id.h b/drivers/gpu/drm/amd/dal/include/grph_object_id.h -index fcf3eea..5d69a34 100644 ---- a/drivers/gpu/drm/amd/dal/include/grph_object_id.h -+++ b/drivers/gpu/drm/amd/dal/include/grph_object_id.h -@@ -99,9 +99,16 @@ enum clock_source_id { - CLOCK_SOURCE_ID_DCPLL, - CLOCK_SOURCE_ID_DFS, /* DENTIST */ - CLOCK_SOURCE_ID_VCE, /* VCE does not need a real PLL */ -- CLOCK_SOURCE_ID_DP_DTO, /* Used to distinguish between */ -- /* programming pixel clock */ -- /* and ID (Phy) clock */ -+ /* Used to distinguish between programming pixel clock and ID (Phy) clock */ -+ CLOCK_SOURCE_ID_DP_DTO, -+ -+ CLOCK_SOURCE_COMBO_PHY_PLL0, /*combo PHY PLL defines (DC 11.2 and up)*/ -+ CLOCK_SOURCE_COMBO_PHY_PLL1, -+ CLOCK_SOURCE_COMBO_PHY_PLL2, -+ CLOCK_SOURCE_COMBO_PHY_PLL3, -+ CLOCK_SOURCE_COMBO_PHY_PLL4, -+ CLOCK_SOURCE_COMBO_PHY_PLL5, -+ CLOCK_SOURCE_COMBO_DISPLAY_PLL0 - }; - - -@@ -224,6 +231,12 @@ union supported_stream_engines { - uint32_t u_all; - }; - -+enum transmitter_color_depth { -+ TRANSMITTER_COLOR_DEPTH_24 = 0, /* 8 bits */ -+ TRANSMITTER_COLOR_DEPTH_30, /* 10 bits */ -+ TRANSMITTER_COLOR_DEPTH_36, /* 12 bits */ -+ TRANSMITTER_COLOR_DEPTH_48 /* 16 bits */ -+}; - - /* - ***************************************************************************** --- -2.7.4 - |