Commit 2ed83f2c authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amd/display/dc: enable oem i2c support for DCE 12.x



Use the value pulled from the vbios just like newer chips.

Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent d957d4a3
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@
#include "reg_helper.h"

#include "dce100/dce100_resource.h"
#include "link.h"

#ifndef mmDP0_DP_DPHY_INTERNAL_CTRL
	#define mmDP0_DP_DPHY_INTERNAL_CTRL		0x210f
@@ -659,6 +660,12 @@ static void dce120_resource_destruct(struct dce110_resource_pool *pool)

	if (pool->base.dmcu != NULL)
		dce_dmcu_destroy(&pool->base.dmcu);

	if (pool->base.oem_device != NULL) {
		struct dc *dc = pool->base.oem_device->ctx->dc;

		dc->link_srv->destroy_ddc_service(&pool->base.oem_device);
	}
}

static void read_dce_straps(
@@ -1054,6 +1061,7 @@ static bool dce120_resource_construct(
	struct dc *dc,
	struct dce110_resource_pool *pool)
{
	struct ddc_service_init_data ddc_init_data = {0};
	unsigned int i;
	int j;
	struct dc_context *ctx = dc->ctx;
@@ -1257,6 +1265,15 @@ static bool dce120_resource_construct(

	bw_calcs_data_update_from_pplib(dc);

	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 = dc->link_srv->create_ddc_service(&ddc_init_data);
	}

	return true;

irqs_create_fail: