Commit bf479f5a authored by Martin Leung's avatar Martin Leung Committed by Alex Deucher

drm/amd/display: adding reading OEM init_data to dcn3

why:
missing OEM data to control graphics card functions

how:
load it into init_data. copied over from dcn2 implementation.
copied destruction sequence as well.
Signed-off-by: default avatarMartin Leung <martin.leung@amd.com>
Acked-by: default avatarAurabindo Pillai <aurabindo.pillai@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e5df916b
...@@ -60,6 +60,7 @@ ...@@ -60,6 +60,7 @@
#include "dml/display_mode_vba.h" #include "dml/display_mode_vba.h"
#include "dcn30/dcn30_dccg.h" #include "dcn30/dcn30_dccg.h"
#include "dcn10/dcn10_resource.h" #include "dcn10/dcn10_resource.h"
#include "dc_link_ddc.h"
#include "dce/dce_panel_cntl.h" #include "dce/dce_panel_cntl.h"
#include "dcn30/dcn30_dwb.h" #include "dcn30/dcn30_dwb.h"
...@@ -1321,6 +1322,9 @@ static void dcn30_resource_destruct(struct dcn30_resource_pool *pool) ...@@ -1321,6 +1322,9 @@ static void dcn30_resource_destruct(struct dcn30_resource_pool *pool)
if (pool->base.dccg != NULL) if (pool->base.dccg != NULL)
dcn_dccg_destroy(&pool->base.dccg); dcn_dccg_destroy(&pool->base.dccg);
if (pool->base.oem_device != NULL)
dal_ddc_service_destroy(&pool->base.oem_device);
} }
static struct hubp *dcn30_hubp_create( static struct hubp *dcn30_hubp_create(
...@@ -2589,6 +2593,7 @@ static bool dcn30_resource_construct( ...@@ -2589,6 +2593,7 @@ static bool dcn30_resource_construct(
int i; int i;
struct dc_context *ctx = dc->ctx; struct dc_context *ctx = dc->ctx;
struct irq_service_init_data init_data; struct irq_service_init_data init_data;
struct ddc_service_init_data ddc_init_data;
ctx->dc_bios->regs = &bios_regs; ctx->dc_bios->regs = &bios_regs;
...@@ -2856,6 +2861,17 @@ static bool dcn30_resource_construct( ...@@ -2856,6 +2861,17 @@ static bool dcn30_resource_construct(
dc->cap_funcs = cap_funcs; dc->cap_funcs = cap_funcs;
if (dc->ctx->dc_bios->fw_info.oem_i2c_present) {
ddc_init_data.ctx = dc->ctx;
ddc_init_data.link = NULL;
ddc_init_data.id.id = dc->ctx->dc_bios->fw_info.oem_i2c_obj_id;
ddc_init_data.id.enum_id = 0;
ddc_init_data.id.type = OBJECT_TYPE_GENERIC;
pool->base.oem_device = dal_ddc_service_create(&ddc_init_data);
} else {
pool->base.oem_device = NULL;
}
return true; return true;
create_fail: create_fail:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment