| From ddb2ffecc00fbc50899ac06adda5f8683b40b53e Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 28 Dec 2021 12:10:51 +0200 |
| Subject: drm/edid: improve non-desktop quirk logging |
| |
| From: Jani Nikula <jani.nikula@intel.com> |
| |
| [ Upstream commit ce99534e978d4a36787dbe5e5c57749d12e6bf4a ] |
| |
| Improve non-desktop quirk logging if the EDID indicates non-desktop. If |
| both are set, note about redundant quirk. If there's no quirk but the |
| EDID indicates non-desktop, don't log non-desktop is set to 0. |
| |
| Cc: Philipp Zabel <philipp.zabel@gmail.com> |
| Signed-off-by: Jani Nikula <jani.nikula@intel.com> |
| Reviewed-by: Philipp Zabel <philipp.zabel@gmail.com> |
| Tested-by: Philipp Zabel <philipp.zabel@gmail.com> |
| Link: https://patchwork.freedesktop.org/patch/msgid/20211228101051.317989-1-jani.nikula@intel.com |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/drm_edid.c | 17 ++++++++++------- |
| 1 file changed, 10 insertions(+), 7 deletions(-) |
| |
| diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c |
| index a71b82668a98..83e5c115e754 100644 |
| --- a/drivers/gpu/drm/drm_edid.c |
| +++ b/drivers/gpu/drm/drm_edid.c |
| @@ -5325,17 +5325,13 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi |
| info->width_mm = edid->width_cm * 10; |
| info->height_mm = edid->height_cm * 10; |
| |
| - info->non_desktop = !!(quirks & EDID_QUIRK_NON_DESKTOP); |
| - |
| drm_get_monitor_range(connector, edid); |
| |
| - DRM_DEBUG_KMS("non_desktop set to %d\n", info->non_desktop); |
| - |
| if (edid->revision < 3) |
| - return quirks; |
| + goto out; |
| |
| if (!(edid->input & DRM_EDID_INPUT_DIGITAL)) |
| - return quirks; |
| + goto out; |
| |
| info->color_formats |= DRM_COLOR_FORMAT_RGB444; |
| drm_parse_cea_ext(connector, edid); |
| @@ -5356,7 +5352,7 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi |
| |
| /* Only defined for 1.4 with digital displays */ |
| if (edid->revision < 4) |
| - return quirks; |
| + goto out; |
| |
| switch (edid->input & DRM_EDID_DIGITAL_DEPTH_MASK) { |
| case DRM_EDID_DIGITAL_DEPTH_6: |
| @@ -5393,6 +5389,13 @@ u32 drm_add_display_info(struct drm_connector *connector, const struct edid *edi |
| |
| drm_update_mso(connector, edid); |
| |
| +out: |
| + if (quirks & EDID_QUIRK_NON_DESKTOP) { |
| + drm_dbg_kms(connector->dev, "Non-desktop display%s\n", |
| + info->non_desktop ? " (redundant quirk)" : ""); |
| + info->non_desktop = true; |
| + } |
| + |
| return quirks; |
| } |
| |
| -- |
| 2.35.1 |
| |