Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/display: Add analog bit to edid_caps (v2)

The new analog bit will be used with DVI-I connectors.

DVI-I connectors can connect to both digital and analog monitors
and this bit will help distinguish between those.

v2:
Sanitize analog bit based on connector type.

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>

authored by

Timur Kristóf and committed by
Alex Deucher
d64fd9da dfc74e37

+15
+1
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c
··· 131 131 edid_caps->serial_number = edid_buf->serial; 132 132 edid_caps->manufacture_week = edid_buf->mfg_week; 133 133 edid_caps->manufacture_year = edid_buf->mfg_year; 134 + edid_caps->analog = !(edid_buf->input & DRM_EDID_INPUT_DIGITAL); 134 135 135 136 drm_edid_get_monitor_name(edid_buf, 136 137 edid_caps->display_name,
+5
drivers/gpu/drm/amd/display/dc/dc_types.h
··· 185 185 unsigned int wait_after_dpcd_poweroff_ms; 186 186 }; 187 187 188 + /** 189 + * struct dc_edid_caps - Capabilities read from EDID. 190 + * @analog: Whether the monitor is analog. Used by DVI-I handling. 191 + */ 188 192 struct dc_edid_caps { 189 193 /* sink identification */ 190 194 uint16_t manufacturer_id; ··· 217 213 bool hdr_supported; 218 214 bool rr_capable; 219 215 bool scdc_present; 216 + bool analog; 220 217 221 218 struct dc_panel_patch panel_patch; 222 219 };
+7
drivers/gpu/drm/amd/display/include/grph_object_id.h
··· 310 310 } 311 311 return false; 312 312 } 313 + 314 + static inline bool dc_connector_supports_analog(const enum connector_id conn) 315 + { 316 + return conn == CONNECTOR_ID_VGA || 317 + conn == CONNECTOR_ID_SINGLE_LINK_DVII || 318 + conn == CONNECTOR_ID_DUAL_LINK_DVII; 319 + } 313 320 #endif