mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-04-18 06:33:43 -04:00
drm/amd/display: Use DAC load detection on analog connectors (v2)
This feature is useful for analog connections without EDID: - Really old monitors with a VGA connector - Cheap DVI/VGA adapters that don't connect DDC pins When a connection is established through DAC load detection, the driver is supposed to fill in the supported modes for the display, which we already do in amdgpu_dm_connector_get_modes. Also, because the load detection causes visible glitches, do not attempt to poll the connector again after it was detected this way. Note that it will still be polled after sleep/resume or when force is enabled, which is okay. v2: Add dc_connection_dac_load connection type. Properly release sink when no display is connected. Don't print error when EDID isn't read from an analog display. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
d75e45b853
commit
ac1bb49522
@@ -7248,6 +7248,16 @@ amdgpu_dm_connector_poll(struct amdgpu_dm_connector *aconnector, bool force)
|
||||
enum dc_connection_type conn_type = dc_connection_none;
|
||||
enum drm_connector_status status = connector_status_disconnected;
|
||||
|
||||
/* When we determined the connection using DAC load detection,
|
||||
* do NOT poll the connector do detect disconnect because
|
||||
* that would run DAC load detection again which can cause
|
||||
* visible visual glitches.
|
||||
*
|
||||
* Only allow to poll such a connector again when forcing.
|
||||
*/
|
||||
if (!force && link->local_sink && link->type == dc_connection_dac_load)
|
||||
return connector->status;
|
||||
|
||||
mutex_lock(&aconnector->hpd_lock);
|
||||
|
||||
if (dc_link_detect_connection_type(aconnector->dc_link, &conn_type) &&
|
||||
|
||||
Reference in New Issue
Block a user