aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/1012-drm-amd-dal-remove-bios-parser-function-table.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/1012-drm-amd-dal-remove-bios-parser-function-table.patch')
-rw-r--r--common/recipes-kernel/linux/files/1012-drm-amd-dal-remove-bios-parser-function-table.patch2301
1 files changed, 2301 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/1012-drm-amd-dal-remove-bios-parser-function-table.patch b/common/recipes-kernel/linux/files/1012-drm-amd-dal-remove-bios-parser-function-table.patch
new file mode 100644
index 00000000..468f6197
--- /dev/null
+++ b/common/recipes-kernel/linux/files/1012-drm-amd-dal-remove-bios-parser-function-table.patch
@@ -0,0 +1,2301 @@
+From 1c9dcbf65903c09af8c5b0df8ae1450375280445 Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Mon, 11 Apr 2016 16:56:03 +1000
+Subject: [PATCH 1012/1110] drm/amd/dal: remove bios parser function table.
+
+This table serves no great purpose, direct calling the APIs
+in the code works just as well.
+
+before:
+1096306 141169 1532 1239007 12e7df drivers/gpu/drm/amd/amdgpu/amdgpu.ko
+after:
+1094986 141169 1532 1237687 12e2b7 drivers/gpu/drm/amd/amdgpu/amdgpu.ko
+
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+Reviewed-by: Harry Wentland <harry.wentland@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ .../gpu/drm/amd/dal/dc/adapter/adapter_service.c | 63 ++-
+ .../drm/amd/dal/dc/adapter/wireless_data_source.c | 2 +-
+ drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c | 423 ++++++---------------
+ drivers/gpu/drm/amd/dal/dc/bios/bios_parser.h | 3 +-
+ .../dal/dc/bios/dce112/bios_parser_helper_dce112.c | 178 +--------
+ drivers/gpu/drm/amd/dal/dc/core/dc.c | 6 +-
+ drivers/gpu/drm/amd/dal/dc/dc_bios_types.h | 412 +++++++++-----------
+ .../drm/amd/dal/dc/dce100/dce100_hw_sequencer.c | 3 +-
+ .../drm/amd/dal/dc/dce110/dce110_clock_source.c | 49 +--
+ .../drm/amd/dal/dc/dce110/dce110_hw_sequencer.c | 11 +-
+ .../drm/amd/dal/dc/dce110/dce110_link_encoder.c | 2 +-
+ .../drm/amd/dal/dc/dce110/dce110_stream_encoder.c | 6 +-
+ .../amd/dal/dc/dce110/dce110_timing_generator.c | 6 +-
+ .../drm/amd/dal/dc/dce112/dce112_clock_source.c | 6 +-
+ .../drm/amd/dal/dc/dce112/dce112_hw_sequencer.c | 2 +-
+ .../gpu/drm/amd/dal/dc/dce80/dce80_hw_sequencer.c | 2 +-
+ .../gpu/drm/amd/dal/dc/dce80/dce80_link_encoder.c | 2 +-
+ .../drm/amd/dal/dc/dce80/dce80_stream_encoder.c | 6 +-
+ .../amd/dal/dc/gpu/dce110/display_clock_dce110.c | 2 +-
+ .../amd/dal/dc/gpu/dce112/display_clock_dce112.c | 4 +-
+ .../drm/amd/dal/dc/gpu/dce80/display_clock_dce80.c | 2 +-
+ 21 files changed, 386 insertions(+), 804 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c b/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c
+index 308d456..810776b 100644
+--- a/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c
++++ b/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c
+@@ -234,8 +234,8 @@ static void initialize_backlight_caps(
+ return;
+ }
+
+- if (dcb->funcs->get_firmware_info(dcb, &fw_info) != BP_RESULT_OK ||
+- dcb->funcs->get_embedded_panel_info(dcb, &panel_info) != BP_RESULT_OK)
++ if (dc_bios_get_firmware_info(dcb, &fw_info) != BP_RESULT_OK ||
++ dc_bios_get_embedded_panel_info(dcb, &panel_info) != BP_RESULT_OK)
+ return;
+
+ params.data = &caps;
+@@ -540,7 +540,7 @@ static bool get_hpd_info(struct adapter_service *as,
+ {
+ struct dc_bios *dcb = dal_adapter_service_get_bios_parser(as);
+
+- return BP_RESULT_OK == dcb->funcs->get_hpd_info(dcb, id, info);
++ return BP_RESULT_OK == dc_bios_get_hpd_info(dcb, id, info);
+ }
+
+ /*
+@@ -693,7 +693,7 @@ static void adapter_service_destruct(
+ dal_gpio_service_destroy(&as->gpio_service);
+ dal_asic_capability_destroy(&as->asic_cap);
+
+- dcb->funcs->destroy_integrated_info(dcb, &as->integrated_info);
++ dc_bios_destroy_integrated_info(dcb, &as->integrated_info);
+
+ if (as->dcb_internal) {
+ /* We are responsible only for destruction of Internal BIOS.
+@@ -802,9 +802,9 @@ static bool adapter_service_construct(
+ /* Avoid wireless encoder creation in upstream branch. */
+
+ /* Integrated info is not provided on discrete ASIC. NULL is allowed */
+- as->integrated_info = dcb->funcs->create_integrated_info(dcb);
++ as->integrated_info = dc_bios_create_integrated_info(dcb);
+
+- dcb->funcs->post_init(dcb);
++ dc_bios_post_init(dcb);
+
+ /* Generate backlight translation table and initializes
+ other brightness properties */
+@@ -965,7 +965,7 @@ uint8_t dal_adapter_service_get_connectors_num(
+
+ dcb = dal_adapter_service_get_bios_parser(as);
+
+- vbios_connectors_num = dcb->funcs->get_connectors_number(dcb);
++ vbios_connectors_num = dc_bios_get_connectors_number(dcb);
+
+ wireless_connectors_num = wireless_get_connectors_num(as);
+
+@@ -1002,7 +1002,7 @@ uint32_t dal_adapter_service_get_src_num(
+ if (is_wireless_object(id))
+ return wireless_get_srcs_num(as, id);
+ else
+- return dcb->funcs->get_src_number(dcb, id);
++ return dc_bios_get_src_number(dcb, id);
+ }
+
+ /**
+@@ -1027,7 +1027,7 @@ struct graphics_object_id dal_adapter_service_get_src_obj(
+ if (is_wireless_object(id))
+ src_object_id = wireless_get_src_obj_id(as, id, index);
+ else {
+- if (BP_RESULT_OK != dcb->funcs->get_src_obj(dcb, id, index,
++ if (BP_RESULT_OK != dc_bios_get_src_obj(dcb, id, index,
+ &src_object_id)) {
+ src_object_id =
+ dal_graphics_object_id_init(
+@@ -1058,12 +1058,12 @@ struct graphics_object_id dal_adapter_service_get_connector_obj_id(
+
+ dcb = dal_adapter_service_get_bios_parser(as);
+
+- bios_connectors_num = dcb->funcs->get_connectors_number(dcb);
++ bios_connectors_num = dc_bios_get_connectors_number(dcb);
+
+ if (connector_index >= bios_connectors_num)
+ return wireless_get_connector_id(as, connector_index);
+ else
+- return dcb->funcs->get_connector_id(dcb, connector_index);
++ return dc_bios_get_connector_id(dcb, connector_index);
+ }
+
+ bool dal_adapter_service_get_device_tag(
+@@ -1074,8 +1074,8 @@ bool dal_adapter_service_get_device_tag(
+ {
+ struct dc_bios *dcb = dal_adapter_service_get_bios_parser(as);
+
+- if (BP_RESULT_OK == dcb->funcs->get_device_tag(dcb,
+- connector_object_id, device_tag_index, info))
++ if (BP_RESULT_OK == dc_bios_get_device_tag(dcb,
++ connector_object_id, device_tag_index, info))
+ return true;
+ else
+ return false;
+@@ -1087,7 +1087,7 @@ bool dal_adapter_service_is_device_id_supported(struct adapter_service *as,
+ {
+ struct dc_bios *dcb = dal_adapter_service_get_bios_parser(as);
+
+- return dcb->funcs->is_device_id_supported(dcb, id);
++ return dc_bios_is_device_id_supported(dcb, id);
+ }
+
+ bool dal_adapter_service_is_meet_underscan_req(struct adapter_service *as)
+@@ -1130,7 +1130,7 @@ uint8_t dal_adapter_service_get_clock_sources_num(
+ * Check is system supports the use of the External clock source
+ * as a clock source for DP
+ */
+- enum bp_result bp_result = dcb->funcs->get_firmware_info(dcb, &fw_info);
++ enum bp_result bp_result = dc_bios_get_firmware_info(dcb, &fw_info);
+
+ if (BP_RESULT_OK == bp_result &&
+ fw_info.external_clock_source_frequency_for_dp != 0)
+@@ -1249,7 +1249,7 @@ bool dal_adapter_service_get_i2c_info(
+ return false;
+ }
+
+- return BP_RESULT_OK == dcb->funcs->get_i2c_info(dcb, id, i2c_info);
++ return BP_RESULT_OK == dc_bios_get_i2c_info(dcb, id, i2c_info);
+ }
+
+ /*
+@@ -1306,7 +1306,7 @@ struct irq *dal_adapter_service_obtain_hpd_irq(
+ if (!get_hpd_info(as, id, &hpd_info))
+ return NULL;
+
+- bp_result = dcb->funcs->get_gpio_pin_info(dcb,
++ bp_result = dc_bios_get_gpio_pin_info(dcb,
+ hpd_info.hpd_int_gpio_uid, &pin_info);
+
+ if (bp_result != BP_RESULT_OK) {
+@@ -1343,7 +1343,7 @@ uint32_t dal_adapter_service_get_ss_info_num(
+ {
+ struct dc_bios *dcb = dal_adapter_service_get_bios_parser(as);
+
+- return dcb->funcs->get_ss_entry_number(dcb, signal);
++ return dc_bios_get_ss_entry_number(dcb, signal);
+ }
+
+ /*
+@@ -1359,8 +1359,8 @@ bool dal_adapter_service_get_ss_info(
+ {
+ struct dc_bios *dcb = dal_adapter_service_get_bios_parser(as);
+
+- enum bp_result bp_result = dcb->funcs->get_spread_spectrum_info(dcb,
+- signal, idx, info);
++ enum bp_result bp_result = dc_bios_get_spread_spectrum_info(dcb,
++ signal, idx, info);
+
+ return BP_RESULT_OK == bp_result;
+ }
+@@ -1571,12 +1571,11 @@ struct gpio *dal_adapter_service_obtain_stereo_gpio(
+ /* Get GPIO record for this object.
+ * Stereo GPIO record should have exactly one entry
+ * where active state defines stereosync polarity */
+- if (1 != dcb->funcs->get_gpio_record(
+- dcb, id, &cntl_info,
+- 1)) {
++ if (1 != dc_bios_get_gpio_record(dcb, id, &cntl_info,
++ 1)) {
+ return NULL;
+ } else if (BP_RESULT_OK
+- != dcb->funcs->get_gpio_pin_info(
++ != dc_bios_get_gpio_pin_info(
+ dcb, cntl_info.id,
+ &pin_info)) {
+ /*ASSERT_CRITICAL(false);*/
+@@ -1612,7 +1611,7 @@ bool dal_adapter_service_get_firmware_info(
+ {
+ struct dc_bios *dcb = dal_adapter_service_get_bios_parser(as);
+
+- return dcb->funcs->get_firmware_info(dcb, info) == BP_RESULT_OK;
++ return dc_bios_get_firmware_info(dcb, info) == BP_RESULT_OK;
+ }
+
+ /*
+@@ -1803,7 +1802,7 @@ bool dal_adapter_service_get_embedded_panel_info(
+ /*TODO: add DALASSERT_MSG here*/
+ return false;
+
+- result = dcb->funcs->get_embedded_panel_info(dcb, info);
++ result = dc_bios_get_embedded_panel_info(dcb, info);
+
+ return result == BP_RESULT_OK;
+ }
+@@ -1820,7 +1819,7 @@ bool dal_adapter_service_enum_embedded_panel_patch_mode(
+ /*TODO: add DALASSERT_MSG here*/
+ return false;
+
+- result = dcb->funcs->enum_embedded_panel_patch_mode(dcb, index, mode);
++ result = dc_bios_enum_embedded_panel_patch_mode(dcb, index, mode);
+
+ return result == BP_RESULT_OK;
+ }
+@@ -1832,7 +1831,7 @@ bool dal_adapter_service_get_faked_edid_len(
+ enum bp_result result;
+ struct dc_bios *dcb = dal_adapter_service_get_bios_parser(as);
+
+- result = dcb->funcs->get_faked_edid_len(dcb, len);
++ result = dc_bios_get_faked_edid_len(dcb, len);
+
+ return result == BP_RESULT_OK;
+ }
+@@ -1845,7 +1844,7 @@ bool dal_adapter_service_get_faked_edid_buf(
+ enum bp_result result;
+ struct dc_bios *dcb = dal_adapter_service_get_bios_parser(as);
+
+- result = dcb->funcs->get_faked_edid_buf(dcb, buf, len);
++ result = dc_bios_get_faked_edid_buf(dcb, buf, len);
+
+ return result == BP_RESULT_OK;
+
+@@ -1935,7 +1934,7 @@ bool dal_adapter_service_is_in_accelerated_mode(struct adapter_service *as)
+ {
+ struct dc_bios *dcb = dal_adapter_service_get_bios_parser(as);
+
+- return dcb->funcs->is_accelerated_mode(dcb);
++ return dc_bios_is_accelerated_mode(dcb);
+ }
+
+ struct ddc *dal_adapter_service_obtain_ddc_from_i2c_info(
+@@ -1981,7 +1980,7 @@ bool dal_adapter_service_is_lid_open(struct adapter_service *as)
+ return is_lid_open;
+
+ #if defined(CONFIG_DRM_AMD_DAL_VBIOS_PRESENT)
+- return dcb->funcs->is_lid_open(dcb);
++ return dc_bios_is_lid_open(dcb);
+ #else
+ return false;
+ #endif
+@@ -2068,7 +2067,7 @@ bool dal_adapter_service_get_encoder_cap_info(
+ * - dpHbr2Cap: indicates supported/not supported by HW Encoder
+ * - dpHbr2En : indicates DP spec compliant/not compliant
+ */
+- result = dcb->funcs->get_encoder_cap_info(dcb, id, &bp_cap_info);
++ result = dc_bios_get_encoder_cap_info(dcb, id, &bp_cap_info);
+
+ /* Set dp_hbr2_validated flag (it's equal to Enable) */
+ info->dp_hbr2_validated = bp_cap_info.DP_HBR2_EN;
+diff --git a/drivers/gpu/drm/amd/dal/dc/adapter/wireless_data_source.c b/drivers/gpu/drm/amd/dal/dc/adapter/wireless_data_source.c
+index 0b1151e..1b6deb9 100644
+--- a/drivers/gpu/drm/amd/dal/dc/adapter/wireless_data_source.c
++++ b/drivers/gpu/drm/amd/dal/dc/adapter/wireless_data_source.c
+@@ -66,7 +66,7 @@ bool wireless_data_init(struct wireless_data *data,
+ * Check if SBIOS sets remote display enable, exposed
+ * through VBIOS. This is only valid for APU, not dGPU
+ */
+- dcb->funcs->get_firmware_info(dcb, &info);
++ dc_bios_get_firmware_info(dcb, &info);
+
+ if ((REMOTE_DISPLAY_ENABLE == info.remote_display_config) &&
+ init_data->fusion) {
+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 a43da0c..8bb5454 100644
+--- a/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c
++++ b/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.c
+@@ -105,12 +105,8 @@ static bool bios_parser_construct(
+ struct bp_init_data *init,
+ struct adapter_service *as);
+
+-static uint8_t bios_parser_get_connectors_number(
+- struct dc_bios *dcb);
+-
+-static enum bp_result bios_parser_get_embedded_panel_info(
+- struct dc_bios *dcb,
+- struct embedded_panel_info *info);
++enum bp_result dc_bios_get_embedded_panel_info(struct dc_bios *dcb,
++ struct embedded_panel_info *info);
+
+ /*****************************************************************************/
+
+@@ -124,7 +120,7 @@ struct dc_bios *dal_bios_parser_create(
+ return NULL;
+
+ if (bios_parser_construct(bp, init, as))
+- return &bp->base;
++ return (struct dc_bios *)bp;
+
+ dm_free(bp);
+ BREAK_TO_DEBUGGER();
+@@ -152,7 +148,7 @@ void dal_bios_parser_destroy(struct dc_bios **dcb)
+ *dcb = NULL;
+ }
+
+-static void bios_parser_power_down(struct dc_bios *dcb)
++void dc_bios_power_down(struct dc_bios *dcb)
+ {
+ #if defined(CONFIG_DRM_AMD_DAL_VBIOS_PRESENT)
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+@@ -161,7 +157,7 @@ static void bios_parser_power_down(struct dc_bios *dcb)
+ #endif
+ }
+
+-static void bios_parser_power_up(struct dc_bios *dcb)
++void dc_bios_power_up(struct dc_bios *dcb)
+ {
+ #if defined(CONFIG_DRM_AMD_DAL_VBIOS_PRESENT)
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+@@ -185,7 +181,7 @@ static uint8_t get_number_of_objects(struct bios_parser *bp, uint32_t offset)
+ return table->ucNumberOfObjects;
+ }
+
+-static uint8_t bios_parser_get_encoders_number(struct dc_bios *dcb)
++uint8_t dc_bios_get_encoders_number(struct dc_bios *dcb)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -193,7 +189,7 @@ static uint8_t bios_parser_get_encoders_number(struct dc_bios *dcb)
+ le16_to_cpu(bp->object_info_tbl.v1_1->usEncoderObjectTableOffset));
+ }
+
+-static uint8_t bios_parser_get_connectors_number(struct dc_bios *dcb)
++uint8_t dc_bios_get_connectors_number(struct dc_bios *dcb)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -201,7 +197,7 @@ static uint8_t bios_parser_get_connectors_number(struct dc_bios *dcb)
+ le16_to_cpu(bp->object_info_tbl.v1_1->usConnectorObjectTableOffset));
+ }
+
+-static uint32_t bios_parser_get_oem_ddc_lines_number(struct dc_bios *dcb)
++uint32_t dc_bios_get_oem_ddc_lines_number(struct dc_bios *dcb)
+ {
+ uint32_t number = 0;
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+@@ -225,9 +221,8 @@ static uint32_t bios_parser_get_oem_ddc_lines_number(struct dc_bios *dcb)
+ return number;
+ }
+
+-static struct graphics_object_id bios_parser_get_encoder_id(
+- struct dc_bios *dcb,
+- uint32_t i)
++struct graphics_object_id dc_bios_get_encoder_id(struct dc_bios *dcb,
++ uint32_t i)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ struct graphics_object_id object_id = dal_graphics_object_id_init(
+@@ -248,9 +243,8 @@ static struct graphics_object_id bios_parser_get_encoder_id(
+ return object_id;
+ }
+
+-static struct graphics_object_id bios_parser_get_connector_id(
+- struct dc_bios *dcb,
+- uint8_t i)
++struct graphics_object_id dc_bios_get_connector_id(struct dc_bios *dcb,
++ uint8_t i)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ struct graphics_object_id object_id = dal_graphics_object_id_init(
+@@ -271,8 +265,8 @@ static struct graphics_object_id bios_parser_get_connector_id(
+ return object_id;
+ }
+
+-static uint32_t bios_parser_get_src_number(struct dc_bios *dcb,
+- struct graphics_object_id id)
++uint32_t dc_bios_get_src_number(struct dc_bios *dcb,
++ struct graphics_object_id id)
+ {
+ uint32_t offset;
+ uint8_t *number;
+@@ -296,8 +290,8 @@ static uint32_t bios_parser_get_src_number(struct dc_bios *dcb,
+ return *number;
+ }
+
+-static uint32_t bios_parser_get_dst_number(struct dc_bios *dcb,
+- struct graphics_object_id id)
++uint32_t dc_bios_get_dst_number(struct dc_bios *dcb,
++ struct graphics_object_id id)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ ATOM_OBJECT *object = get_bios_object(bp, id);
+@@ -305,9 +299,10 @@ static uint32_t bios_parser_get_dst_number(struct dc_bios *dcb,
+ return get_dst_number_from_object(bp, object);
+ }
+
+-static enum bp_result bios_parser_get_src_obj(struct dc_bios *dcb,
+- struct graphics_object_id object_id, uint32_t index,
+- struct graphics_object_id *src_object_id)
++enum bp_result dc_bios_get_src_obj(struct dc_bios *dcb,
++ struct graphics_object_id object_id,
++ uint32_t index,
++ struct graphics_object_id *src_object_id)
+ {
+ uint32_t number;
+ uint16_t *id;
+@@ -334,9 +329,10 @@ static enum bp_result bios_parser_get_src_obj(struct dc_bios *dcb,
+ return BP_RESULT_OK;
+ }
+
+-static enum bp_result bios_parser_get_dst_obj(struct dc_bios *dcb,
+- struct graphics_object_id object_id, uint32_t index,
+- struct graphics_object_id *dest_object_id)
++enum bp_result dc_bios_get_dst_obj(struct dc_bios *dcb,
++ struct graphics_object_id object_id,
++ uint32_t index,
++ struct graphics_object_id *dest_object_id)
+ {
+ uint32_t number;
+ uint16_t *id;
+@@ -358,9 +354,9 @@ static enum bp_result bios_parser_get_dst_obj(struct dc_bios *dcb,
+ return BP_RESULT_OK;
+ }
+
+-static enum bp_result bios_parser_get_oem_ddc_info(struct dc_bios *dcb,
+- uint32_t index,
+- struct graphics_object_i2c_info *info)
++enum bp_result dc_bios_get_oem_ddc_info(struct dc_bios *dcb,
++ uint32_t index,
++ struct graphics_object_i2c_info *info)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -395,9 +391,9 @@ static enum bp_result bios_parser_get_oem_ddc_info(struct dc_bios *dcb,
+ return BP_RESULT_NORECORD;
+ }
+
+-static enum bp_result bios_parser_get_i2c_info(struct dc_bios *dcb,
+- struct graphics_object_id id,
+- struct graphics_object_i2c_info *info)
++enum bp_result dc_bios_get_i2c_info(struct dc_bios *dcb,
++ struct graphics_object_id id,
++ struct graphics_object_i2c_info *info)
+ {
+ uint32_t offset;
+ ATOM_OBJECT *object;
+@@ -501,10 +497,9 @@ static enum bp_result get_voltage_ddc_info_v3(uint8_t *i2c_line,
+ return result;
+ }
+
+-static enum bp_result bios_parser_get_thermal_ddc_info(
+- struct dc_bios *dcb,
+- uint32_t i2c_channel_id,
+- struct graphics_object_i2c_info *info)
++enum bp_result dc_bios_get_thermal_ddc_info(struct dc_bios *dcb,
++ uint32_t i2c_channel_id,
++ struct graphics_object_i2c_info *info)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ ATOM_I2C_ID_CONFIG_ACCESS *config;
+@@ -522,9 +517,9 @@ static enum bp_result bios_parser_get_thermal_ddc_info(
+ return get_gpio_i2c_info(bp, &record, info);
+ }
+
+-static enum bp_result bios_parser_get_voltage_ddc_info(struct dc_bios *dcb,
+- uint32_t index,
+- struct graphics_object_i2c_info *info)
++enum bp_result dc_bios_get_voltage_ddc_info(struct dc_bios *dcb,
++ uint32_t index,
++ struct graphics_object_i2c_info *info)
+ {
+ uint8_t i2c_line = 0;
+ enum bp_result result = BP_RESULT_NORECORD;
+@@ -559,8 +554,8 @@ static enum bp_result bios_parser_get_voltage_ddc_info(struct dc_bios *dcb,
+ }
+
+ if (result == BP_RESULT_OK)
+- result = bios_parser_get_thermal_ddc_info(dcb,
+- i2c_line, info);
++ result = dc_bios_get_thermal_ddc_info(dcb,
++ i2c_line, info);
+
+ return result;
+ }
+@@ -629,9 +624,9 @@ enum bp_result bios_parser_get_ddc_info_for_i2c_line(struct bios_parser *bp,
+ return BP_RESULT_NORECORD;
+ }
+
+-static enum bp_result bios_parser_get_hpd_info(struct dc_bios *dcb,
+- struct graphics_object_id id,
+- struct graphics_object_hpd_info *info)
++enum bp_result dc_bios_get_hpd_info(struct dc_bios *dcb,
++ struct graphics_object_id id,
++ struct graphics_object_hpd_info *info)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ ATOM_OBJECT *object;
+@@ -656,11 +651,10 @@ static enum bp_result bios_parser_get_hpd_info(struct dc_bios *dcb,
+ return BP_RESULT_NORECORD;
+ }
+
+-static uint32_t bios_parser_get_gpio_record(
+- struct dc_bios *dcb,
+- struct graphics_object_id id,
+- struct bp_gpio_cntl_info *gpio_record,
+- uint32_t record_size)
++uint32_t dc_bios_get_gpio_record(struct dc_bios *dcb,
++ struct graphics_object_id id,
++ struct bp_gpio_cntl_info *gpio_record,
++ uint32_t record_size)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ ATOM_COMMON_RECORD_HEADER *header = NULL;
+@@ -767,11 +761,10 @@ enum bp_result bios_parser_get_device_tag_record(
+ return BP_RESULT_NORECORD;
+ }
+
+-static enum bp_result bios_parser_get_device_tag(
+- struct dc_bios *dcb,
+- struct graphics_object_id connector_object_id,
+- uint32_t device_tag_index,
+- struct connector_device_tag_info *info)
++enum bp_result dc_bios_get_device_tag(struct dc_bios *dcb,
++ struct graphics_object_id connector_object_id,
++ uint32_t device_tag_index,
++ struct connector_device_tag_info *info)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ ATOM_OBJECT *object;
+@@ -815,7 +808,7 @@ static enum bp_result get_firmware_info_v2_2(
+ struct bios_parser *bp,
+ struct firmware_info *info);
+
+-static enum bp_result bios_parser_get_firmware_info(
++enum bp_result dc_bios_get_firmware_info(
+ struct dc_bios *dcb,
+ struct firmware_info *info)
+ {
+@@ -1166,9 +1159,8 @@ static enum bp_result get_ss_info_v3_1(
+ return BP_RESULT_NORECORD;
+ }
+
+-static enum bp_result bios_parser_transmitter_control(
+- struct dc_bios *dcb,
+- struct bp_transmitter_control *cntl)
++enum bp_result dc_bios_transmitter_control(struct dc_bios *dcb,
++ struct bp_transmitter_control *cntl)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -1178,9 +1170,8 @@ static enum bp_result bios_parser_transmitter_control(
+ return bp->cmd_tbl.transmitter_control(bp, cntl);
+ }
+
+-static enum bp_result bios_parser_encoder_control(
+- struct dc_bios *dcb,
+- struct bp_encoder_control *cntl)
++enum bp_result dc_bios_encoder_control(struct dc_bios *dcb,
++ struct bp_encoder_control *cntl)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -1190,9 +1181,8 @@ static enum bp_result bios_parser_encoder_control(
+ return bp->cmd_tbl.dig_encoder_control(bp, cntl);
+ }
+
+-static enum bp_result bios_parser_adjust_pixel_clock(
+- struct dc_bios *dcb,
+- struct bp_adjust_pixel_clock_parameters *bp_params)
++enum bp_result dc_bios_adjust_pixel_clock(struct dc_bios *dcb,
++ struct bp_adjust_pixel_clock_parameters *bp_params)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -1202,9 +1192,8 @@ static enum bp_result bios_parser_adjust_pixel_clock(
+ return bp->cmd_tbl.adjust_display_pll(bp, bp_params);
+ }
+
+-static enum bp_result bios_parser_set_pixel_clock(
+- struct dc_bios *dcb,
+- struct bp_pixel_clock_parameters *bp_params)
++enum bp_result dc_bios_set_pixel_clock(struct dc_bios *dcb,
++ struct bp_pixel_clock_parameters *bp_params)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -1214,9 +1203,8 @@ static enum bp_result bios_parser_set_pixel_clock(
+ return bp->cmd_tbl.set_pixel_clock(bp, bp_params);
+ }
+
+-static enum bp_result bios_parser_set_dce_clock(
+- struct dc_bios *dcb,
+- struct bp_set_dce_clock_parameters *bp_params)
++enum bp_result dc_bios_set_dce_clock(struct dc_bios *dcb,
++ struct bp_set_dce_clock_parameters *bp_params)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -1226,7 +1214,7 @@ static enum bp_result bios_parser_set_dce_clock(
+ return bp->cmd_tbl.set_dce_clock(bp, bp_params);
+ }
+
+-static enum bp_result bios_parser_enable_spread_spectrum_on_ppll(
++enum bp_result dc_bios_enable_spread_spectrum_on_ppll(
+ struct dc_bios *dcb,
+ struct bp_spread_spectrum_parameters *bp_params,
+ bool enable)
+@@ -1241,7 +1229,7 @@ static enum bp_result bios_parser_enable_spread_spectrum_on_ppll(
+
+ }
+
+-static enum bp_result bios_parser_program_crtc_timing(
++enum bp_result dc_bios_program_crtc_timing(
+ struct dc_bios *dcb,
+ struct bp_hw_crtc_timing_parameters *bp_params)
+ {
+@@ -1253,7 +1241,7 @@ static enum bp_result bios_parser_program_crtc_timing(
+ return bp->cmd_tbl.set_crtc_timing(bp, bp_params);
+ }
+
+-static enum bp_result bios_parser_program_display_engine_pll(
++enum bp_result dc_bios_program_display_engine_pll(
+ struct dc_bios *dcb,
+ struct bp_pixel_clock_parameters *bp_params)
+ {
+@@ -1266,11 +1254,10 @@ static enum bp_result bios_parser_program_display_engine_pll(
+
+ }
+
+-static enum signal_type bios_parser_dac_load_detect(
+- struct dc_bios *dcb,
+- struct graphics_object_id encoder,
+- struct graphics_object_id connector,
+- enum signal_type display_signal)
++enum signal_type dc_bios_dac_load_detect(struct dc_bios *dcb,
++ struct graphics_object_id encoder,
++ struct graphics_object_id connector,
++ enum signal_type display_signal)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -1281,7 +1268,7 @@ static enum signal_type bios_parser_dac_load_detect(
+ display_signal);
+ }
+
+-static enum bp_result bios_parser_get_divider_for_target_display_clock(
++enum bp_result dc_bios_get_divider_for_target_display_clock(
+ struct dc_bios *dcb,
+ struct bp_display_clock_parameters *bp_params)
+ {
+@@ -1293,7 +1280,7 @@ static enum bp_result bios_parser_get_divider_for_target_display_clock(
+ return bp->cmd_tbl.compute_memore_engine_pll(bp, bp_params);
+ }
+
+-static enum bp_result bios_parser_enable_crtc(
++enum bp_result dc_bios_enable_crtc(
+ struct dc_bios *dcb,
+ enum controller_id id,
+ bool enable)
+@@ -1306,7 +1293,7 @@ static enum bp_result bios_parser_enable_crtc(
+ return bp->cmd_tbl.enable_crtc(bp, id, enable);
+ }
+
+-static enum bp_result bios_parser_blank_crtc(
++enum bp_result dc_bios_blank_crtc(
+ struct dc_bios *dcb,
+ struct bp_blank_crtc_parameters *bp_params,
+ bool blank)
+@@ -1319,7 +1306,7 @@ static enum bp_result bios_parser_blank_crtc(
+ return bp->cmd_tbl.blank_crtc(bp, bp_params, blank);
+ }
+
+-static enum bp_result bios_parser_crtc_source_select(
++enum bp_result dc_bios_crtc_source_select(
+ struct dc_bios *dcb,
+ struct bp_crtc_source_select *bp_params)
+ {
+@@ -1331,7 +1318,7 @@ static enum bp_result bios_parser_crtc_source_select(
+ return bp->cmd_tbl.select_crtc_source(bp, bp_params);
+ }
+
+-static enum bp_result bios_parser_set_overscan(
++enum bp_result dc_bios_set_overscan(
+ struct dc_bios *dcb,
+ struct bp_hw_crtc_overscan_parameters *bp_params)
+ {
+@@ -1343,7 +1330,7 @@ static enum bp_result bios_parser_set_overscan(
+ return bp->cmd_tbl.set_crtc_overscan(bp, bp_params);
+ }
+
+-static enum bp_result bios_parser_enable_memory_requests(
++enum bp_result dc_bios_enable_memory_requests(
+ struct dc_bios *dcb,
+ enum controller_id controller_id,
+ bool enable)
+@@ -1356,7 +1343,7 @@ static enum bp_result bios_parser_enable_memory_requests(
+ return bp->cmd_tbl.enable_crtc_mem_req(bp, controller_id, enable);
+ }
+
+-static enum bp_result bios_parser_external_encoder_control(
++enum bp_result dc_bios_external_encoder_control(
+ struct dc_bios *dcb,
+ struct bp_external_encoder_control *cntl)
+ {
+@@ -1368,7 +1355,7 @@ static enum bp_result bios_parser_external_encoder_control(
+ return bp->cmd_tbl.external_encoder_control(bp, cntl);
+ }
+
+-static enum bp_result bios_parser_enable_disp_power_gating(
++enum bp_result dc_bios_enable_disp_power_gating(
+ struct dc_bios *dcb,
+ enum controller_id controller_id,
+ enum bp_pipe_control_action action)
+@@ -1382,9 +1369,8 @@ static enum bp_result bios_parser_enable_disp_power_gating(
+ action);
+ }
+
+-static bool bios_parser_is_device_id_supported(
+- struct dc_bios *dcb,
+- struct device_id id)
++bool dc_bios_is_device_id_supported(struct dc_bios *dcb,
++ struct device_id id)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -1393,7 +1379,7 @@ static bool bios_parser_is_device_id_supported(
+ return (le16_to_cpu(bp->object_info_tbl.v1_1->usDeviceSupport) & mask) != 0;
+ }
+
+-static enum bp_result bios_parser_crt_control(
++enum bp_result dc_bios_crt_control(
+ struct dc_bios *dcb,
+ enum engine_id engine_id,
+ bool enable,
+@@ -1535,7 +1521,7 @@ static enum bp_result get_ss_info_from_tbl(
+ uint32_t id,
+ struct spread_spectrum_info *ss_info);
+ /**
+- * bios_parser_get_spread_spectrum_info
++ * dc_bios_get_spread_spectrum_info
+ * Get spread spectrum information from the ASIC_InternalSS_Info(ver 2.1 or
+ * ver 3.1) or SS_Info table from the VBIOS. Currently ASIC_InternalSS_Info
+ * ver 2.1 can co-exist with SS_Info table. Expect ASIC_InternalSS_Info ver 3.1,
+@@ -1547,7 +1533,7 @@ static enum bp_result get_ss_info_from_tbl(
+ * @param [out] ss_info, sprectrum information structure,
+ * @return Bios parser result code
+ */
+-static enum bp_result bios_parser_get_spread_spectrum_info(
++enum bp_result dc_bios_get_spread_spectrum_info(
+ struct dc_bios *dcb,
+ enum as_signal_type signal,
+ uint32_t index,
+@@ -1745,7 +1731,7 @@ static enum bp_result get_ss_info_from_ss_info_table(
+ {
+ struct embedded_panel_info panel_info;
+
+- if (bios_parser_get_embedded_panel_info(&bp->base, &panel_info)
++ if (dc_bios_get_embedded_panel_info((struct dc_bios *)bp, &panel_info)
+ == BP_RESULT_OK)
+ id_local = panel_info.ss_id;
+ break;
+@@ -1801,7 +1787,7 @@ static enum bp_result get_embedded_panel_info_v1_3(
+ struct bios_parser *bp,
+ struct embedded_panel_info *info);
+
+-static enum bp_result bios_parser_get_embedded_panel_info(
++enum bp_result dc_bios_get_embedded_panel_info(
+ struct dc_bios *dcb,
+ struct embedded_panel_info *info)
+ {
+@@ -2080,7 +2066,7 @@ static enum bp_result get_embedded_panel_info_v1_3(
+ }
+
+ /**
+- * bios_parser_get_encoder_cap_info
++ * dc_bios_get_encoder_cap_info
+ *
+ * @brief
+ * Get encoder capability information of input object id
+@@ -2091,10 +2077,9 @@ static enum bp_result get_embedded_panel_info_v1_3(
+ * @return Bios parser result code
+ *
+ */
+-static enum bp_result bios_parser_get_encoder_cap_info(
+- struct dc_bios *dcb,
+- struct graphics_object_id object_id,
+- struct bp_encoder_cap_info *info)
++enum bp_result dc_bios_get_encoder_cap_info(struct dc_bios *dcb,
++ struct graphics_object_id object_id,
++ struct bp_encoder_cap_info *info)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ ATOM_OBJECT *object;
+@@ -2168,7 +2153,7 @@ static ATOM_ENCODER_CAP_RECORD *get_encoder_cap_record(
+ }
+
+ /**
+- * bios_parser_get_din_connector_info
++ * dc_bios_get_din_connector_info
+ * @brief
+ * Get GPIO record for the DIN connector, this GPIO tells whether there is a
+ * CV dumb dongle
+@@ -2179,10 +2164,9 @@ static ATOM_ENCODER_CAP_RECORD *get_encoder_cap_record(
+ * @param info - GPIO record infor
+ * @return Bios parser result code
+ */
+-static enum bp_result bios_parser_get_din_connector_info(
+- struct dc_bios *dcb,
+- struct graphics_object_id id,
+- struct din_connector_info *info)
++enum bp_result dc_bios_get_din_connector_info(struct dc_bios *dcb,
++ struct graphics_object_id id,
++ struct din_connector_info *info)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ ATOM_COMMON_RECORD_HEADER *header;
+@@ -2265,9 +2249,8 @@ static uint32_t get_ss_entry_number_from_ss_info_tbl(
+ * @param[in] signal, ASSignalType to be converted to SSid
+ * @return number of SS Entry that match the signal
+ */
+-static uint32_t bios_parser_get_ss_entry_number(
+- struct dc_bios *dcb,
+- enum as_signal_type signal)
++uint32_t dc_bios_get_ss_entry_number(struct dc_bios *dcb,
++ enum as_signal_type signal)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ uint32_t ss_id = 0;
+@@ -2352,7 +2335,7 @@ static uint32_t get_ss_entry_number_from_ss_info_tbl(
+ case ASIC_INTERNAL_SS_ON_LVDS: {
+ struct embedded_panel_info panel_info;
+
+- if (bios_parser_get_embedded_panel_info(&bp->base, &panel_info)
++ if (dc_bios_get_embedded_panel_info((struct dc_bios *)bp, &panel_info)
+ == BP_RESULT_OK)
+ id_local = panel_info.ss_id;
+ break;
+@@ -2514,9 +2497,8 @@ static ATOM_FAKE_EDID_PATCH_RECORD *get_faked_edid_record(
+ return (ATOM_FAKE_EDID_PATCH_RECORD *)record;
+ }
+
+-static enum bp_result bios_parser_get_faked_edid_len(
+- struct dc_bios *dcb,
+- uint32_t *len)
++enum bp_result dc_bios_get_faked_edid_len(struct dc_bios *dcb,
++ uint32_t *len)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ ATOM_FAKE_EDID_PATCH_RECORD *edid_record = get_faked_edid_record(bp);
+@@ -2529,10 +2511,9 @@ static enum bp_result bios_parser_get_faked_edid_len(
+ return BP_RESULT_OK;
+ }
+
+-static enum bp_result bios_parser_get_faked_edid_buf(
+- struct dc_bios *dcb,
+- uint8_t *buff,
+- uint32_t len)
++enum bp_result dc_bios_get_faked_edid_buf(struct dc_bios *dcb,
++ uint8_t *buff,
++ uint32_t len)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ ATOM_FAKE_EDID_PATCH_RECORD *edid_record = get_faked_edid_record(bp);
+@@ -2564,7 +2545,7 @@ static enum bp_result bios_parser_get_faked_edid_buf(
+ * 2. in DATA_TABLE.GPIO_Pin_LUT, search all records, to get the registerA
+ * offset/mask
+ */
+-static enum bp_result bios_parser_get_gpio_pin_info(
++enum bp_result dc_bios_get_gpio_pin_info(
+ struct dc_bios *dcb,
+ uint32_t gpio_id,
+ struct gpio_pin_info *info)
+@@ -2621,10 +2602,9 @@ static enum bp_result bios_parser_get_gpio_pin_info(
+ * @param info, embedded panel patch mode structure
+ * @return Bios parser result code
+ */
+-static enum bp_result bios_parser_enum_embedded_panel_patch_mode(
+- struct dc_bios *dcb,
+- uint32_t index,
+- struct embedded_panel_patch_mode *mode)
++enum bp_result dc_bios_enum_embedded_panel_patch_mode(struct dc_bios *dcb,
++ uint32_t index,
++ struct embedded_panel_patch_mode *mode)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ uint32_t record_size;
+@@ -4134,15 +4114,14 @@ static void process_ext_display_connection_info(struct bios_parser *bp)
+ }
+ }
+
+-static void bios_parser_post_init(struct dc_bios *dcb)
++void dc_bios_post_init(struct dc_bios *dcb)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+ process_ext_display_connection_info(bp);
+ }
+
+-static bool bios_parser_is_accelerated_mode(
+- struct dc_bios *dcb)
++bool dc_bios_is_accelerated_mode(struct dc_bios *dcb)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -4169,7 +4148,7 @@ static bool bios_parser_is_accelerated_mode(
+ * bool - connection state
+ * const ConnectorDeviceTagInfo* - pointer to device type and enum ID
+ */
+-static void bios_parser_set_scratch_connected(
++void dc_bios_set_scratch_connected(
+ struct dc_bios *dcb,
+ struct graphics_object_id connector_id,
+ bool connected,
+@@ -4198,7 +4177,7 @@ static void bios_parser_set_scratch_connected(
+ * @param
+ * bool - to set or reset state
+ */
+-static void bios_parser_set_scratch_critical_state(
++void dc_bios_set_scratch_critical_state(
+ struct dc_bios *dcb,
+ bool state)
+ {
+@@ -4215,8 +4194,7 @@ static void bios_parser_set_scratch_critical_state(
+ #endif
+ }
+
+-static void bios_parser_set_scratch_acc_mode_change(
+- struct dc_bios *dcb)
++void dc_bios_set_scratch_acc_mode_change(struct dc_bios *dcb)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -4243,11 +4221,10 @@ static void bios_parser_set_scratch_acc_mode_change(
+ * const struct connector_device_tag_info * - pointer to display type and
+ * enum Id
+ */
+-static void bios_parser_prepare_scratch_active_and_requested(
+- struct dc_bios *dcb,
+- enum controller_id controller_id,
+- enum signal_type signal,
+- const struct connector_device_tag_info *device_tag)
++void dc_bios_prepare_scratch_active_and_requested(struct dc_bios *dcb,
++ enum controller_id controller_id,
++ enum signal_type signal,
++ const struct connector_device_tag_info *device_tag)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -4266,8 +4243,7 @@ static void bios_parser_prepare_scratch_active_and_requested(
+ #endif
+ }
+
+-static void bios_parser_set_scratch_active_and_requested(
+- struct dc_bios *dcb)
++void dc_bios_set_scratch_active_and_requested(struct dc_bios *dcb)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+
+@@ -4662,8 +4638,7 @@ static enum bp_result construct_integrated_info(
+ return result;
+ }
+
+-static struct integrated_info *bios_parser_create_integrated_info(
+- struct dc_bios *dcb)
++struct integrated_info *dc_bios_create_integrated_info(struct dc_bios *dcb)
+ {
+ struct bios_parser *bp = BP_FROM_DCB(dcb);
+ struct integrated_info *info = NULL;
+@@ -4683,9 +4658,8 @@ static struct integrated_info *bios_parser_create_integrated_info(
+ return NULL;
+ }
+
+-static void bios_parser_destroy_integrated_info(
+- struct dc_bios *dcb,
+- struct integrated_info **info)
++void dc_bios_destroy_integrated_info(struct dc_bios *dcb,
++ struct integrated_info **info)
+ {
+ if (info == NULL) {
+ ASSERT_CRITICAL(0);
+@@ -4699,13 +4673,15 @@ static void bios_parser_destroy_integrated_info(
+ }
+
+ /******************************************************************************
++
+ * Stub-functions */
+-static bool is_lid_open(
++bool dc_bios_is_lid_open(
+ struct dc_bios *bios)
+ {
+ BREAK_TO_DEBUGGER();
+ return false;
+ }
++#if 0
+
+ static bool is_lid_status_changed(
+ struct dc_bios *bios)
+@@ -4735,38 +4711,37 @@ static enum lcd_scale get_scratch_lcd_scale(
+ return LCD_SCALE_NONE;
+ }
+
+-static void get_bios_event_info(
++void dc_bios_get_bios_event_info(
+ struct dc_bios *bios,
+ struct bios_event_info *info)
+ {
+ BREAK_TO_DEBUGGER();
+ }
+
+-static void update_requested_backlight_level(
++void dc_bios_update_requested_backlight_level(
+ struct dc_bios *bios,
+ uint32_t backlight_8bit)
+ {
+ BREAK_TO_DEBUGGER();
+ }
+
+-static uint32_t get_requested_backlight_level(
++uint32_t dc_bios_get_requested_backlight_level(
+ struct dc_bios *bios)
+ {
+ BREAK_TO_DEBUGGER();
+ return 0;
+ }
+
+-static void take_backlight_control(
++void dc_bios_take_backlight_control(
+ struct dc_bios *bios,
+ bool cntl)
+ {
+ BREAK_TO_DEBUGGER();
+ }
+
+-static bool is_active_display(
+- struct dc_bios *bios,
+- enum signal_type signal,
+- const struct connector_device_tag_info *device_tag)
++bool dc_bios_is_active_display(struct dc_bios *bios,
++ enum signal_type signal,
++ const struct connector_device_tag_info *device_tag)
+ {
+ BREAK_TO_DEBUGGER();
+ return false;
+@@ -4785,151 +4760,7 @@ static uint32_t get_embedded_display_refresh_rate(
+ BREAK_TO_DEBUGGER();
+ return 0;
+ }
+-
+-/******************************************************************************/
+-
+-static const struct dc_vbios_funcs vbios_funcs = {
+- .get_connectors_number = bios_parser_get_connectors_number,
+-
+- .power_down = bios_parser_power_down,
+-
+- .power_up = bios_parser_power_up,
+-
+- .get_encoders_number = bios_parser_get_encoders_number,
+-
+- .get_oem_ddc_lines_number = bios_parser_get_oem_ddc_lines_number,
+-
+- .get_encoder_id = bios_parser_get_encoder_id,
+-
+- .get_connector_id = bios_parser_get_connector_id,
+-
+- .get_src_number = bios_parser_get_src_number,
+-
+- .get_dst_number = bios_parser_get_dst_number,
+-
+- .get_gpio_record = bios_parser_get_gpio_record,
+-
+- .get_src_obj = bios_parser_get_src_obj,
+-
+- .get_dst_obj = bios_parser_get_dst_obj,
+-
+- .get_i2c_info = bios_parser_get_i2c_info,
+-
+- .get_oem_ddc_info = bios_parser_get_oem_ddc_info,
+-
+- .get_voltage_ddc_info = bios_parser_get_voltage_ddc_info,
+-
+- .get_thermal_ddc_info = bios_parser_get_thermal_ddc_info,
+-
+- .get_hpd_info = bios_parser_get_hpd_info,
+-
+- .get_device_tag = bios_parser_get_device_tag,
+-
+- .get_firmware_info = bios_parser_get_firmware_info,
+-
+- .get_spread_spectrum_info = bios_parser_get_spread_spectrum_info,
+-
+- .get_ss_entry_number = bios_parser_get_ss_entry_number,
+-
+- .get_embedded_panel_info = bios_parser_get_embedded_panel_info,
+-
+- .enum_embedded_panel_patch_mode = bios_parser_enum_embedded_panel_patch_mode,
+-
+- .get_gpio_pin_info = bios_parser_get_gpio_pin_info,
+-
+- .get_embedded_panel_info = bios_parser_get_embedded_panel_info,
+-
+- .get_gpio_pin_info = bios_parser_get_gpio_pin_info,
+-
+- .get_faked_edid_len = bios_parser_get_faked_edid_len,
+-
+- .get_faked_edid_buf = bios_parser_get_faked_edid_buf,
+-
+- .get_encoder_cap_info = bios_parser_get_encoder_cap_info,
+-
+- .get_din_connector_info = bios_parser_get_din_connector_info,
+-
+- .is_lid_open = is_lid_open,
+-
+- .is_lid_status_changed = is_lid_status_changed,
+-
+- .is_display_config_changed = is_display_config_changed,
+-
+- .is_accelerated_mode = bios_parser_is_accelerated_mode,
+-
+- .set_scratch_lcd_scale = set_scratch_lcd_scale,
+-
+- .get_scratch_lcd_scale = get_scratch_lcd_scale,
+-
+- .get_bios_event_info = get_bios_event_info,
+-
+- .update_requested_backlight_level = update_requested_backlight_level,
+-
+- .get_requested_backlight_level = get_requested_backlight_level,
+-
+- .take_backlight_control = take_backlight_control,
+-
+- .is_active_display = is_active_display,
+-
+- .get_embedded_display_controller_id = get_embedded_display_controller_id,
+-
+- .get_embedded_display_refresh_rate = get_embedded_display_refresh_rate,
+-
+- .set_scratch_connected = bios_parser_set_scratch_connected,
+-
+- .prepare_scratch_active_and_requested = bios_parser_prepare_scratch_active_and_requested,
+-
+- .set_scratch_active_and_requested = bios_parser_set_scratch_active_and_requested,
+-
+- .set_scratch_critical_state = bios_parser_set_scratch_critical_state,
+-
+- .set_scratch_acc_mode_change = bios_parser_set_scratch_acc_mode_change,
+-
+- .is_device_id_supported = bios_parser_is_device_id_supported,
+-
+- /* COMMANDS */
+- .encoder_control = bios_parser_encoder_control,
+-
+- .transmitter_control = bios_parser_transmitter_control,
+-
+- .crt_control = bios_parser_crt_control,
+-
+- .enable_crtc = bios_parser_enable_crtc,
+-
+- .adjust_pixel_clock = bios_parser_adjust_pixel_clock,
+-
+- .set_pixel_clock = bios_parser_set_pixel_clock,
+-
+- .set_dce_clock = bios_parser_set_dce_clock,
+-
+- .enable_spread_spectrum_on_ppll = bios_parser_enable_spread_spectrum_on_ppll,
+-
+- .program_crtc_timing = bios_parser_program_crtc_timing,
+-
+- .blank_crtc = bios_parser_blank_crtc,
+-
+- .set_overscan = bios_parser_set_overscan,
+-
+- .crtc_source_select = bios_parser_crtc_source_select,
+-
+- .program_display_engine_pll = bios_parser_program_display_engine_pll,
+-
+- .get_divider_for_target_display_clock = bios_parser_get_divider_for_target_display_clock,
+-
+- .dac_load_detect = bios_parser_dac_load_detect,
+-
+- .enable_memory_requests = bios_parser_enable_memory_requests,
+-
+- .external_encoder_control = bios_parser_external_encoder_control,
+-
+- .enable_disp_power_gating = bios_parser_enable_disp_power_gating,
+-
+- .post_init = bios_parser_post_init,
+-
+- .create_integrated_info = bios_parser_create_integrated_info,
+-
+- .destroy_integrated_info = bios_parser_destroy_integrated_info,
+-};
++#endif
+
+ static bool bios_parser_construct(
+ struct bios_parser *bp,
+@@ -4950,8 +4781,6 @@ static bool bios_parser_construct(
+ if (!init->bios)
+ return false;
+
+- bp->base.funcs = &vbios_funcs;
+-
+ dce_version = dal_adapter_service_get_dce_version(as);
+ bp->ctx = init->ctx;
+ bp->as = as;
+diff --git a/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.h b/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.h
+index f8fa108..2133a59 100644
+--- a/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.h
++++ b/drivers/gpu/drm/amd/dal/dc/bios/bios_parser.h
+@@ -51,7 +51,6 @@ enum spread_spectrum_id {
+ };
+
+ struct bios_parser {
+- struct dc_bios base;
+ struct dc_context *ctx;
+ struct adapter_service *as;
+
+@@ -79,6 +78,6 @@ struct bios_parser {
+
+ /* Bios Parser from DC Bios */
+ #define BP_FROM_DCB(dc_bios) \
+- container_of(dc_bios, struct bios_parser, base)
++ (struct bios_parser *)(dc_bios)
+
+ #endif
+diff --git a/drivers/gpu/drm/amd/dal/dc/bios/dce112/bios_parser_helper_dce112.c b/drivers/gpu/drm/amd/dal/dc/bios/dce112/bios_parser_helper_dce112.c
+index 1b0f816..46cc3aa 100644
+--- a/drivers/gpu/drm/amd/dal/dc/bios/dce112/bios_parser_helper_dce112.c
++++ b/drivers/gpu/drm/amd/dal/dc/bios/dce112/bios_parser_helper_dce112.c
+@@ -59,57 +59,6 @@ static void set_scratch_acc_mode_change(
+ dm_write_reg(ctx, addr, value);
+ }
+
+-/*
+- * set_scratch_active_and_requested
+- *
+- * @brief
+- * Set VBIOS scratch pad registers about active and requested displays
+- *
+- * @param
+- * struct dc_context *ctx - [in] DAL context for register accessing
+- * struct vbios_helper_data *d - [in] values to write
+- */
+-static void set_scratch_active_and_requested(
+- struct dc_context *ctx,
+- struct vbios_helper_data *d)
+-{
+- uint32_t addr = 0;
+- uint32_t value = 0;
+-
+- /* mmBIOS_SCRATCH_3 = mmBIOS_SCRATCH_0 + ATOM_ACTIVE_INFO_DEF */
+- addr = mmBIOS_SCRATCH_3;
+-
+- value = dm_read_reg(ctx, addr);
+-
+- value &= ~ATOM_S3_DEVICE_ACTIVE_MASK;
+- value |= (d->active & ATOM_S3_DEVICE_ACTIVE_MASK);
+-
+- dm_write_reg(ctx, addr, value);
+-
+- /* mmBIOS_SCRATCH_6 = mmBIOS_SCRATCH_0 + ATOM_ACC_CHANGE_INFO_DEF */
+- addr = mmBIOS_SCRATCH_6;
+-
+- value = dm_read_reg(ctx, addr);
+-
+- value &= ~ATOM_S6_ACC_REQ_MASK;
+- value |= (d->requested & ATOM_S6_ACC_REQ_MASK);
+-
+- dm_write_reg(ctx, addr, value);
+-
+- /* mmBIOS_SCRATCH_5 = mmBIOS_SCRATCH_0 + ATOM_DOS_REQ_INFO_DEF */
+- addr = mmBIOS_SCRATCH_5;
+-
+- value = dm_read_reg(ctx, addr);
+-
+- value &= ~ATOM_S5_DOS_REQ_DEVICEw0;
+- value |= (d->active & ATOM_S5_DOS_REQ_DEVICEw0);
+-
+- dm_write_reg(ctx, addr, value);
+-
+- d->active = 0;
+- d->requested = 0;
+-}
+-
+ /**
+ * get LCD Scale Mode from VBIOS scratch register
+ */
+@@ -311,116 +260,6 @@ static enum signal_type detect_sink(
+ return SIGNAL_TYPE_NONE;
+ }
+
+-/**
+- * set_scratch_connected
+- *
+- * @brief
+- * update BIOS_SCRATCH_0 register about connected displays
+- *
+- * @param
+- * bool - update scratch register or just prepare info to be updated
+- * bool - connection state
+- * const struct connector_device_tag_info * - pointer to device type and enum ID
+- */
+-static void set_scratch_connected(
+- struct dc_context *ctx,
+- struct graphics_object_id id,
+- bool connected,
+- const struct connector_device_tag_info *device_tag)
+-{
+- uint32_t addr = 0;
+- uint32_t value = 0;
+- uint32_t update = 0;
+-
+- switch (device_tag->dev_id.device_type) {
+- case DEVICE_TYPE_LCD:
+- /* For LCD VBIOS will update LCD Panel connected bit always and
+- * Lid state bit based on SBIOS info do not do anything here
+- * for LCD
+- */
+- break;
+- case DEVICE_TYPE_CRT:
+- /* CRT is not supported in DCE11 */
+- break;
+- case DEVICE_TYPE_DFP:
+- switch (device_tag->dev_id.enum_id) {
+- case 1:
+- update |= ATOM_S0_DFP1;
+- break;
+- case 2:
+- update |= ATOM_S0_DFP2;
+- break;
+- case 3:
+- update |= ATOM_S0_DFP3;
+- break;
+- case 4:
+- update |= ATOM_S0_DFP4;
+- break;
+- case 5:
+- update |= ATOM_S0_DFP5;
+- break;
+- case 6:
+- update |= ATOM_S0_DFP6;
+- break;
+- default:
+- break;
+- }
+- break;
+- case DEVICE_TYPE_CV:
+- /* DCE 8.0 does not support CV, so don't do anything */
+- break;
+-
+- case DEVICE_TYPE_TV:
+- /* For TV VBIOS will update S-Video or
+- * Composite scratch bits on DAL_LoadDetect
+- * when called by driver, do not do anything
+- * here for TV
+- */
+- break;
+-
+- default:
+- break;
+-
+- }
+-
+- /* update scratch register */
+- addr = mmBIOS_SCRATCH_0 + ATOM_DEVICE_CONNECT_INFO_DEF;
+-
+- value = dm_read_reg(ctx, addr);
+-
+- if (connected)
+- value |= update;
+- else
+- value &= ~update;
+-
+- dm_write_reg(ctx, addr, value);
+-}
+-
+-static void set_scratch_critical_state(
+- struct dc_context *ctx,
+- bool state)
+-{
+- uint32_t addr = mmBIOS_SCRATCH_6;
+- uint32_t value = dm_read_reg(ctx, addr);
+-
+- if (state)
+- value |= ATOM_S6_CRITICAL_STATE;
+- else
+- value &= ~ATOM_S6_CRITICAL_STATE;
+-
+- dm_write_reg(ctx, addr, value);
+-}
+-
+-static void set_scratch_lcd_scale(
+- struct dc_context *ctx,
+- enum lcd_scale lcd_scale_request)
+-{
+- DAL_LOGGER_NOT_IMPL(
+- LOG_MINOR_COMPONENT_BIOS,
+- "Bios Parser:%s\n",
+- __func__);
+-}
+-
+ static bool is_lid_open(struct dc_context *ctx)
+ {
+ uint32_t bios_scratch6;
+@@ -440,27 +279,12 @@ static bool is_lid_open(struct dc_context *ctx)
+ /* function table */
+ static const struct bios_parser_helper bios_parser_helper_funcs = {
+ .detect_sink = detect_sink,
+- .fmt_bit_depth_control = NULL,
+- .fmt_control = NULL,
+- .get_bios_event_info = NULL,
+- .get_embedded_display_controller_id = NULL,
+- .get_embedded_display_refresh_rate = NULL,
+- .get_requested_backlight_level = NULL,
+ .get_scratch_lcd_scale = get_scratch_lcd_scale,
+ .is_accelerated_mode = is_accelerated_mode,
+- .is_active_display = NULL,
+- .is_display_config_changed = NULL,
+ .is_lid_open = is_lid_open,
+- .is_lid_status_changed = NULL,
+ .prepare_scratch_active_and_requested =
+ prepare_scratch_active_and_requested,
+- .set_scratch_acc_mode_change = set_scratch_acc_mode_change,
+- .set_scratch_active_and_requested = set_scratch_active_and_requested,
+- .set_scratch_connected = set_scratch_connected,
+- .set_scratch_critical_state = set_scratch_critical_state,
+- .set_scratch_lcd_scale = set_scratch_lcd_scale,
+- .take_backlight_control = NULL,
+- .update_requested_backlight_level = NULL,
++ .set_scratch_acc_mode_change = set_scratch_acc_mode_change
+ };
+
+ /*
+diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc.c b/drivers/gpu/drm/amd/dal/dc/core/dc.c
+index d49ab5e..a5f33d4 100644
+--- a/drivers/gpu/drm/amd/dal/dc/core/dc.c
++++ b/drivers/gpu/drm/amd/dal/dc/core/dc.c
+@@ -83,7 +83,7 @@ static bool create_links(
+
+ dcb = dc->ctx->dc_bios;
+
+- connectors_num = dcb->funcs->get_connectors_number(dcb);
++ connectors_num = dc_bios_get_connectors_number(dcb);
+
+ if (connectors_num > ENUM_ID_COUNT) {
+ dm_error(
+@@ -759,7 +759,7 @@ bool dc_commit_targets(
+
+ pplib_apply_safe_state(core_dc);
+
+- if (!dcb->funcs->is_accelerated_mode(dcb)) {
++ if (!dc_bios_is_accelerated_mode(dcb)) {
+ core_dc->hwss.enable_accelerated_mode(core_dc);
+ }
+
+@@ -837,7 +837,7 @@ bool dc_commit_surfaces_to_target(
+
+ target_status = &context->target_status[i];
+
+- if (!dcb->funcs->is_accelerated_mode(dcb)
++ if (!dc_bios_is_accelerated_mode(dcb)
+ || i == context->target_count) {
+ BREAK_TO_DEBUGGER();
+ goto unexpected_fail;
+diff --git a/drivers/gpu/drm/amd/dal/dc/dc_bios_types.h b/drivers/gpu/drm/amd/dal/dc/dc_bios_types.h
+index 7def8dd..f17702d 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dc_bios_types.h
++++ b/drivers/gpu/drm/amd/dal/dc/dc_bios_types.h
+@@ -38,239 +38,183 @@
+
+ #include "include/bios_parser_types.h"
+
+-struct dc_vbios_funcs {
+- uint8_t (*get_connectors_number)(struct dc_bios *bios);
+-
+- void (*power_down)(struct dc_bios *bios);
+- void (*power_up)(struct dc_bios *bios);
+-
+- uint8_t (*get_encoders_number)(struct dc_bios *bios);
+- uint32_t (*get_oem_ddc_lines_number)(struct dc_bios *bios);
+-
+- struct graphics_object_id (*get_encoder_id)(
+- struct dc_bios *bios,
+- uint32_t i);
+- struct graphics_object_id (*get_connector_id)(
+- struct dc_bios *bios,
+- uint8_t connector_index);
+- uint32_t (*get_src_number)(
+- struct dc_bios *bios,
+- struct graphics_object_id id);
+- uint32_t (*get_dst_number)(
+- struct dc_bios *bios,
+- struct graphics_object_id id);
+-
+- uint32_t (*get_gpio_record)(
+- struct dc_bios *dcb,
+- struct graphics_object_id id,
+- struct bp_gpio_cntl_info *gpio_record,
+- uint32_t record_size);
+-
+- enum bp_result (*get_src_obj)(
+- struct dc_bios *bios,
+- struct graphics_object_id object_id, uint32_t index,
+- struct graphics_object_id *src_object_id);
+- enum bp_result (*get_dst_obj)(
+- struct dc_bios *bios,
+- struct graphics_object_id object_id, uint32_t index,
+- struct graphics_object_id *dest_object_id);
+- enum bp_result (*get_oem_ddc_info)(
+- struct dc_bios *bios,
+- uint32_t index,
+- struct graphics_object_i2c_info *info);
+-
+- enum bp_result (*get_i2c_info)(
+- struct dc_bios *dcb,
+- struct graphics_object_id id,
+- struct graphics_object_i2c_info *info);
+-
+- enum bp_result (*get_voltage_ddc_info)(
+- struct dc_bios *bios,
+- uint32_t index,
+- struct graphics_object_i2c_info *info);
+- enum bp_result (*get_thermal_ddc_info)(
+- struct dc_bios *bios,
+- uint32_t i2c_channel_id,
+- struct graphics_object_i2c_info *info);
+- enum bp_result (*get_hpd_info)(
+- struct dc_bios *bios,
+- struct graphics_object_id id,
+- struct graphics_object_hpd_info *info);
+- enum bp_result (*get_device_tag)(
+- struct dc_bios *bios,
+- struct graphics_object_id connector_object_id,
+- uint32_t device_tag_index,
+- struct connector_device_tag_info *info);
+- enum bp_result (*get_firmware_info)(
+- struct dc_bios *bios,
+- struct firmware_info *info);
+- enum bp_result (*get_spread_spectrum_info)(
+- struct dc_bios *bios,
+- enum as_signal_type signal,
+- uint32_t index,
+- struct spread_spectrum_info *ss_info);
+- uint32_t (*get_ss_entry_number)(
+- struct dc_bios *bios,
+- enum as_signal_type signal);
+- enum bp_result (*get_embedded_panel_info)(
+- struct dc_bios *bios,
+- struct embedded_panel_info *info);
+- enum bp_result (*enum_embedded_panel_patch_mode)(
+- struct dc_bios *bios,
+- uint32_t index,
+- struct embedded_panel_patch_mode *mode);
+- enum bp_result (*get_gpio_pin_info)(
+- struct dc_bios *bios,
+- uint32_t gpio_id,
+- struct gpio_pin_info *info);
+- enum bp_result (*get_faked_edid_len)(
+- struct dc_bios *bios,
+- uint32_t *len);
+- enum bp_result (*get_faked_edid_buf)(
+- struct dc_bios *bios,
+- uint8_t *buff,
+- uint32_t len);
+- enum bp_result (*get_encoder_cap_info)(
+- struct dc_bios *bios,
+- struct graphics_object_id object_id,
+- struct bp_encoder_cap_info *info);
+- enum bp_result (*get_din_connector_info)(
+- struct dc_bios *bios,
+- struct graphics_object_id id,
+- struct din_connector_info *info);
+-
+- bool (*is_lid_open)(
+- struct dc_bios *bios);
+- bool (*is_lid_status_changed)(
+- struct dc_bios *bios);
+- bool (*is_display_config_changed)(
+- struct dc_bios *bios);
+- bool (*is_accelerated_mode)(
+- struct dc_bios *bios);
+- void (*set_scratch_lcd_scale)(
+- struct dc_bios *bios,
+- enum lcd_scale scale);
+- enum lcd_scale (*get_scratch_lcd_scale)(
+- struct dc_bios *bios);
+- void (*get_bios_event_info)(
+- struct dc_bios *bios,
+- struct bios_event_info *info);
+- void (*update_requested_backlight_level)(
+- struct dc_bios *bios,
+- uint32_t backlight_8bit);
+- uint32_t (*get_requested_backlight_level)(
+- struct dc_bios *bios);
+- void (*take_backlight_control)(
+- struct dc_bios *bios,
+- bool cntl);
+- bool (*is_active_display)(
+- struct dc_bios *bios,
+- enum signal_type signal,
+- const struct connector_device_tag_info *device_tag);
+- enum controller_id (*get_embedded_display_controller_id)(
+- struct dc_bios *bios);
+- uint32_t (*get_embedded_display_refresh_rate)(
+- struct dc_bios *bios);
+- void (*set_scratch_connected)(
+- struct dc_bios *bios,
+- struct graphics_object_id connector_id,
+- bool connected,
+- const struct connector_device_tag_info *device_tag);
+- void (*prepare_scratch_active_and_requested)(
+- struct dc_bios *bios,
+- enum controller_id controller_id,
+- enum signal_type signal,
+- const struct connector_device_tag_info *device_tag);
+- void (*set_scratch_active_and_requested)(
+- struct dc_bios *bios);
+- void (*set_scratch_critical_state)(
+- struct dc_bios *bios,
+- bool state);
+- void (*set_scratch_acc_mode_change)(
+- struct dc_bios *bios);
+-
+- bool (*is_device_id_supported)(
+- struct dc_bios *bios,
+- struct device_id id);
+-
+- /* COMMANDS */
+-
+- enum bp_result (*encoder_control)(
+- struct dc_bios *bios,
+- struct bp_encoder_control *cntl);
+- enum bp_result (*transmitter_control)(
+- struct dc_bios *bios,
+- struct bp_transmitter_control *cntl);
+- enum bp_result (*crt_control)(
+- struct dc_bios *bios,
+- enum engine_id engine_id,
+- bool enable,
+- uint32_t pixel_clock);
+- enum bp_result (*enable_crtc)(
+- struct dc_bios *bios,
+- enum controller_id id,
+- bool enable);
+- enum bp_result (*adjust_pixel_clock)(
+- struct dc_bios *bios,
+- struct bp_adjust_pixel_clock_parameters *bp_params);
+- enum bp_result (*set_pixel_clock)(
+- struct dc_bios *bios,
+- struct bp_pixel_clock_parameters *bp_params);
+- enum bp_result (*set_dce_clock)(
+- struct dc_bios *bios,
+- struct bp_set_dce_clock_parameters *bp_params);
+- enum bp_result (*enable_spread_spectrum_on_ppll)(
+- struct dc_bios *bios,
+- struct bp_spread_spectrum_parameters *bp_params,
+- bool enable);
+- enum bp_result (*program_crtc_timing)(
+- struct dc_bios *bios,
+- struct bp_hw_crtc_timing_parameters *bp_params);
+- enum bp_result (*blank_crtc)(
+- struct dc_bios *bios,
+- struct bp_blank_crtc_parameters *bp_params,
+- bool blank);
+- enum bp_result (*set_overscan)(
+- struct dc_bios *bios,
+- struct bp_hw_crtc_overscan_parameters *bp_params);
+- enum bp_result (*crtc_source_select)(
+- struct dc_bios *bios,
+- struct bp_crtc_source_select *bp_params);
+- enum bp_result (*program_display_engine_pll)(
+- struct dc_bios *bios,
+- struct bp_pixel_clock_parameters *bp_params);
+- enum bp_result (*get_divider_for_target_display_clock)(
+- struct dc_bios *bios,
+- struct bp_display_clock_parameters *bp_params);
+- enum signal_type (*dac_load_detect)(
+- struct dc_bios *bios,
+- struct graphics_object_id encoder,
+- struct graphics_object_id connector,
+- enum signal_type display_signal);
+- enum bp_result (*enable_memory_requests)(
+- struct dc_bios *bios,
+- enum controller_id controller_id,
+- bool enable);
+- enum bp_result (*external_encoder_control)(
+- struct dc_bios *bios,
+- struct bp_external_encoder_control *cntl);
+- enum bp_result (*enable_disp_power_gating)(
+- struct dc_bios *bios,
+- enum controller_id controller_id,
+- enum bp_pipe_control_action action);
+-
+- void (*post_init)(struct dc_bios *bios);
+-
+- struct integrated_info *(*create_integrated_info)(
+- struct dc_bios *bios);
+-
+- void (*destroy_integrated_info)(
+- struct dc_bios *dcb,
+- struct integrated_info **info);
+-};
+-
+-struct dc_bios {
+- const struct dc_vbios_funcs *funcs;
+-};
++uint8_t dc_bios_get_connectors_number(struct dc_bios *bios);
++
++void dc_bios_power_down(struct dc_bios *bios);
++void dc_bios_power_up(struct dc_bios *bios);
++
++uint8_t dc_bios_get_encoders_number(struct dc_bios *bios);
++uint32_t dc_bios_get_oem_ddc_lines_number(struct dc_bios *bios);
++
++struct graphics_object_id dc_bios_get_encoder_id(struct dc_bios *bios,
++ uint32_t i);
++struct graphics_object_id dc_bios_get_connector_id(struct dc_bios *bios,
++ uint8_t connector_index);
++uint32_t dc_bios_get_src_number(struct dc_bios *bios,
++ struct graphics_object_id id);
++uint32_t dc_bios_get_dst_number(struct dc_bios *bios,
++ struct graphics_object_id id);
++
++uint32_t dc_bios_get_gpio_record(struct dc_bios *dcb,
++ struct graphics_object_id id,
++ struct bp_gpio_cntl_info *gpio_record,
++ uint32_t record_size);
++enum bp_result dc_bios_get_src_obj(struct dc_bios *bios,
++ struct graphics_object_id object_id,
++ uint32_t index,
++ struct graphics_object_id *src_object_id);
++enum bp_result dc_bios_get_dst_obj(struct dc_bios *bios,
++ struct graphics_object_id object_id,
++ uint32_t index,
++ struct graphics_object_id *dest_object_id);
++enum bp_result dc_bios_get_oem_ddc_info(struct dc_bios *bios,
++ uint32_t index,
++ struct graphics_object_i2c_info *info);
++enum bp_result dc_bios_get_i2c_info(struct dc_bios *dcb,
++ struct graphics_object_id id,
++ struct graphics_object_i2c_info *info);
++
++enum bp_result dc_bios_get_voltage_ddc_info(struct dc_bios *bios,
++ uint32_t index,
++ struct graphics_object_i2c_info *info);
++
++enum bp_result dc_bios_get_thermal_ddc_info(struct dc_bios *bios,
++ uint32_t i2c_channel_id,
++ struct graphics_object_i2c_info *info);
++enum bp_result dc_bios_get_hpd_info(struct dc_bios *bios,
++ struct graphics_object_id id,
++ struct graphics_object_hpd_info *info);
++enum bp_result dc_bios_get_device_tag(struct dc_bios *bios,
++ struct graphics_object_id connector_object_id,
++ uint32_t device_tag_index,
++ struct connector_device_tag_info *info);
++
++enum bp_result dc_bios_get_firmware_info(struct dc_bios *bios,
++ struct firmware_info *info);
++
++enum bp_result dc_bios_get_spread_spectrum_info(struct dc_bios *bios,
++ enum as_signal_type signal,
++ uint32_t index,
++ struct spread_spectrum_info *ss_info);
++uint32_t dc_bios_get_ss_entry_number(struct dc_bios *bios,
++ enum as_signal_type signal);
++enum bp_result dc_bios_get_embedded_panel_info(struct dc_bios *bios,
++ struct embedded_panel_info *info);
++enum bp_result dc_bios_enum_embedded_panel_patch_mode(struct dc_bios *bios,
++ uint32_t index,
++ struct embedded_panel_patch_mode *mode);
++
++enum bp_result dc_bios_get_gpio_pin_info(struct dc_bios *bios,
++ uint32_t gpio_id,
++ struct gpio_pin_info *info);
++
++enum bp_result dc_bios_get_faked_edid_len(struct dc_bios *bios,
++ uint32_t *len);
++
++enum bp_result dc_bios_get_faked_edid_buf(struct dc_bios *bios,
++ uint8_t *buff,
++ uint32_t len);
++
++enum bp_result dc_bios_get_encoder_cap_info(struct dc_bios *bios,
++ struct graphics_object_id object_id,
++ struct bp_encoder_cap_info *info);
++enum bp_result dc_bios_get_din_connector_info(struct dc_bios *bios,
++ struct graphics_object_id id,
++ struct din_connector_info *info);
++bool dc_bios_is_device_id_supported(struct dc_bios *bios,
++ struct device_id id);
++bool dc_bios_is_accelerated_mode(struct dc_bios *bios);
++bool dc_bios_is_lid_open(struct dc_bios *bios);
++#if 0 /* unused trap to debugger functions */
++
++bool dc_bios_is_lid_status_changed(struct dc_bios *bios);
++bool dc_bios_is_display_config_changed(struct dc_bios *bios);
++
++void dc_bios_set_scratch_lcd_scale(struct dc_bios *bios,
++ enum lcd_scale scale);
++enum lcd_scale dc_bios_get_scratch_lcd_scale(struct dc_bios *bios);
++void dc_bios_get_bios_event_info(struct dc_bios *bios,
++ struct bios_event_info *info);
++void dc_bios_update_requested_backlight_level(struct dc_bios *bios,
++ uint32_t backlight_8bit);
++uint32_t dc_bios_get_requested_backlight_level(struct dc_bios *bios);
++void dc_bios_take_backlight_control(struct dc_bios *bios,
++ bool cntl);
++bool dc_bios_is_active_display(struct dc_bios *bios,
++ enum signal_type signal,
++ const struct connector_device_tag_info *device_tag);
++enum controller_id dc_bios_get_embedded_display_controller_id(struct dc_bios *bios);
++uint32_t dc_bios_get_embedded_display_refresh_rate(struct dc_bios *bios);
++#endif
++
++void dc_bios_set_scratch_connected(struct dc_bios *bios,
++ struct graphics_object_id connector_id,
++ bool connected,
++ const struct connector_device_tag_info *device_tag);
++void dc_bios_prepare_scratch_active_and_requested(struct dc_bios *bios,
++ enum controller_id controller_id,
++ enum signal_type signal,
++ const struct connector_device_tag_info *device_tag);
++void dc_bios_set_scratch_active_and_requested(struct dc_bios *bios);
++void dc_bios_set_scratch_critical_state(struct dc_bios *bios,
++ bool state);
++void dc_bios_set_scratch_acc_mode_change(struct dc_bios *bios);
++
++/* COMMANDS */
++enum bp_result dc_bios_encoder_control(struct dc_bios *bios,
++ struct bp_encoder_control *cntl);
++enum bp_result dc_bios_transmitter_control(struct dc_bios *bios,
++ struct bp_transmitter_control *cntl);
++enum bp_result dc_bios_crt_control(struct dc_bios *bios,
++ enum engine_id engine_id,
++ bool enable,
++ uint32_t pixel_clock);
++enum bp_result dc_bios_enable_crtc(struct dc_bios *bios,
++ enum controller_id id,
++ bool enable);
++enum bp_result dc_bios_adjust_pixel_clock(struct dc_bios *bios,
++ struct bp_adjust_pixel_clock_parameters *bp_params);
++enum bp_result dc_bios_set_pixel_clock(struct dc_bios *bios,
++ struct bp_pixel_clock_parameters *bp_params);
++enum bp_result dc_bios_set_dce_clock(struct dc_bios *bios,
++ struct bp_set_dce_clock_parameters *bp_params);
++enum bp_result dc_bios_enable_spread_spectrum_on_ppll(struct dc_bios *bios,
++ struct bp_spread_spectrum_parameters *bp_params,
++ bool enable);
++enum bp_result dc_bios_program_crtc_timing(struct dc_bios *bios,
++ struct bp_hw_crtc_timing_parameters *bp_params);
++enum bp_result dc_bios_blank_crtc(struct dc_bios *bios,
++ struct bp_blank_crtc_parameters *bp_params,
++ bool blank);
++enum bp_result dc_bios_set_overscan(struct dc_bios *bios,
++ struct bp_hw_crtc_overscan_parameters *bp_params);
++enum bp_result dc_bios_crtc_source_select(struct dc_bios *bios,
++ struct bp_crtc_source_select *bp_params);
++enum bp_result dc_bios_program_display_engine_pll(struct dc_bios *bios,
++ struct bp_pixel_clock_parameters *bp_params);
++enum bp_result dc_bios_get_divider_for_target_display_clock(struct dc_bios *bios,
++ struct bp_display_clock_parameters *bp_params);
++enum signal_type dc_bios_dac_load_detect(struct dc_bios *bios,
++ struct graphics_object_id encoder,
++ struct graphics_object_id connector,
++ enum signal_type display_signal);
++enum bp_result dc_bios_enable_memory_requests(struct dc_bios *bios,
++ enum controller_id controller_id,
++ bool enable);
++enum bp_result dc_bios_external_encoder_control(struct dc_bios *bios,
++ struct bp_external_encoder_control *cntl);
++enum bp_result dc_bios_enable_disp_power_gating(struct dc_bios *bios,
++ enum controller_id controller_id,
++ enum bp_pipe_control_action action);
++
++
++void dc_bios_post_init(struct dc_bios *bios);
++
++struct integrated_info *dc_bios_create_integrated_info(struct dc_bios *bios);
++
++void dc_bios_destroy_integrated_info(struct dc_bios *dcb,
++ struct integrated_info **info);
++
++struct dc_bios;
+
+ #endif /* DC_BIOS_TYPES_H */
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce100/dce100_hw_sequencer.c b/drivers/gpu/drm/amd/dal/dc/dce100/dce100_hw_sequencer.c
+index a2a4f2a..ef1afd3 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce100/dce100_hw_sequencer.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce100/dce100_hw_sequencer.c
+@@ -221,8 +221,7 @@ static bool dce100_enable_display_power_gating(
+ cntl = ASIC_PIPE_DISABLE;
+
+ if (!(power_gating == PIPE_GATING_CONTROL_INIT && controller_id != 0))
+- bp_result = dcb->funcs->enable_disp_power_gating(
+- dcb, controller_id + 1, cntl);
++ bp_result = dc_bios_enable_disp_power_gating(dcb, controller_id + 1, cntl);
+
+ if (bp_result == BP_RESULT_OK)
+ return true;
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_clock_source.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_clock_source.c
+index d9c1d86..d48e3df 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_clock_source.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_clock_source.c
+@@ -428,8 +428,8 @@ static bool pll_adjust_pix_clk(
+ bp_adjust_pixel_clock_params.signal_type = pix_clk_params->signal_type;
+ bp_adjust_pixel_clock_params.
+ ss_enable = pix_clk_params->flags.ENABLE_SS;
+- bp_result = clk_src->bios->funcs->adjust_pixel_clock(
+- clk_src->bios, &bp_adjust_pixel_clock_params);
++ bp_result = dc_bios_adjust_pixel_clock(clk_src->bios,
++ &bp_adjust_pixel_clock_params);
+ if (bp_result == BP_RESULT_OK) {
+ pll_settings->actual_pix_clk = actual_pix_clk_khz;
+ pll_settings->adjusted_pix_clk =
+@@ -552,10 +552,9 @@ static bool disable_spread_spectrum(struct dce110_clk_src *clk_src)
+ bp_ss_params.pll_id = clk_src->base.id;
+
+ /*Call ASICControl to process ATOMBIOS Exec table*/
+- result = clk_src->bios->funcs->enable_spread_spectrum_on_ppll(
+- clk_src->bios,
+- &bp_ss_params,
+- false);
++ result = dc_bios_enable_spread_spectrum_on_ppll(clk_src->bios,
++ &bp_ss_params,
++ false);
+
+ return result == BP_RESULT_OK;
+ }
+@@ -659,11 +658,9 @@ static bool enable_spread_spectrum(
+ bp_params.flags.EXTERNAL_SS = 1;
+
+ if (BP_RESULT_OK !=
+- clk_src->bios->funcs->
+- enable_spread_spectrum_on_ppll(
+- clk_src->bios,
+- &bp_params,
+- true))
++ dc_bios_enable_spread_spectrum_on_ppll(clk_src->bios,
++ &bp_params,
++ true))
+ return false;
+ } else
+ return false;
+@@ -766,8 +763,8 @@ static bool dce110_program_pix_clk(
+ bp_pc_params.flags.SET_EXTERNAL_REF_DIV_SRC =
+ pll_settings->use_external_clk;
+
+- if (dce110_clk_src->bios->funcs->set_pixel_clock(
+- dce110_clk_src->bios, &bp_pc_params) != BP_RESULT_OK)
++ if (dc_bios_set_pixel_clock(dce110_clk_src->bios,
++ &bp_pc_params) != BP_RESULT_OK)
+ return false;
+
+ /* Enable SS
+@@ -808,7 +805,7 @@ static bool dce110_clock_source_power_down(
+ bp_pixel_clock_params.flags.FORCE_PROGRAMMING_OF_PLL = 1;
+
+ /*Call ASICControl to process ATOMBIOS Exec table*/
+- bp_result = dce110_clk_src->bios->funcs->set_pixel_clock(
++ bp_result = dc_bios_set_pixel_clock(
+ dce110_clk_src->bios,
+ &bp_pixel_clock_params);
+
+@@ -855,9 +852,8 @@ static void get_ss_info_from_atombios(
+ spread_spectrum_data[0] = NULL;
+ *ss_entries_num = 0;
+
+- *ss_entries_num = clk_src->bios->funcs->get_ss_entry_number(
+- clk_src->bios,
+- as_signal);
++ *ss_entries_num = dc_bios_get_ss_entry_number(clk_src->bios,
++ as_signal);
+
+ if (*ss_entries_num == 0)
+ return;
+@@ -875,12 +871,11 @@ static void get_ss_info_from_atombios(
+ i < (*ss_entries_num);
+ ++i, ++ss_info_cur) {
+
+- bp_result = clk_src->bios->funcs->get_spread_spectrum_info(
+- clk_src->bios,
+- as_signal,
+- i,
+- ss_info_cur);
+-
++ bp_result = dc_bios_get_spread_spectrum_info(clk_src->bios,
++ as_signal,
++ i,
++ ss_info_cur);
++
+ if (bp_result != BP_RESULT_OK)
+ goto out_free_data;
+ }
+@@ -982,9 +977,8 @@ static bool calc_pll_max_vco_construct(
+ init_data->bp == NULL)
+ return false;
+
+- if (init_data->bp->funcs->get_firmware_info(
+- init_data->bp,
+- &fw_info) != BP_RESULT_OK)
++ if (dc_bios_get_firmware_info(init_data->bp,
++ &fw_info) != BP_RESULT_OK)
+ return false;
+
+ calc_pll_cs->ctx = init_data->ctx;
+@@ -1103,8 +1097,7 @@ bool dce110_clk_src_construct(
+ clk_src->base.id = id;
+ clk_src->base.funcs = &dce110_clk_src_funcs;
+
+- if (clk_src->bios->funcs->get_firmware_info(
+- clk_src->bios, &fw_info) != BP_RESULT_OK) {
++ if (dc_bios_get_firmware_info(clk_src->bios, &fw_info) != BP_RESULT_OK) {
+ ASSERT_CRITICAL(false);
+ goto unexpected_failure;
+ }
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
+index 53da396..73c576e 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
+@@ -377,8 +377,7 @@ static bool dce110_enable_display_power_gating(
+ controller_id = CONTROLLER_ID_UNDERLAY0 - 1;
+
+ if (power_gating != PIPE_GATING_CONTROL_INIT || controller_id == 0)
+- bp_result = dcb->funcs->enable_disp_power_gating(
+- dcb, controller_id + 1, cntl);
++ bp_result = dc_bios_enable_disp_power_gating(dcb, controller_id + 1, cntl);
+
+ if (power_gating != PIPE_GATING_CONTROL_ENABLE)
+ dce110_init_pte(ctx);
+@@ -486,7 +485,7 @@ static enum dc_status bios_parser_crtc_source_select(
+
+ dcb = dal_adapter_service_get_bios_parser(sink->link->adapter_srv);
+
+- if (BP_RESULT_OK != dcb->funcs->crtc_source_select(
++ if (BP_RESULT_OK != dc_bios_crtc_source_select(
+ dcb,
+ &crtc_source_select)) {
+ return DC_ERROR_UNEXPECTED;
+@@ -520,7 +519,7 @@ static void update_bios_scratch_critical_state(struct adapter_service *as,
+ {
+ struct dc_bios *dcb = dal_adapter_service_get_bios_parser(as);
+
+- dcb->funcs->set_scratch_critical_state(dcb, state);
++ dc_bios_set_scratch_critical_state(dcb, state);
+ }
+
+ static void update_info_frame(struct pipe_ctx *pipe_ctx)
+@@ -882,7 +881,7 @@ static void enable_accelerated_mode(struct core_dc *dc)
+
+ disable_vga_and_power_gate_all_controllers(dc);
+
+- dcb->funcs->set_scratch_acc_mode_change(dcb);
++ dc_bios_set_scratch_acc_mode_change(dcb);
+ }
+
+ #if 0
+@@ -1558,7 +1557,7 @@ static void init_hw(struct core_dc *dc)
+ }
+
+ dc->hwss.clock_gating_power_up(dc->ctx, false);
+- bp->funcs->power_up(bp);
++ dc_bios_power_up(bp);
+ /***************************************/
+
+ for (i = 0; i < dc->link_count; i++) {
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c
+index 8da3e4d..4487638 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_link_encoder.c
+@@ -118,7 +118,7 @@ static enum bp_result link_transmitter_control(
+ struct dc_bios *bp = dal_adapter_service_get_bios_parser(
+ enc110->base.adapter_service);
+
+- result = bp->funcs->transmitter_control(bp, cntl);
++ result = dc_bios_transmitter_control(bp, cntl);
+
+ return result;
+ }
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_stream_encoder.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_stream_encoder.c
+index dcca860..0ff37da 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_stream_encoder.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_stream_encoder.c
+@@ -410,8 +410,7 @@ void dce110_stream_encoder_hdmi_set_stream_attribute(
+ cntl.lanes_number = LANE_COUNT_FOUR;
+ cntl.color_depth = crtc_timing->display_color_depth;
+
+- if (enc110->base.bp->funcs->encoder_control(
+- enc110->base.bp, &cntl) != BP_RESULT_OK)
++ if (dc_bios_encoder_control(enc110->base.bp, &cntl) != BP_RESULT_OK)
+ return;
+
+ addr = LINK_REG(DIG_FE_CNTL);
+@@ -591,8 +590,7 @@ void dce110_stream_encoder_dvi_set_stream_attribute(
+ LANE_COUNT_EIGHT : LANE_COUNT_FOUR;
+ cntl.color_depth = crtc_timing->display_color_depth;
+
+- if (enc110->base.bp->funcs->encoder_control(
+- enc110->base.bp, &cntl) != BP_RESULT_OK)
++ if (dc_bios_encoder_control(enc110->base.bp, &cntl) != BP_RESULT_OK)
+ return;
+
+ switch (crtc_timing->pixel_encoding) {
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.c
+index b17fb79..5572995 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_timing_generator.c
+@@ -291,7 +291,7 @@ bool dce110_timing_generator_enable_crtc(struct timing_generator *tg)
+ value = 0;
+ dm_write_reg(tg->ctx, CRTC_REG(mmCRTC_MASTER_UPDATE_LOCK), value);
+
+- result = tg->bp->funcs->enable_crtc(tg->bp, tg110->controller_id, true);
++ result = dc_bios_enable_crtc(tg->bp, tg110->controller_id, true);
+
+ return result == BP_RESULT_OK;
+ }
+@@ -469,7 +469,7 @@ bool dce110_timing_generator_disable_crtc(struct timing_generator *tg)
+
+ struct dce110_timing_generator *tg110 = DCE110TG_FROM_TG(tg);
+
+- result = tg->bp->funcs->enable_crtc(tg->bp, tg110->controller_id, false);
++ result = dc_bios_enable_crtc(tg->bp, tg110->controller_id, false);
+
+ /* Need to make sure stereo is disabled according to the DCE5.0 spec */
+
+@@ -574,7 +574,7 @@ bool dce110_timing_generator_program_timing_generator(
+ if (patched_crtc_timing.flags.HORZ_COUNT_BY_TWO == 1)
+ bp_params.flags.HORZ_COUNT_BY_TWO = 1;
+
+- result = tg->bp->funcs->program_crtc_timing(tg->bp, &bp_params);
++ result = dc_bios_program_crtc_timing(tg->bp, &bp_params);
+
+ program_horz_count_by_2(tg, &patched_crtc_timing);
+
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce112/dce112_clock_source.c b/drivers/gpu/drm/amd/dal/dc/dce112/dce112_clock_source.c
+index 7ec9508..65ddb80 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce112/dce112_clock_source.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce112/dce112_clock_source.c
+@@ -188,7 +188,7 @@ static bool dce112_program_pix_clk(
+ bp_pc_params.flags.SUPPORT_YUV_420 = 0;
+ }
+
+- if (dce112_clk_src->bios->funcs->set_pixel_clock(
++ if (dc_bios_set_pixel_clock(
+ dce112_clk_src->bios, &bp_pc_params) != BP_RESULT_OK)
+ return false;
+
+@@ -219,7 +219,7 @@ static bool dce112_clock_source_power_down(
+ bp_pixel_clock_params.flags.FORCE_PROGRAMMING_OF_PLL = 1;
+
+ /*Call ASICControl to process ATOMBIOS Exec table*/
+- bp_result = dce112_clk_src->bios->funcs->set_pixel_clock(
++ bp_result = dc_bios_set_pixel_clock(
+ dce112_clk_src->bios,
+ &bp_pixel_clock_params);
+
+@@ -250,7 +250,7 @@ bool dce112_clk_src_construct(
+ clk_src->base.funcs = &dce112_clk_src_funcs;
+ clk_src->offsets = *reg_offsets;
+
+- if (clk_src->bios->funcs->get_firmware_info(
++ if (dc_bios_get_firmware_info(
+ clk_src->bios, &fw_info) != BP_RESULT_OK) {
+ ASSERT_CRITICAL(false);
+ goto unexpected_failure;
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce112/dce112_hw_sequencer.c b/drivers/gpu/drm/amd/dal/dc/dce112/dce112_hw_sequencer.c
+index 931e47e..437b4c3 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce112/dce112_hw_sequencer.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce112/dce112_hw_sequencer.c
+@@ -347,7 +347,7 @@ static bool dce112_enable_display_power_gating(
+ cntl = ASIC_PIPE_DISABLE;
+
+ if (power_gating != PIPE_GATING_CONTROL_INIT || controller_id == 0)
+- bp_result = dcb->funcs->enable_disp_power_gating(
++ bp_result = dc_bios_enable_disp_power_gating(
+ dcb, controller_id + 1, cntl);
+
+ if (power_gating != PIPE_GATING_CONTROL_ENABLE)
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_hw_sequencer.c b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_hw_sequencer.c
+index 68cf84d..e99d694 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_hw_sequencer.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_hw_sequencer.c
+@@ -203,7 +203,7 @@ static bool dce80_enable_display_power_gating(
+ cntl = ASIC_PIPE_DISABLE;
+
+ if (!(power_gating == PIPE_GATING_CONTROL_INIT && controller_id != 0))
+- bp_result = dcb->funcs->enable_disp_power_gating(
++ bp_result = dc_bios_enable_disp_power_gating(
+ dcb, controller_id + 1, cntl);
+
+ if (bp_result == BP_RESULT_OK)
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_link_encoder.c b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_link_encoder.c
+index 4615c34..653983d 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_link_encoder.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_link_encoder.c
+@@ -79,7 +79,7 @@ static enum bp_result link_transmitter_control(
+ struct dc_bios *bp = dal_adapter_service_get_bios_parser(
+ enc110->base.adapter_service);
+
+- result = bp->funcs->transmitter_control(bp, cntl);
++ result = dc_bios_transmitter_control(bp, cntl);
+
+ return result;
+ }
+diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_stream_encoder.c b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_stream_encoder.c
+index f0a7ee1..7f62b0d 100644
+--- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_stream_encoder.c
++++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_stream_encoder.c
+@@ -426,8 +426,7 @@ void dce80_stream_encoder_hdmi_set_stream_attribute(
+ cntl.lanes_number = LANE_COUNT_FOUR;
+ cntl.color_depth = crtc_timing->display_color_depth;
+
+- if (enc110->base.bp->funcs->encoder_control(
+- enc110->base.bp, &cntl) != BP_RESULT_OK)
++ if (dc_bios_encoder_control(enc110->base.bp, &cntl) != BP_RESULT_OK)
+ return;
+
+ switch (crtc_timing->pixel_encoding) {
+@@ -567,8 +566,7 @@ void dce80_stream_encoder_dvi_set_stream_attribute(
+ LANE_COUNT_EIGHT : LANE_COUNT_FOUR;
+ cntl.color_depth = crtc_timing->display_color_depth;
+
+- if (enc110->base.bp->funcs->encoder_control(
+- enc110->base.bp, &cntl) != BP_RESULT_OK)
++ if (dc_bios_encoder_control(enc110->base.bp, &cntl) != BP_RESULT_OK)
+ return;
+
+ switch (crtc_timing->pixel_encoding) {
+diff --git a/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c b/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c
+index ba9a1fa..3d0f8e1 100644
+--- a/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c
++++ b/drivers/gpu/drm/amd/dal/dc/gpu/dce110/display_clock_dce110.c
+@@ -789,7 +789,7 @@ static void set_clock(
+ pxl_clk_params.target_pixel_clock = requested_clk_khz;
+ pxl_clk_params.pll_id = base->id;
+
+- bp->funcs->program_display_engine_pll(bp, &pxl_clk_params);
++ dc_bios_program_display_engine_pll(bp, &pxl_clk_params);
+
+ if (dc->dfs_bypass_enabled) {
+
+diff --git a/drivers/gpu/drm/amd/dal/dc/gpu/dce112/display_clock_dce112.c b/drivers/gpu/drm/amd/dal/dc/gpu/dce112/display_clock_dce112.c
+index 875bf22..08a70db 100644
+--- a/drivers/gpu/drm/amd/dal/dc/gpu/dce112/display_clock_dce112.c
++++ b/drivers/gpu/drm/amd/dal/dc/gpu/dce112/display_clock_dce112.c
+@@ -776,7 +776,7 @@ static void set_clock(
+ dce_clk_params.pll_id = dc->disp_clk_base.id;
+ dce_clk_params.clock_type = DCECLOCK_TYPE_DISPLAY_CLOCK;
+
+- bp->funcs->set_dce_clock(bp, &dce_clk_params);
++ dc_bios_set_dce_clock(bp, &dce_clk_params);
+
+ /* from power down, we need mark the clock state as ClocksStateNominal
+ * from HWReset, so when resume we will call pplib voltage regulator.*/
+@@ -790,7 +790,7 @@ static void set_clock(
+ dce_clk_params.flags.USE_GENLOCK_AS_SOURCE_FOR_DPREFCLK =
+ (dce_clk_params.pll_id == CLOCK_SOURCE_COMBO_DISPLAY_PLL0);
+
+- bp->funcs->set_dce_clock(bp, &dce_clk_params);
++ dc_bios_set_dce_clock(bp, &dce_clk_params);
+ }
+
+ static void set_clock_state(
+diff --git a/drivers/gpu/drm/amd/dal/dc/gpu/dce80/display_clock_dce80.c b/drivers/gpu/drm/amd/dal/dc/gpu/dce80/display_clock_dce80.c
+index 74d5b2e..313651c 100644
+--- a/drivers/gpu/drm/amd/dal/dc/gpu/dce80/display_clock_dce80.c
++++ b/drivers/gpu/drm/amd/dal/dc/gpu/dce80/display_clock_dce80.c
+@@ -478,7 +478,7 @@ static void set_clock(
+ pxl_clk_params.target_pixel_clock = requested_clk_khz;
+ pxl_clk_params.pll_id = dc->id;
+
+- bp->funcs->program_display_engine_pll(bp, &pxl_clk_params);
++ dc_bios_program_display_engine_pll(bp, &pxl_clk_params);
+
+ if (disp_clk->dfs_bypass_enabled) {
+
+--
+2.7.4
+