[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20250421064952epcms5p50fcd97121f3b977d561e41b858e3ae21@epcms5p5>
Date: Mon, 21 Apr 2025 15:49:52 +0900
From: 李飞娟 <feijuan.li@...sung.com>
To: Jani Nikula <jani.nikula@...ux.intel.com>, 李飞娟
<feijuan.li@...sung.com>, "jingoohan1@...il.com" <jingoohan1@...il.com>,
"maarten.lankhorst@...ux.intel.com" <maarten.lankhorst@...ux.intel.com>,
"mripard@...nel.org" <mripard@...nel.org>, "tzimmermann@...e.de"
<tzimmermann@...e.de>, "airlied@...il.com" <airlied@...il.com>,
"simona@...ll.ch" <simona@...ll.ch>, "dri-devel@...ts.freedesktop.org"
<dri-devel@...ts.freedesktop.org>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>
CC: 唐红飞 <hongfei.tang@...sung.com>,
严明贵 <minggui.yan@...sung.com>, 王琪琳
<qilin.wang@...sung.com>
Subject: RE: Re: [PATCH] drm/edid: fixed the bug that hdr metadata was not
cleared
From 7da04ef9ba0c201e7817a21f8c4a1bf88973c8b9 Mon Sep 17 00:00:00 2001
From: "feijuan.li" <feijuan.li@...sung.com>
Date: Fri, 18 Apr 2025 14:56:49 +0000
Subject: [PATCH] drm/edid: fixed the bug that hdr metadata was not reset
When DP connected to a device with HDR capability,
the hdr structure was filled.Then connected to another
sink device without hdr capability, but the hdr info
still exist.
Signed-off-by: feijuan.li <feijuan.li@...sung.com>
---
drivers/gpu/drm/drm_edid.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 13bc4c290b17..cd0e4148f6b0 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -6576,6 +6576,11 @@ static void drm_update_mso(struct drm_connector *connector,
displayid_iter_end(&iter);
}
+static void drm_reset_hdr_sink_metadata(struct drm_connector *connector)
+{
+ memset(&connector->hdr_sink_metadata, 0, sizeof(connector->hdr_sink_metadata));
+}
+
/* A connector has no EDID information, so we've got no EDID to compute quirks from. Reset
* all of the values which would have been set from EDID
*/
@@ -6651,6 +6656,7 @@ static void update_display_info(struct drm_connector *connector,
struct drm_display_info *info = &connector->display_info;
const struct edid *edid;
+ drm_reset_hdr_sink_metadata(connector);
drm_reset_display_info(connector);
clear_eld(connector);
--
2.25.1
I changed the patch, not to avoid other functions.pls check.
BR~
feijuan
--------- Original Message ---------
Sender : Jani Nikula <jani.nikula@...ux.intel.com>
Date : 2025-04-17 17:17 (GMT+9)
Title : Re: [PATCH] drm/edid: fixed the bug that hdr metadata was not cleared
On Wed, 16 Apr 2025, 李飞娟 <feijuan.li@...sung.com> wrote:
> From a34a1e2dd7aacd45f18775564fce12b03ae4009c Mon Sep 17 00:00:00 2001
> From: "feijuan.li" <feijuan.li@...sung.com>
> Date: Wed, 16 Apr 2025 11:07:39 +0000
> Subject: [PATCH] drm/edid: fixed the bug that hdr metadata was not cleared
>
> When DP connected to a device with HDR capability,
> the hdr structure was filled.Then connected to another
> sink device without hdr capability, but the hdr info
> still exist.
>
> Signed-off-by: feijuan.li <feijuan.li@...sung.com>
> ---
> drivers/gpu/drm/drm_edid.c 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 13bc4c290b17..5cf5d30321b6 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -5607,6 +5607,7 @@ static void clear_eld(struct drm_connector *connector)
> {
> mutex_lock(&connector->eld_mutex);
> memset(connector->eld, 0, sizeof(connector->eld));
> + memset(&connector->hdr_sink_metadata, 0, sizeof(connector->hdr_sink_metadata));
hdr_sink_metadata is not related to ELD, and should not be cleared
within clear_eld().
I think this should be cleared in drm_reset_display_info(), and
long-term fields like this should be moved within display info.
BR,
Jani.
> mutex_unlock(&connector->eld_mutex);
>
> connector->latency_present[0] = false;
--
Jani Nikula, Intel
Powered by blists - more mailing lists