From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from fhigh-b5-smtp.messagingengine.com (fhigh-b5-smtp.messagingengine.com [202.12.124.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE8C336D9E9 for ; Mon, 24 Aug 2026 22:38:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=202.12.124.156 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787611114; cv=none; b=XJz8hVZ7iLpBW/shSyE7rT0ugcRfdgnzQNeLaI/+wbd5WoD15eswIC4LG2TwQJJY83OyvL4eoWEtzt3kpVxEfbKLV3kkrjJ/z+cg1ALHZwbiMXaN5GAG8E8kR6PSARx0TkBZa/In+ltMO3z778Ueiop9+rpOrCJxRc7Jp4vvLDw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787611114; c=relaxed/simple; bh=VkddFoH1vSv+dTnrAcrdGQFdcFngecieHeRYmkgFGZI=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=kPWKl4siT4ZRJbdEbKAxEe4tF4HZVW8WojeZKsdMNIZyE+M5yTUfdf7LaeliiiNukKAryXBgVycjpfi2jimtWKMZDoGJA43VDP7djPj/umD6eEDTBoT3IyDlFLvYVKYFnkfsszZZN/mWo7vKeJqH2wfrXt2T/4VT/inuyEXTfYc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=xela.zone; spf=pass smtp.mailfrom=xela.zone; dkim=pass (2048-bit key) header.d=xela.zone header.i=@xela.zone header.b=iw+VlExX; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=Pqpccs6y; arc=none smtp.client-ip=202.12.124.156 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=xela.zone Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=xela.zone Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=xela.zone header.i=@xela.zone header.b="iw+VlExX"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="Pqpccs6y" Received: from phl-compute-02.internal (phl-compute-02.internal [10.202.2.42]) by mailfhigh.stl.internal (Postfix) with ESMTP id F327D7A0136; Mon, 24 Aug 2026 18:38:31 -0400 (EDT) Received: from phl-frontend-04 ([10.202.2.163]) by phl-compute-02.internal (MEProxy); Mon, 24 Aug 2026 18:38:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xela.zone; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:message-id:mime-version:reply-to:subject:subject:to :to; s=fm2; t=1787611111; x=1787697511; bh=09VfrXSvxnRtX2nVWgaq5 s0ocHWyaQDhYuZjiWctKPo=; b=iw+VlExXIYQigjUt27JHr+9jHS3sXLjT5hDwL 0GTmClUFFGrH6CQd/t73F+ghkXNweCUwQ6bcXIgpzcUDvhMd1eDUMeIw5v2KuyMF z+fM14P4I29dQ/39pU8Zn8wAB/Qxu4TdxM5pzj9AEw4Y7j6dcXng5QyEKqQB8F6Z y2dWzU23zPTMTiLaKplN/EK4PjR4rbkfe4mb1McUOYWdmX4FyBe5ksCNZsO2LJnt FkxFOo90V0MixtNF+g70QafFpH4UFqJ+1QRKWeNqkJzwsdEEO3dGAQCyAWFcguFj RX4KBMhiFj73lE6VNAPRZrHfZ1sC4wBWmSQ86H8Hi8rGodonw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:message-id:mime-version:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1787611111; x=1787697511; bh=09VfrXSvxnRtX2nVWgaq5s0ocHWyaQDhYuZ jiWctKPo=; b=Pqpccs6yp4ciDT4GlPzM+wo3ptbAi37Gnu0ogxBMfEFhjgycnc7 cFdwQOeqyXpOlzrkFUO2zPXVuVLDZuA0gbTHmYVlaiNMmRRJnWZfUzJbGMsgDJ47 sR/RI8G7LG8m5sBNpjFsNmaajS82b6AIoL2zOTzIejGlK2bGmuQfUkXpWY803OBM epKitVAfeXn3nDPR1qPN9dyIedxTaBdN7TC36RCQ1un8VSbKXr8mlKDQiNeBGd3s T9xOytfSta6nCINb/OQHMLgksV6cZJ/1X3k3SjeqJwZDMSpUqF+HFyuUMDKL/sp3 vbq71FDpKTgeT1nMOP6NSAwv51EeHTOzoRw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: dmFkZTEzYTAVnlsXfMaTDasgaW9hr5dO1Ruh/zroW/uFMy24CyMcvhn6jOJuoo+H0OEuZ/ u+o4saYJhsLvqKJgZCwnxHHcpfV+OxS3COpHiDxQuV1D9Sh6uDpB8xXR0TVqiOqXGdiOm4 Hg1oc+4K9NkyQIoulyXtxnTnrlUAssJFmHpdKnMzo3FAmy8ct7rkeen+Y6037fOqYoYZuY nfBbrzc23NJgvIUbNtPQehZKo+LHmpZv1EFMFMf9EgzjYiJk3YpCsmuQfmLwxGQqEnlCzq U4IYL6TBeo6zRNcFIsG07It3TOouwmtRs9LQvyAdlKouvzLdWzjXnt3O/6zvl1MmNoj7gD 9Gs5cP6TSzqg+b4A9KXTeF4JdaMbcDf5fLz9KfDH7HxtQ4ysh3xDGEvMJj8QxdKpy1YkVu xGD4RzrdtN7VCmbTjTkceKReww/ax/v09Co6l8V28OhMG2DcjMVcLBdJDCaYl5YSkkCpn+ Jg85KCahcr0F2RG8k/8t+TwoIdYZOX+HdSaa6c8QbeOQHhTAYYluFOJQxOD0bz/zeW22nv yqluVpdvqGS02RSThmLykKPOyHp8+PF3phO0Fw4zPdi4wgXTefA4dpVioTl/ExG0rfYBDX Bs6EPc0CBBzhb4Im6XsRiQNPOsx9uD1WmMnghNfikyTBGJtWYFFDNjHMwe7w X-ME-Proxy: Feedback-ID: i039e48e0:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 24 Aug 2026 18:38:30 -0400 (EDT) From: Xela To: dri-devel@lists.freedesktop.org Cc: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , Jani Nikula , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org, Xela Subject: [PATCH v2] drm/edid: Add HDR Static Metadata Type 1 quirk for LG 32GN600 Date: Mon, 24 Aug 2026 14:38:27 -0800 Message-ID: <20260824223827.259147-1-git@xela.zone> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The LG 32GN600 monitor (PNP ID GSM 0x7766) advertises HDR support in its CTA-861 Extension block with SMPTE ST 2084 (PQ) EOTF support (byte 0x9e = 0x05) and valid desired content luminance descriptors (351 cd/m^2 max CLL/FALL at bytes 0xa0-0xa2). However, due to a factory firmware bug, the HDR Static Metadata Data Block descriptor byte (byte 0x9f) is reported as 0x00 instead of 0x01, omitting the Static Metadata Type 1 capability bit (bit 0). Because of this omitted bit, drm_parse_hdr_metadata_block() sets metadata_type to 0. Consequently, drm_calculate_luminance_range() rejects the block, and userspace attempts to perform atomic KMS commits configuring HDR output metadata fail with -EINVAL (Error 22), preventing compositors (Plasma, Gamescope, MPV) from engaging HDR on this display. Introduce EDID_QUIRK_FORCE_HDR_STATIC_METADATA_TYPE1 to force the Static Metadata Type 1 descriptor bit for displays with this defective EDID block, and register the LG 32GN600 (GSM 0x7766) in the EDID quirk table. Signed-off-by: Xela --- v2: - Specify LG 32GN600 model in subject, commit description, and code comment. drivers/gpu/drm/drm_edid.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 07970e5b5..b467a643a 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -96,6 +96,8 @@ enum drm_edid_internal_quirk { EDID_QUIRK_NON_DESKTOP, /* Cap the DSC target bitrate to 15bpp */ EDID_QUIRK_CAP_DSC_15BPP, + /* Force Static Metadata Type 1 for HDR Static Metadata Data Block */ + EDID_QUIRK_FORCE_HDR_STATIC_METADATA_TYPE1, }; #define MICROSOFT_IEEE_OUI 0xca125c @@ -195,6 +197,9 @@ static const struct edid_quirk { /* LG 27GN950 */ EDID_QUIRK('G', 'S', 'M', 0x5b9a, BIT(EDID_QUIRK_CAP_DSC_15BPP)), + /* LG 32GN600 */ + EDID_QUIRK('G', 'S', 'M', 0x7766, BIT(EDID_QUIRK_FORCE_HDR_STATIC_METADATA_TYPE1)), + /* LGD panel of HP zBook 17 G2, eDP 10 bpc, but reports unknown bpc */ EDID_QUIRK('L', 'G', 'D', 764, BIT(EDID_QUIRK_FORCE_10BPC)), @@ -5498,6 +5503,10 @@ drm_parse_hdr_metadata_block(struct drm_connector *connector, const u8 *db) hdr_metadata->eotf = eotf_supported(db); hdr_metadata->metadata_type = hdr_metadata_type(db); + if (drm_edid_has_internal_quirk(connector, + EDID_QUIRK_FORCE_HDR_STATIC_METADATA_TYPE1)) + hdr_metadata->metadata_type |= BIT(HDMI_STATIC_METADATA_TYPE1); + if (len >= 4) hdr_metadata->max_cll = db[4]; if (len >= 5) -- 2.54.0