From nobody Tue Feb 10 00:59:08 2026 Received: from bali.collaboradmins.com (bali.collaboradmins.com [148.251.105.195]) (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 568A33876DD for ; Thu, 29 Jan 2026 12:13:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.251.105.195 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769688828; cv=none; b=ukz7mxT7ZL9Jn2EH/uIjht5HLdk0HGw1zLXJp02FClB3Yzi2KRfqr8mof7ASEJyqHWUuIVjY0AEromzSOC9sf2ZjGmt1CC3u+4GlSR7ggylMvezSVaKTHSvsfQtHf1P8ejOSKS1FZk4XEyZU987RBrJREngitVOvPPyQgwnH+qs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769688828; c=relaxed/simple; bh=tABGDG5Z5ICTGCam4XV/umuPl2h3XtN1aIU88xjL14s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=R1jXThqPQDens0u+dgaFtDiFdMNM3U+F4pyz2AoefytPpyEGErqrMKAewBbho7dvPXMj3jRZXUDOY4NkI0aV6J5Ux+0YN1bhf9L2S86gzZfd/L60GvZr9ZQVWu5VU8mx/Yi5k//rNOZAUaZajiITh54FAS3IW7i7Ve5vwFQ4R9Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com; spf=pass smtp.mailfrom=collabora.com; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b=MioptNh5; arc=none smtp.client-ip=148.251.105.195 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=collabora.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=collabora.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=collabora.com header.i=@collabora.com header.b="MioptNh5" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1769688820; bh=tABGDG5Z5ICTGCam4XV/umuPl2h3XtN1aIU88xjL14s=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=MioptNh5/wujC3TVfl2QOaNL1ZK70TPYTXN9qWJ7RrAXJR9hUM4k1pGWLefxcjWjb fgiwlB6YD3ZX6gTrTzc4S4Z3kOEsXAqFZdLN6oLlAePnNmbg/Es6iywPXyy8WV4Jn5 RTcR6I6bCE43kRi4Dt53/6ZFzO+soGYbskRkJoCEBZHMeMANFEoJ83TqzSn44qpA0c BQF4RgDfdCK6So59yYhdlIy0sOtpQnvooLxYkOmFHa02rR3iFT4SfB7yuBYVjkrvDf IXf7RX1rmUdqJtAHEA1e38Bj0rDLI4SGWkW7Wq6jMcE7tToMc8FjUnV/w718ZsUGUp KYP81tXz2D8xw== Received: from localhost (unknown [82.79.138.145]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: cristicc) by bali.collaboradmins.com (Postfix) with ESMTPSA id 3CEF117E14F2; Thu, 29 Jan 2026 13:13:40 +0100 (CET) From: Cristian Ciocaltea Date: Thu, 29 Jan 2026 14:13:35 +0200 Subject: [PATCH v2 4/5] drm/bridge: dw-hdmi-qp: Rework DRM InfoFrame handler Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260129-dw-hdmi-qp-iframe-v2-4-0157ad05232c@collabora.com> References: <20260129-dw-hdmi-qp-iframe-v2-0-0157ad05232c@collabora.com> In-Reply-To: <20260129-dw-hdmi-qp-iframe-v2-0-0157ad05232c@collabora.com> To: Andrzej Hajda , Neil Armstrong , Robert Foss , Laurent Pinchart , Jonas Karlman , Jernej Skrabec , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org X-Mailer: b4 0.14.3 Make use of the recently introduced dw_hdmi_qp_write_infoframe() helper to simplify the writing of the Dynamic Range and Mastering (DRM) InfoFrame packet header and body registers. Moreover, since now having dedicated callbacks per InfoFrame type, move the implementation to dw_hdmi_qp_bridge_write_hdr_drm_infoframe() and drop dw_hdmi_qp_config_drm_infoframe(). While at it, also discard the unnecessary infoframe size verification, as well as the redundant disabling of the packet transmission (already done by the explicit call to the clear callback). Signed-off-by: Cristian Ciocaltea --- drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c | 40 +++++-------------------= ---- 1 file changed, 7 insertions(+), 33 deletions(-) diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c b/drivers/gpu/drm= /bridge/synopsys/dw-hdmi-qp.c index abfe5641158f..33c990e198e9 100644 --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c @@ -748,38 +748,6 @@ static struct i2c_adapter *dw_hdmi_qp_i2c_adapter(stru= ct dw_hdmi_qp *hdmi) return adap; } =20 -static int dw_hdmi_qp_config_drm_infoframe(struct dw_hdmi_qp *hdmi, - const u8 *buffer, size_t len) -{ - u32 val, i; - - if (len !=3D HDMI_INFOFRAME_SIZE(DRM)) { - dev_err(hdmi->dev, "failed to configure drm infoframe\n"); - return -EINVAL; - } - - dw_hdmi_qp_mod(hdmi, 0, PKTSCHED_DRMI_TX_EN, PKTSCHED_PKT_EN); - - val =3D buffer[1] << 8 | buffer[2] << 16; - dw_hdmi_qp_write(hdmi, val, PKT_DRMI_CONTENTS0); - - for (i =3D 0; i <=3D buffer[2]; i++) { - if (i % 4 =3D=3D 0) - val =3D buffer[3 + i]; - val |=3D buffer[3 + i] << ((i % 4) * 8); - - if ((i % 4 =3D=3D 3) || i =3D=3D buffer[2]) - dw_hdmi_qp_write(hdmi, val, - PKT_DRMI_CONTENTS1 + ((i / 4) * 4)); - } - - dw_hdmi_qp_mod(hdmi, 0, PKTSCHED_DRMI_FIELDRATE, PKTSCHED_PKT_CONFIG1); - dw_hdmi_qp_mod(hdmi, PKTSCHED_DRMI_TX_EN, PKTSCHED_DRMI_TX_EN, - PKTSCHED_PKT_EN); - - return 0; -} - /* * Static values documented in the TRM * Different values are only used for debug purposes @@ -1036,7 +1004,13 @@ static int dw_hdmi_qp_bridge_write_hdr_drm_infoframe= (struct drm_bridge *bridge, =20 dw_hdmi_qp_bridge_clear_hdr_drm_infoframe(bridge); =20 - return dw_hdmi_qp_config_drm_infoframe(hdmi, buffer, len); + dw_hdmi_qp_write_infoframe(hdmi, buffer, len, PKT_DRMI_CONTENTS0); + + dw_hdmi_qp_mod(hdmi, 0, PKTSCHED_DRMI_FIELDRATE, PKTSCHED_PKT_CONFIG1); + dw_hdmi_qp_mod(hdmi, PKTSCHED_DRMI_TX_EN, PKTSCHED_DRMI_TX_EN, + PKTSCHED_PKT_EN); + + return 0; } =20 static int dw_hdmi_qp_bridge_write_spd_infoframe(struct drm_bridge *bridge, --=20 2.52.0