Commit 550e5d23 authored by Hersen Wu's avatar Hersen Wu Committed by Alex Deucher
Browse files

drm/amd/display: assign edid_blob_ptr with edid from debugfs



[Why] implementation change of drm_edid_override_set since linux
kernel 6.1, edid from debugfs is saved into connector->edid_override
immediatey, not saved to connector->edid_blob_ptr at the same time.

[How] call new drm_edid function drm_connector_update_edid_property
to assign connector->edid_blob_ptr with override edid from debugfs.

Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Reviewed-by: default avatarChao-kai Wang <Stylon.Wang@amd.com>
Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarHersen Wu <hersenxs.wu@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 1ba91b54
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -6372,6 +6372,14 @@ static void create_eml_sink(struct amdgpu_dm_connector *aconnector)
	};
	struct edid *edid;

	if (!aconnector->base.edid_blob_ptr) {
		/* if connector->edid_override valid, pass
		 * it to edid_override to edid_blob_ptr
		 */
		int count;

		count = drm_edid_override_connector_update(&aconnector->base);

		if (!aconnector->base.edid_blob_ptr) {
			DRM_ERROR("No EDID firmware found on connector: %s ,forcing to OFF!\n",
					aconnector->base.name);
@@ -6379,6 +6387,7 @@ static void create_eml_sink(struct amdgpu_dm_connector *aconnector)
			aconnector->base.force = DRM_FORCE_OFF;
			return;
		}
	}

	edid = (struct edid *) aconnector->base.edid_blob_ptr->data;