mirror of
https://github.com/torvalds/linux.git
synced 2025-11-10 21:48:46 +02:00
drm/amd/display: Remove unwanted drm edid references
[WHY] edid_override and drm_edid_override_connector_update, according to drm documentation, should not be referred outside drm_edid. [HOW] Remove and replace them accordingly. This can tested by IGT's kms_hdmi_inject test. Reviewed-by: Harry Wentland <harry.wentland@amd.com> Acked-by: Jani Nikula <jani.nikula@intel.com> Signed-off-by: Alex Hung <alex.hung@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
5d72e247e5
commit
0e859faf86
1 changed files with 23 additions and 19 deletions
|
|
@ -6461,15 +6461,23 @@ amdgpu_dm_connector_late_register(struct drm_connector *connector)
|
||||||
static void amdgpu_dm_connector_funcs_force(struct drm_connector *connector)
|
static void amdgpu_dm_connector_funcs_force(struct drm_connector *connector)
|
||||||
{
|
{
|
||||||
struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
|
struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
|
||||||
|
struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(connector);
|
||||||
struct dc_link *dc_link = aconnector->dc_link;
|
struct dc_link *dc_link = aconnector->dc_link;
|
||||||
struct dc_sink *dc_em_sink = aconnector->dc_em_sink;
|
struct dc_sink *dc_em_sink = aconnector->dc_em_sink;
|
||||||
struct edid *edid;
|
struct edid *edid;
|
||||||
|
|
||||||
if (!connector->edid_override)
|
/*
|
||||||
|
* Note: drm_get_edid gets edid in the following order:
|
||||||
|
* 1) override EDID if set via edid_override debugfs,
|
||||||
|
* 2) firmware EDID if set via edid_firmware module parameter
|
||||||
|
* 3) regular DDC read.
|
||||||
|
*/
|
||||||
|
edid = drm_get_edid(connector, &amdgpu_connector->ddc_bus->aux.ddc);
|
||||||
|
if (!edid) {
|
||||||
|
DRM_ERROR("No EDID found on connector: %s.\n", connector->name);
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
drm_edid_override_connector_update(&aconnector->base);
|
|
||||||
edid = aconnector->base.edid_blob_ptr->data;
|
|
||||||
aconnector->edid = edid;
|
aconnector->edid = edid;
|
||||||
|
|
||||||
/* Update emulated (virtual) sink's EDID */
|
/* Update emulated (virtual) sink's EDID */
|
||||||
|
|
@ -6504,30 +6512,26 @@ static int get_modes(struct drm_connector *connector)
|
||||||
|
|
||||||
static void create_eml_sink(struct amdgpu_dm_connector *aconnector)
|
static void create_eml_sink(struct amdgpu_dm_connector *aconnector)
|
||||||
{
|
{
|
||||||
|
struct drm_connector *connector = &aconnector->base;
|
||||||
|
struct amdgpu_connector *amdgpu_connector = to_amdgpu_connector(&aconnector->base);
|
||||||
struct dc_sink_init_data init_params = {
|
struct dc_sink_init_data init_params = {
|
||||||
.link = aconnector->dc_link,
|
.link = aconnector->dc_link,
|
||||||
.sink_signal = SIGNAL_TYPE_VIRTUAL
|
.sink_signal = SIGNAL_TYPE_VIRTUAL
|
||||||
};
|
};
|
||||||
struct edid *edid;
|
struct edid *edid;
|
||||||
|
|
||||||
if (!aconnector->base.edid_blob_ptr) {
|
/*
|
||||||
/* if connector->edid_override valid, pass
|
* Note: drm_get_edid gets edid in the following order:
|
||||||
* it to edid_override to edid_blob_ptr
|
* 1) override EDID if set via edid_override debugfs,
|
||||||
*/
|
* 2) firmware EDID if set via edid_firmware module parameter
|
||||||
|
* 3) regular DDC read.
|
||||||
drm_edid_override_connector_update(&aconnector->base);
|
*/
|
||||||
|
edid = drm_get_edid(connector, &amdgpu_connector->ddc_bus->aux.ddc);
|
||||||
if (!aconnector->base.edid_blob_ptr) {
|
if (!edid) {
|
||||||
DRM_ERROR("No EDID firmware found on connector: %s ,forcing to OFF!\n",
|
DRM_ERROR("No EDID found on connector: %s.\n", connector->name);
|
||||||
aconnector->base.name);
|
return;
|
||||||
|
|
||||||
aconnector->base.force = DRM_FORCE_OFF;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
edid = (struct edid *) aconnector->base.edid_blob_ptr->data;
|
|
||||||
|
|
||||||
aconnector->edid = edid;
|
aconnector->edid = edid;
|
||||||
|
|
||||||
aconnector->dc_em_sink = dc_link_add_remote_sink(
|
aconnector->dc_em_sink = dc_link_add_remote_sink(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue