drm/edid: update non-desktop use also from DisplayID
Use the DisplayID 2.0 primary use case information to deduce whether this is a head-mounted display, and should not be used for desktop. Cc: Iaroslav Boliukin <iam@lach.pw> Cc: Dmitry Osipenko <dmitry.osipenko@collabora.com> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Tested-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> # HTC VIVE Pro 2 Reviewed-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> Signed-off-by: Dmitry Osipenko <dmitry.osipenko@collabora.com> Link: https://patchwork.freedesktop.org/patch/msgid/de75b2edddd7d30216e4dd5699a064dc737688f5.1676580180.git.jani.nikula@intel.com
This commit is contained in:
parent
b568e6bb49
commit
217a8c63df
@ -6433,6 +6433,29 @@ static void drm_reset_display_info(struct drm_connector *connector)
|
||||
info->quirks = 0;
|
||||
}
|
||||
|
||||
static void update_displayid_info(struct drm_connector *connector,
|
||||
const struct drm_edid *drm_edid)
|
||||
{
|
||||
struct drm_display_info *info = &connector->display_info;
|
||||
const struct displayid_block *block;
|
||||
struct displayid_iter iter;
|
||||
|
||||
displayid_iter_edid_begin(drm_edid, &iter);
|
||||
displayid_iter_for_each(block, &iter) {
|
||||
if (displayid_version(&iter) == DISPLAY_ID_STRUCTURE_VER_20 &&
|
||||
(displayid_primary_use(&iter) == PRIMARY_USE_HEAD_MOUNTED_VR ||
|
||||
displayid_primary_use(&iter) == PRIMARY_USE_HEAD_MOUNTED_AR))
|
||||
info->non_desktop = true;
|
||||
|
||||
/*
|
||||
* We're only interested in the base section here, no need to
|
||||
* iterate further.
|
||||
*/
|
||||
break;
|
||||
}
|
||||
displayid_iter_end(&iter);
|
||||
}
|
||||
|
||||
static void update_display_info(struct drm_connector *connector,
|
||||
const struct drm_edid *drm_edid)
|
||||
{
|
||||
@ -6463,6 +6486,8 @@ static void update_display_info(struct drm_connector *connector,
|
||||
info->color_formats |= DRM_COLOR_FORMAT_RGB444;
|
||||
drm_parse_cea_ext(connector, drm_edid);
|
||||
|
||||
update_displayid_info(connector, drm_edid);
|
||||
|
||||
/*
|
||||
* Digital sink with "DFP 1.x compliant TMDS" according to EDID 1.3?
|
||||
*
|
||||
|
Loading…
x
Reference in New Issue
Block a user