From nobody Sat Jun 13 04:49:44 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [121.127.44.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3442214A4F0 for ; Sun, 10 May 2026 18:31:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=121.127.44.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437903; cv=none; b=hsKI/TVAEF0BR2Ay5MmyQgTxxKN3YYW/nDh4u5IFLtKKAmjfDXZDE6JbXP261EkollfOsfp6W4403Hcrul4UB4VOTS2ktxEW30uP10dKe5DJun1HKJzYGoqE93ty9gVIOQl9ZL3q7MnN4MEPOtTMAm5l6e2/fu3gq2xdWh44jMc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437903; c=relaxed/simple; bh=1PflWSJ2yDH4FCg5Zh9GlZjniBvCIA6AWGf2ttKM+/U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Cuzj7B9zW5LMChI9g0Hn0C1dvGIiAfJVe9q4hvzYI1A/2LYbGKyy3ht0wxTUQ9FMearZuYwZYGi9j8kaZ3jDIpJVfXH99fW+IIXzEs/mrK8338jO/SLuziz2nm1sYpr9GYpEeATiAXp8BLkG6H+dqXsnHRnNUuCEWTmK4+zXlko= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=QYMpxOtb; arc=none smtp.client-ip=121.127.44.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="QYMpxOtb" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1778437899; bh=z436gSSBTFhLoL9d5wdN6j/AQR4iFFTGFYZWVF5au/s=; b=QYMpxOtbEJEzR/n/OPe8GfHuylel9xiIlKJc28CiSTxjWNI302dMD7KVfJQQsjdhIqht7j7x0 1IRCHIzD5NzGJyMFvWAZN0jit72t6fUBgUhEDPeUJUfElq2ueO+WPB5J+5a/jifW+0bIL81D02C 6VWXuHQB77H6DdaHZA+d0Tp7mXDrX/0PzVrvp9VqN79k5Wc6NLSaZHcVhFWueRhEjA33kbNQLmW 1DeF+vXeUn5UrC6FpqV1yxmqvacrQywiSg1FCWVulYCfiI9bqV3mYtDBUtMyodkU+xrIoamU4Ny agV+632tE1NqeyWBcGzfzjw9NksJPzXpWbmGwfA4BTZA== X-Forward-Email-ID: 6a00cefc61db3ab145b0f226 X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 121.127.44.73 X-Forward-Email-Version: 2.8.0 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: =?UTF-8?q?Heiko=20St=C3=BCbner?= , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 01/10] drm/rockchip: dw_hdmi: Use of_device_get_match_data() to get match data Date: Sun, 10 May 2026 18:31:02 +0000 Message-ID: <20260510183114.1248840-2-jonas@kwiboo.se> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260510183114.1248840-1-jonas@kwiboo.se> References: <20260510183114.1248840-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Change to use of_device_get_match_data() to get match data prior to allocating private data. All current entries in the of_device_id match table provide match data, so no functional change is intended. Signed-off-by: Jonas Karlman --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/= rockchip/dw_hdmi-rockchip.c index 8c0e433fbda2..34a2248f6b4b 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -536,8 +536,8 @@ static int dw_hdmi_rockchip_bind(struct device *dev, st= ruct device *master, { struct platform_device *pdev =3D to_platform_device(dev); struct device_node *np =3D dev_of_node(dev); + const struct dw_hdmi_plat_data *drv_data; struct dw_hdmi_plat_data *plat_data; - const struct of_device_id *match; struct drm_device *drm =3D data; struct drm_encoder *encoder; struct rockchip_hdmi *hdmi; @@ -546,13 +546,16 @@ static int dw_hdmi_rockchip_bind(struct device *dev, = struct device *master, if (!np) return -ENODEV; =20 + drv_data =3D of_device_get_match_data(dev); + if (!drv_data) + return -ENODEV; + hdmi =3D devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); if (!hdmi) return -ENOMEM; =20 - match =3D of_match_node(dw_hdmi_rockchip_dt_ids, np); - plat_data =3D devm_kmemdup(&pdev->dev, match->data, - sizeof(*plat_data), GFP_KERNEL); + plat_data =3D devm_kmemdup(&pdev->dev, drv_data, + sizeof(*drv_data), GFP_KERNEL); if (!plat_data) return -ENOMEM; =20 --=20 2.54.0 From nobody Sat Jun 13 04:49:44 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [121.127.44.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 22B053115AF for ; Sun, 10 May 2026 18:32:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=121.127.44.66 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437925; cv=none; b=CALsGKJn0n1+j4uYJeGRt3ePlG3ghvkSrqk2fn8SOO/e/Ta9YIw6hG2aSWtu/oehLFIs6KLaVmsb5nDEgPY4VJNbs1Z9nXVwkUhYjeDFCUXLS14r0QBztT1B6hU0pXWohtYSE4VSr4NXEHR2zeNUhxNsXgnABniWi2uOando5Dk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437925; c=relaxed/simple; bh=I4iUwKG47Zzy0E1CXnA3+uKFXgdAc4V0YD7r/+wQ5mg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=L7OOi9sZihgtlj4rp+pcdFbvBRCD6Q2TI5ssaTlfGPhty0ZaitLz8fWvzChGI6iPkDE+fustAOKCv2OsFd/HvmLrgP0ZTJDeLoFcfwOwJHywmkHnTMSoqrb+PzNmFDipMOHEZynbj+5vkj8ZAVdpT3AiYvUq+FBDBJCkuCcmY84= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=JWuxLNPl; arc=none smtp.client-ip=121.127.44.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="JWuxLNPl" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1778437899; bh=H1waIzTgCsXz9ZAL00Qf3J9pZA3q1fbfXo1eGGcAxvc=; b=JWuxLNPl+mLwdk0/Ya04pSX3Qn1iMcWV0hvO6jEXfc0DkPDUkU+R31gH9jd3kxhshQ/5AQUYZ vxY58by18pr0nwPlgjYFPUkoKWdHOzOW6/V7I/nxOUU3GL/YkpHsLMYE2cNMNPP9o00PxkhKwcV 87F7QfDG2+tIE2YxY5rwu0lQ6hI0KcCEO35KdF0y7PAr3COoK+zduIwxPDeCa+GqtuRIIgfUS+y Dfoai1PqsTUGlZTw0fN+H8JGtxw3jHXcT/C/LSIjPb4ZC7x7lQH0TQtc+xA6trU4L6Ix70xuG5P rUGWJZnNfwqa4MCu1OnOfebDY+oShcvjT57QlkvhiRQw== X-Forward-Email-ID: 6a00cf0061db3ab145b0f241 X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 121.127.44.66 X-Forward-Email-Version: 2.8.0 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: =?UTF-8?q?Heiko=20St=C3=BCbner?= , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 02/10] drm/rockchip: dw_hdmi: Use local dev variable consistently in bind() Date: Sun, 10 May 2026 18:31:03 +0000 Message-ID: <20260510183114.1248840-3-jonas@kwiboo.se> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260510183114.1248840-1-jonas@kwiboo.se> References: <20260510183114.1248840-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Replace indirect struct device accesses via hdmi->dev and pdev->dev with the local dev parameter already available in dw_hdmi_rockchip_bind(), for consistency and readability. Signed-off-by: Jonas Karlman --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/= rockchip/dw_hdmi-rockchip.c index 34a2248f6b4b..435352f91b88 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -550,16 +550,15 @@ static int dw_hdmi_rockchip_bind(struct device *dev, = struct device *master, if (!drv_data) return -ENODEV; =20 - hdmi =3D devm_kzalloc(&pdev->dev, sizeof(*hdmi), GFP_KERNEL); + hdmi =3D devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); if (!hdmi) return -ENOMEM; =20 - plat_data =3D devm_kmemdup(&pdev->dev, drv_data, - sizeof(*drv_data), GFP_KERNEL); + plat_data =3D devm_kmemdup(dev, drv_data, sizeof(*drv_data), GFP_KERNEL); if (!plat_data) return -ENOMEM; =20 - hdmi->dev =3D &pdev->dev; + hdmi->dev =3D dev; hdmi->plat_data =3D plat_data; hdmi->chip_data =3D plat_data->phy_data; plat_data->phy_data =3D hdmi; @@ -581,13 +580,13 @@ static int dw_hdmi_rockchip_bind(struct device *dev, = struct device *master, =20 ret =3D rockchip_hdmi_parse_dt(hdmi); if (ret) { - return dev_err_probe(hdmi->dev, ret, "Unable to parse OF data\n"); + return dev_err_probe(dev, ret, "Unable to parse OF data\n"); } =20 hdmi->phy =3D devm_phy_optional_get(dev, "hdmi"); if (IS_ERR(hdmi->phy)) { ret =3D PTR_ERR(hdmi->phy); - return dev_err_probe(hdmi->dev, ret, "failed to get phy\n"); + return dev_err_probe(dev, ret, "failed to get phy\n"); } =20 index =3D of_property_match_string(np, "phy-names", "hdmi"); --=20 2.54.0 From nobody Sat Jun 13 04:49:44 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [121.127.44.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 08F2030BB9B for ; Sun, 10 May 2026 18:32:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=121.127.44.66 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437926; cv=none; b=ewcVqm+aU3blRectxJgf8oZCmz3YQs0EzAGDuvmu8UcPvRGR2zxn1LgkvcCUpEvECoBsZRC9GpJUnpJOL9euND3+QATeRzX6aMpAZIDmipNRKUE7s87tAtJWAdIVH1dRQ7GFIVYIJyDnJ4RU3tFzUZt9KxPmVlFhy4WzH/CQzAo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437926; c=relaxed/simple; bh=BXSukIG1Ek114DusLvGx9i41ip1XQi+Ua9LIl+lgt3Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=oRnDruTRi5TlzxahGLzMR8RdmMlTd3w/ZIhJ7Enlpp4R31oBABp7kjScnFwe6f7A22OpDdcFv1BNxVZp5qAQAkfSvp350fmLBonXB3zs7EOd/w4lkuxUiyiKWIoF/SCwen/YvM5+0a5VOj/04sTD0UNPiq59rchf7Qralit/5QY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=MOhEJjGE; arc=none smtp.client-ip=121.127.44.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="MOhEJjGE" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1778437899; bh=Ktb6i3iTHsiRRBoG6mlmIEBJTRmOxAUdPDxUWkKm8Bo=; b=MOhEJjGEV0jysgLp092obGh61Oj+NN04wKYA01CbVV90R+XD2HC0I2ZG4fO/6t9U8d4mt2EsO myCCEuKBmqXLXoyPfeGz7eHxrxCSTE4XUW71JawfUhAE7EpdWX/pfgFNsqpzHxxLlSIysmqcnZr nfoIpPDFMXGBlcHB/27yeVZm0TvRfXlswFqn40Zyt/DcCpTuwWm7leOoCuENKQIGIDpSWkcqCAI zGakyou16WILCTB3jMmWxNleO5DuNlRlljWZRzXQRFZW579EoejXn3kMwVRG9Hjv2fjDo4Fmo2l 6xhbTSuGsVkRzL9VoRMAQA2b4UdZXprkbYITowUNrDyg== X-Forward-Email-ID: 6a00cf0361db3ab145b0f25c X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 121.127.44.66 X-Forward-Email-Version: 2.8.0 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: =?UTF-8?q?Heiko=20St=C3=BCbner?= , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 03/10] drm/rockchip: dw_hdmi: Use drmres helpers for encoder resources Date: Sun, 10 May 2026 18:31:04 +0000 Message-ID: <20260510183114.1248840-4-jonas@kwiboo.se> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260510183114.1248840-1-jonas@kwiboo.se> References: <20260510183114.1248840-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Change to use drmres helpers drmm_kzalloc() to allocate driver data and drmm_encoder_init() to initialize the encoder. With use of drmres the manual encoder cleanup in failure path and unbind is also removed. Signed-off-by: Jonas Karlman --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 29 ++++++++------------- 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/= rockchip/dw_hdmi-rockchip.c index 435352f91b88..982d0829f278 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -14,6 +14,7 @@ =20 #include #include +#include #include #include #include @@ -550,13 +551,14 @@ static int dw_hdmi_rockchip_bind(struct device *dev, = struct device *master, if (!drv_data) return -ENODEV; =20 - hdmi =3D devm_kzalloc(dev, sizeof(*hdmi), GFP_KERNEL); + hdmi =3D drmm_kzalloc(drm, sizeof(*hdmi), GFP_KERNEL); if (!hdmi) return -ENOMEM; =20 - plat_data =3D devm_kmemdup(dev, drv_data, sizeof(*drv_data), GFP_KERNEL); + plat_data =3D drmm_kzalloc(drm, sizeof(*drv_data), GFP_KERNEL); if (!plat_data) return -ENOMEM; + memcpy(plat_data, drv_data, sizeof(*drv_data)); =20 hdmi->dev =3D dev; hdmi->plat_data =3D plat_data; @@ -608,28 +610,20 @@ static int dw_hdmi_rockchip_bind(struct device *dev, = struct device *master, FIELD_PREP_WM16(RK3568_HDMI_SCLIN_MSK, 1)); } =20 + ret =3D drmm_encoder_init(drm, encoder, NULL, DRM_MODE_ENCODER_TMDS, NULL= ); + if (ret) + return dev_err_probe(dev, ret, "failed to init encoder\n"); + drm_encoder_helper_add(encoder, &dw_hdmi_rockchip_encoder_helper_funcs); - drm_simple_encoder_init(drm, encoder, DRM_MODE_ENCODER_TMDS); =20 platform_set_drvdata(pdev, hdmi); =20 hdmi->hdmi =3D dw_hdmi_bind(pdev, encoder, plat_data); - - /* - * If dw_hdmi_bind() fails we'll never call dw_hdmi_unbind(), - * which would have called the encoder cleanup. Do it manually. - */ - if (IS_ERR(hdmi->hdmi)) { - ret =3D PTR_ERR(hdmi->hdmi); - goto err_bind; - } + if (IS_ERR(hdmi->hdmi)) + return dev_err_probe(dev, PTR_ERR(hdmi->hdmi), + "failed to bind encoder\n"); =20 return 0; - -err_bind: - drm_encoder_cleanup(encoder); - - return ret; } =20 static void dw_hdmi_rockchip_unbind(struct device *dev, struct device *mas= ter, @@ -638,7 +632,6 @@ static void dw_hdmi_rockchip_unbind(struct device *dev,= struct device *master, struct rockchip_hdmi *hdmi =3D dev_get_drvdata(dev); =20 dw_hdmi_unbind(hdmi->hdmi); - drm_encoder_cleanup(&hdmi->encoder.encoder); } =20 static const struct component_ops dw_hdmi_rockchip_ops =3D { --=20 2.54.0 From nobody Sat Jun 13 04:49:44 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [121.127.44.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E13FE14A4F0 for ; Sun, 10 May 2026 18:32:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=121.127.44.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437925; cv=none; b=E9rvuUgdflmxhIJnIXkGyyH9JPn5X1T0jYrU09ZjO4UXubh5qTzFTfSoVClkiPl3rRQgaLkIYN1dpQiGELcWMUz1z6qm5yHN2mbhcgNrP3EFhAR0ZtC5wWp+45Gn83SunSz2xwr44kwQVsIT2NcOnFPOh/9bDacGAXAd3mIPAtU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437925; c=relaxed/simple; bh=Sfny+tiRzcMTqQ7jeV+fbdXTXrdA1AosVKWxOUi/9JQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Tb9zaoc4nUwf53Nwl+JUJM1HXqKbm3lJyeXPATEBkoUjqiy2du61jL4QHA7G4jAYZZFiA2jO76D49Y+K17JqEP9bqBBAtt9sw0ebRTKVkM/VojC43Dty5TGMkn95lDKILYaIBn5B73yJ6H3kifMtCYYRajKqKwkHQ5vt0Qaj3g8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=tuus9Nsf; arc=none smtp.client-ip=121.127.44.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="tuus9Nsf" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1778437915; bh=VXsm+Lz0ARZMn6U4p+eyz1KbjJttmC6qCFCIJTnnoGU=; b=tuus9Nsf2DX+mh5d5lKujaZu8WnKNUYppUgMXGb6zFHtjqkF6vLw72cV8fNQrhfwhEH0pnYo2 s4Ro9tODKAI5Pu0FYnHTdDU0YlNbXlOnbz0jE9DHB9OmDgtWHxO6hSG1ANcff+VBAJJjgs3R4Gj 7Z83x/Suq2gpVzRyiW6TcZYrC8jSIoLw3OutUu5z46DvWygsH4WdfF42VQDWcH47yOiHHx4nTvf Jt8f2btu3K8mcMEKvCm/XeeSSvKvAiDZ8bIIcQCVxKwvWHQgLe7+ZppxE1P4vBTW70kTsY/MS25 zOIg47lyZDrCdcmxh5AzwJSrstOTn/j5u7AQV43jgxGg== X-Forward-Email-ID: 6a00cf0761db3ab145b0f277 X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 121.127.44.73 X-Forward-Email-Version: 2.8.0 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: =?UTF-8?q?Heiko=20St=C3=BCbner?= , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 04/10] drm/rockchip: dw_hdmi: Inline resource lookup into bind() Date: Sun, 10 May 2026 18:31:05 +0000 Message-ID: <20260510183114.1248840-5-jonas@kwiboo.se> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260510183114.1248840-1-jonas@kwiboo.se> References: <20260510183114.1248840-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Inline rockchip_hdmi_parse_dt() into dw_hdmi_rockchip_bind() so the probe path is easier to follow in one place. Also ensure failures in bind() use dev_err_probe() so probe deferrals and errors are reported consistently. Signed-off-by: Jonas Karlman --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 74 +++++++++------------ 1 file changed, 30 insertions(+), 44 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/= rockchip/dw_hdmi-rockchip.c index 982d0829f278..c5cdf2d1f04b 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -196,41 +196,6 @@ static const struct dw_hdmi_phy_config rockchip_phy_co= nfig[] =3D { { ~0UL, 0x0000, 0x0000, 0x0000} }; =20 -static int rockchip_hdmi_parse_dt(struct rockchip_hdmi *hdmi) -{ - struct device_node *np =3D hdmi->dev->of_node; - int ret; - - hdmi->regmap =3D syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); - if (IS_ERR(hdmi->regmap)) { - dev_err(hdmi->dev, "Unable to get rockchip,grf\n"); - return PTR_ERR(hdmi->regmap); - } - - hdmi->ref_clk =3D devm_clk_get_optional_enabled(hdmi->dev, "ref"); - if (!hdmi->ref_clk) - hdmi->ref_clk =3D devm_clk_get_optional_enabled(hdmi->dev, "vpll"); - - if (IS_ERR(hdmi->ref_clk)) { - ret =3D PTR_ERR(hdmi->ref_clk); - return dev_err_probe(hdmi->dev, ret, "failed to get reference clock\n"); - } - - hdmi->grf_clk =3D devm_clk_get_optional(hdmi->dev, "grf"); - if (IS_ERR(hdmi->grf_clk)) { - ret =3D PTR_ERR(hdmi->grf_clk); - return dev_err_probe(hdmi->dev, ret, "failed to get grf clock\n"); - } - - ret =3D devm_regulator_get_enable(hdmi->dev, "avdd-0v9"); - if (ret) - return ret; - - ret =3D devm_regulator_get_enable(hdmi->dev, "avdd-1v8"); - - return ret; -} - static enum drm_mode_status dw_hdmi_rockchip_mode_valid(struct dw_hdmi *dw_hdmi, void *data, const struct drm_display_info *info, @@ -578,18 +543,39 @@ static int dw_hdmi_rockchip_bind(struct device *dev, = struct device *master, * the required CRTC is added later. */ if (encoder->possible_crtcs =3D=3D 0) - return -EPROBE_DEFER; + return dev_err_probe(dev, -EPROBE_DEFER, + "failed to find possible crtcs\n"); =20 - ret =3D rockchip_hdmi_parse_dt(hdmi); - if (ret) { - return dev_err_probe(dev, ret, "Unable to parse OF data\n"); - } + hdmi->regmap =3D syscon_regmap_lookup_by_phandle(np, "rockchip,grf"); + if (IS_ERR(hdmi->regmap)) + return dev_err_probe(dev, PTR_ERR(hdmi->regmap), + "failed to get rockchip,grf\n"); + + hdmi->ref_clk =3D devm_clk_get_optional_enabled(dev, "ref"); + if (!hdmi->ref_clk) + hdmi->ref_clk =3D devm_clk_get_optional_enabled(dev, "vpll"); + + if (IS_ERR(hdmi->ref_clk)) + return dev_err_probe(dev, PTR_ERR(hdmi->ref_clk), + "failed to get reference clock\n"); + + hdmi->grf_clk =3D devm_clk_get_optional(dev, "grf"); + if (IS_ERR(hdmi->grf_clk)) + return dev_err_probe(dev, PTR_ERR(hdmi->grf_clk), + "failed to get grf clock\n"); + + ret =3D devm_regulator_get_enable(dev, "avdd-0v9"); + if (ret) + return dev_err_probe(dev, ret, "failed to enable avdd-0v9\n"); + + ret =3D devm_regulator_get_enable(dev, "avdd-1v8"); + if (ret) + return dev_err_probe(dev, ret, "failed to enable avdd-1v8\n"); =20 hdmi->phy =3D devm_phy_optional_get(dev, "hdmi"); - if (IS_ERR(hdmi->phy)) { - ret =3D PTR_ERR(hdmi->phy); - return dev_err_probe(dev, ret, "failed to get phy\n"); - } + if (IS_ERR(hdmi->phy)) + return dev_err_probe(dev, PTR_ERR(hdmi->phy), + "failed to get phy\n"); =20 index =3D of_property_match_string(np, "phy-names", "hdmi"); if (index >=3D 0) { --=20 2.54.0 From nobody Sat Jun 13 04:49:44 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [121.127.44.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D76F30BB9B for ; Sun, 10 May 2026 18:31:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=121.127.44.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437916; cv=none; b=Se8Dd5FCtt/2vXS7XlbTmm2SqSQ48DjxCf8D0Tk3oxXakaJZNxNKe3DGLTxwU3b+UwD4czCW8h14qv77PV/XnzCF4XSiQ5y/49oiz4leBP8Yfb2DL0Mwp2MCRyCrVkty51q8mac/jHMUmq9MCur0DyoaPYmt0Z81ny8hQ3lDOp8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437916; c=relaxed/simple; bh=HuS7TkqlUtkPNuU72ShGZfnlLMGCEdfZ4T3UkTJKtQc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pKe0NteqSmvv5qJU83P6I6HXRBVB2s+/2g9U6ArurjBWK/9Ed0n6EPE3ZgHs266ob1B0WEHMKGi0QCnGPNLRMKtbU2qDQT/HnZTbQ2phD+udmOU7q7vzFOZ5DRk6ckyAaMCmCtGdTPJRjZt9A2Y8wfAhMR4iLasixs3Pc7x8iCE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=zJpIhBGW; arc=none smtp.client-ip=121.127.44.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="zJpIhBGW" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1778437905; bh=4GhoY1fOJO8LWPdJh9qNDaVbnqnWOq2pyB0m4w0Zjdo=; b=zJpIhBGWMydjTRFiBfGOBmqjvNHcsKrXqwkUbbRgwoEinae8BW6y97yhokkY7g5eF7KsVCCgn B+MVkpaKoJjviDihlWvf0xPVCTN96IlVVvJRSq/u4icYw0xgJOfa+dDfMIToP3Aa5iiExpXR4ZR NmqGYeZSfT1StGBkQuPIbBCZPDP+HsCKVvLqfkMsMMt7tORNKUYt4SkgyluI8wKVbyzjwPyyGt2 3kQWnO9wXI45ItzTvdzwPryjwX/aYjpQGfoJQe/Xd1Yya7sBz9ZjujaLxTckZ/lZ2l+6fty7Eee 9Kfy/JhGXpZBEXhhmq4AIyJ9VMRQ8/hvh8g8unI6Ymsw== X-Forward-Email-ID: 6a00cf0b61db3ab145b0f292 X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 121.127.44.73 X-Forward-Email-Version: 2.8.0 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: =?UTF-8?q?Heiko=20St=C3=BCbner?= , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 05/10] drm/rockchip: dw_hdmi: Hold a reference to the dw-hdmi bridge Date: Sun, 10 May 2026 18:31:06 +0000 Message-ID: <20260510183114.1248840-6-jonas@kwiboo.se> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260510183114.1248840-1-jonas@kwiboo.se> References: <20260510183114.1248840-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Take a reference on the dw-hdmi bridge during bind and drop it again from unbind to ensure the bridge is kept alive for the lifetime of the encoder component. Signed-off-by: Jonas Karlman --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/= rockchip/dw_hdmi-rockchip.c index c5cdf2d1f04b..c7933f3eb64f 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -79,6 +79,7 @@ struct rockchip_hdmi { struct clk *hdmiphy_clk; struct clk *ref_clk; struct clk *grf_clk; + struct drm_bridge *bridge; struct dw_hdmi *hdmi; struct phy *phy; }; @@ -609,6 +610,13 @@ static int dw_hdmi_rockchip_bind(struct device *dev, s= truct device *master, return dev_err_probe(dev, PTR_ERR(hdmi->hdmi), "failed to bind encoder\n"); =20 + hdmi->bridge =3D of_drm_find_and_get_bridge(np); + if (!hdmi->bridge) { + dw_hdmi_remove(hdmi->hdmi); + return dev_err_probe(dev, -ENODEV, + "failed to find bridge\n"); + } + return 0; } =20 @@ -617,6 +625,7 @@ static void dw_hdmi_rockchip_unbind(struct device *dev,= struct device *master, { struct rockchip_hdmi *hdmi =3D dev_get_drvdata(dev); =20 + drm_bridge_put(hdmi->bridge); dw_hdmi_unbind(hdmi->hdmi); } =20 --=20 2.54.0 From nobody Sat Jun 13 04:49:44 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [121.127.44.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3A324312814 for ; Sun, 10 May 2026 18:32:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=121.127.44.66 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437935; cv=none; b=nkdzSPxxdSm647hRJLkW7EpWAWlSFOe/hP0mAnQt2j4BMHf7N4cILERqvZMIdLibRYpneibv0fxUxzmSHWTY91z1HOVgKRCKOqjQ1aEpLCs7apGxEjAeFaNoDKCBYzw1pItQ9ndc089JeS6jT8liwcYmXImEU1Epl2fi2LCxNgg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437935; c=relaxed/simple; bh=rZnR4dfbSEnaFVDTrti8fUK3X19hdnlGRZIcYN/KXdA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uVdae6pt3AOcvvReKdnPva6QWwE7v88RoUwrKSJzHMbCU1W7JU9Axs1ZIXLz4y4NTls8iJVLhpaDJ9Yatqermk6EBaSYcGwI6ftmWne2xYfLFEsS4aPigvyn2NdBxnqEc0Y/UVht6Re9FTo7kTpqlqoVLREuB+wPi+oNcN37AzI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=lXkjUGiB; arc=none smtp.client-ip=121.127.44.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="lXkjUGiB" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1778437925; bh=8k30gz9vz3UFGlsNIyXeeJx3RIgE5znUSB+laop1qFY=; b=lXkjUGiBCbCZr8HvfPd/5BUmatC6X6A4sczKjrtzPqkRbq+BhGtELvVRSfYCclmczTSq0Lkmk fiCSDblp0VqVxH4ZU/SPjWPRZBBsYh2Dq3Hoqiu8DlowZkAKxK9OjctgWq5cLW/d1E8G7S1C39s PZ/CHoJm01ZflQ2amyR/rFbgxfHfL0l8IPS7LSCDYfk1JxxCJFy5/qRPEDg776WEt5TR8KFB3a+ QVrRFAiSNWppnl82QsTEP1+xwHamuJUaiAqJSo+dPc7y1pEc38cx3OqGyVKNT5I6zHYr8aJTNTW 2hRmP22ghIKRDrUw9sRxiJRJx4Se9aV7foOcmLK3MSPQ== X-Forward-Email-ID: 6a00cf0f61db3ab145b0f2ad X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 121.127.44.66 X-Forward-Email-Version: 2.8.0 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: =?UTF-8?q?Heiko=20St=C3=BCbner?= , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 06/10] drm/rockchip: dw_hdmi: Remove empty encoder helper funcs Date: Sun, 10 May 2026 18:31:07 +0000 Message-ID: <20260510183114.1248840-7-jonas@kwiboo.se> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260510183114.1248840-1-jonas@kwiboo.se> References: <20260510183114.1248840-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Remove the empty disable() and static return true mode_fixup() encoder helper funcs as they do not provide any useful functionality. Signed-off-by: Jonas Karlman --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/= rockchip/dw_hdmi-rockchip.c index c7933f3eb64f..6aefdba0f1f9 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -226,18 +226,6 @@ dw_hdmi_rockchip_mode_valid(struct dw_hdmi *dw_hdmi, v= oid *data, return MODE_OK; } =20 -static void dw_hdmi_rockchip_encoder_disable(struct drm_encoder *encoder) -{ -} - -static bool -dw_hdmi_rockchip_encoder_mode_fixup(struct drm_encoder *encoder, - const struct drm_display_mode *mode, - struct drm_display_mode *adj_mode) -{ - return true; -} - static void dw_hdmi_rockchip_encoder_mode_set(struct drm_encoder *encoder, struct drm_display_mode *mode, struct drm_display_mode *adj_mode) @@ -290,10 +278,8 @@ dw_hdmi_rockchip_encoder_atomic_check(struct drm_encod= er *encoder, } =20 static const struct drm_encoder_helper_funcs dw_hdmi_rockchip_encoder_help= er_funcs =3D { - .mode_fixup =3D dw_hdmi_rockchip_encoder_mode_fixup, - .mode_set =3D dw_hdmi_rockchip_encoder_mode_set, - .enable =3D dw_hdmi_rockchip_encoder_enable, - .disable =3D dw_hdmi_rockchip_encoder_disable, + .mode_set =3D dw_hdmi_rockchip_encoder_mode_set, + .enable =3D dw_hdmi_rockchip_encoder_enable, .atomic_check =3D dw_hdmi_rockchip_encoder_atomic_check, }; =20 --=20 2.54.0 From nobody Sat Jun 13 04:49:44 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D2D9E14A4F0 for ; Sun, 10 May 2026 18:33:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=149.28.215.223 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437999; cv=none; b=BFECJNYK3/87OZ63N54YYSfwC94xjvMwwXeg7p4QduLh+JtJXJZYu4ecosXiNvApNhci/aayOSuN38zyw5a5oG240fvfnfFMRTS2ImQIJlJ/S51i3GS1Uu8ZTzlOArZ+wZGLXjBCsQYiFY726EbO1H5WZFSYjXm64rhu59YS8zE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437999; c=relaxed/simple; bh=dtTxks8oPES8Xw8UQQijooCiYHpr1VpHurXBfKbJItc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qkuEI1ufuzG8plC7UfEbJxoQgoeFOhDDIBE63g73HKSjGXxiUMZ/ODzv90YdAtT84xIYSJieKdm6GdAcELDtbmFDgmuS6T5uu8RKO0cJJ0/Nj4h/RY62VrEucaRBPh3NjSmD33e03i/EmvmlWWiViK/myhnBSaYd6Qz1/vInv/4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=g6eSVj2a; arc=none smtp.client-ip=149.28.215.223 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="g6eSVj2a" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1778437997; bh=dNPaQCnAPaiK+mPtt3ofIMa62zudp1cWsYh8OqqpZUE=; b=g6eSVj2aGJbcK2UulWL+5tClltkF+afdfHXYQS/mKjzUL3DcU4yUsIkghdPqnoAdaw/Qz7/4a cTVkmBPaFCeR//pdcCNc4x/hQbEE9qpJXhv5MoMVa6Kr7TawPGBBsxxqxOpSjZDKwnng+sCB2NT JrekIcnEUTgbzUp5nWmgUf/2B0kj3mLLzGEErySR4K5vDeHIjpP9r4OmZj5lBgg1sjKd7gwfNKc NGGKS0sd83s7EukeIjELpyhABYfIu1MOCmg9cwycLVA5ceodXCyp9EjH66gmiDVjeuZOD01QkNb U7tuAnSH5lD5hude1KJlebumasXd/FiJORVFdCKmXUqg== X-Forward-Email-ID: 6a00cf1361db3ab145b0f2c8 X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 149.28.215.223 X-Forward-Email-Version: 2.8.0 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: =?UTF-8?q?Heiko=20St=C3=BCbner?= , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 07/10] drm/rockchip: dw_hdmi: Clean up whitespace Date: Sun, 10 May 2026 18:31:08 +0000 Message-ID: <20260510183114.1248840-8-jonas@kwiboo.se> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260510183114.1248840-1-jonas@kwiboo.se> References: <20260510183114.1248840-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Move the blank line before the RK3328 definitions for readability and make the phy_config table spacing consistent with other tables. Signed-off-by: Jonas Karlman --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/= rockchip/dw_hdmi-rockchip.c index 6aefdba0f1f9..a55a89040590 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -31,8 +31,8 @@ =20 #define RK3288_GRF_SOC_CON6 0x025C #define RK3288_HDMI_LCDC_SEL BIT(4) -#define RK3328_GRF_SOC_CON2 0x0408 =20 +#define RK3328_GRF_SOC_CON2 0x0408 #define RK3328_HDMI_SDAIN_MSK BIT(11) #define RK3328_HDMI_SCLIN_MSK BIT(10) #define RK3328_HDMI_HPD_IOE BIT(2) @@ -190,11 +190,11 @@ static const struct dw_hdmi_curr_ctrl rockchip_cur_ct= r[] =3D { =20 static const struct dw_hdmi_phy_config rockchip_phy_config[] =3D { /*pixelclk symbol term vlev*/ - { 74250000, 0x8009, 0x0004, 0x0272}, - { 165000000, 0x802b, 0x0004, 0x0209}, - { 297000000, 0x8039, 0x0005, 0x028d}, - { 594000000, 0x8039, 0x0000, 0x019d}, - { ~0UL, 0x0000, 0x0000, 0x0000} + { 74250000, 0x8009, 0x0004, 0x0272 }, + { 165000000, 0x802b, 0x0004, 0x0209 }, + { 297000000, 0x8039, 0x0005, 0x028d }, + { 594000000, 0x8039, 0x0000, 0x019d }, + { ~0UL, 0x0000, 0x0000, 0x0000 }, }; =20 static enum drm_mode_status --=20 2.54.0 From nobody Sat Jun 13 04:49:44 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [149.28.215.223]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D5F4831194C for ; Sun, 10 May 2026 18:33:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=149.28.215.223 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437999; cv=none; b=JgvaCeh5zPzOGSo8WT+QCvO9E4TYSDR6tQa+XiTFK/yxq3YyNMGXOu85MWUZDa/HALXbswlmM1dUmmGBFQKHyK4FNl/LizLlwgoeoYRBwVkysI2DcrxzmrJTogrs5dW209aE2R6fw08+ASaXIxBKsGd54XzkFga3aLp0tkh8lWU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437999; c=relaxed/simple; bh=aus6pSOOw0faVqV9vothlNAyGyn7BmBe2hh5Tpgg+PE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Lgp0s8fpcn5S3db28gpbZP+2rMvtosQNhyeCLR/u9H40pMgnm0svxaKbtqK4J9DuiVsGiIcdOVs3Rq+8t/D26DZXvzNQ6qp9Cxq1ZMIniozMwgualx1tQ2RFr3oiyqKCgMITnYlLIWaZq0edCVsC44Jm0iB5uLkq1qzl+1AvbpM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=XQr6v8Jd; arc=none smtp.client-ip=149.28.215.223 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="XQr6v8Jd" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1778437994; bh=3Bb2d7ztUbMfwQrlOvAngrNnijawNk2qKWlgV+cKiBU=; b=XQr6v8JdHn5ur+7edOxwHHEjdO8F0EuPkMxoTQb6M/Ip6LUCJXV0JY+obmIQ0hjTP+XXrL+T+ pWZYhAcbDp/JbVv+veFtGvVdk6gUsDiSef1R7ejDZzPljg8cKVfrF9FkXFHF77ipFe7zjyRmB0v h2OtEpbHw1tO1StKdRTDGPYqXjXw/lzcaiL0FKXJbqZsyhCS6iuQiSxEf9Vl5RcBMeEEEWTih/1 L8pJRILKxY6HCG52MiMYmYywB2ohf7fM7LFIsdgdl7l+bbyl/bCRv2ftKAPDnYNvlXe2SzsdFQP K9Qdx5wTHs/+LqDHoOhF7TiksHYVe4xMRS5C/piNb8dA== X-Forward-Email-ID: 6a00cf1761db3ab145b0f2e3 X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 149.28.215.223 X-Forward-Email-Version: 2.8.0 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: =?UTF-8?q?Heiko=20St=C3=BCbner?= , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 08/10] drm/rockchip: dw_hdmi: Set output_port for RK3568/RK3566 Date: Sun, 10 May 2026 18:31:09 +0000 Message-ID: <20260510183114.1248840-9-jonas@kwiboo.se> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260510183114.1248840-1-jonas@kwiboo.se> References: <20260510183114.1248840-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" All in-tree RK3568/RK3566 device trees using HDMI also include the required hdmi-connector node at port@1 since their introduction. Define the output_port for RK3568 so that dw-hdmi bridge driver can pick up the display-connector bridge once the dw-hdmi connector is replaced with a bridge connector in a future change. Signed-off-by: Jonas Karlman --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/= rockchip/dw_hdmi-rockchip.c index a55a89040590..9d3bb6cd5670 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -459,6 +459,7 @@ static const struct dw_hdmi_plat_data rk3568_hdmi_drv_d= ata =3D { .phy_config =3D rockchip_phy_config, .phy_data =3D &rk3568_chip_data, .use_drm_infoframe =3D true, + .output_port =3D 1, }; =20 static const struct of_device_id dw_hdmi_rockchip_dt_ids[] =3D { --=20 2.54.0 From nobody Sat Jun 13 04:49:44 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [121.127.44.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D6DC531E844 for ; Sun, 10 May 2026 18:32:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=121.127.44.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437951; cv=none; b=M9WqYjg3IZaQr9+K3IGXiqiS4QRFNRq+knK1opMzsyQvdDC1gzMWDdZaSq63xgHlfx395OIJG+TatDiQmmEJq+hbX37LRIlBViG1bOchaXrjcJTO+jrKO4t/gisfaWyjmulw3YjFnyD3da7/UkwIDJpbMUWrMA7id60qxt+RQZM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437951; c=relaxed/simple; bh=3iYmB/BTkDpZPaNqkfC5XPx4TvXaq8xDnsgxPOsW9Js=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rihuf7rqmrUN37cTFfdKwaQLU6U3ZS5OEbFhBh1T5MsKA7VapJUmb2F2WW9HlTT5VKlNGOLxx5d9fd4G7cCtqQtSG8Rl722OOCpPS9g4JRJoK5I7RZBx+kEzSm/bYvDNIPXY+QaIFPIKMHYndc4MeecMNd7vqhIwmLowNkraTBU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=d85J8gg6; arc=none smtp.client-ip=121.127.44.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="d85J8gg6" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1778437926; bh=tWZ1i/q7CLgAfivuQtexjnsHVV4DZ1Xla4Z36a9NDCo=; b=d85J8gg65p0VN8cfnJvnhuktmcI1HlYmh4RC9pw8ikHhcunMiYnIgwfi3jJbJ6PvKPtZgoFHD nkgZmVvDmWzSp0AGMe8osTUPmJ9aWqf4YcXs+9JvlZ38dPGU19UATiuHpI0309rLGkws3fhYm+V nVwwpyUEpSB9L0Xd4f4LOCX+MkEKeaRusEqV+orYvVdf4ZRdHmJ4ErfhPS3QEM+2UAxm1hA8h6F pA3wh2HIa3bityJ97+ggHFB1cUrBh5B9kBafAMNxXMsgZ9KNhLzPk0qWJ62qXgEPVooTJ/7tEQv 5OzK9f48OItpEUepAqv770tN6bcICf4A2XBasaKfE7/w== X-Forward-Email-ID: 6a00cf1b61db3ab145b0f2fe X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 121.127.44.73 X-Forward-Email-Version: 2.8.0 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: =?UTF-8?q?Heiko=20St=C3=BCbner?= , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 09/10] drm/rockchip: dw_hdmi: Configure HDMI PHY in atomic_mode_set() Date: Sun, 10 May 2026 18:31:10 +0000 Message-ID: <20260510183114.1248840-10-jonas@kwiboo.se> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260510183114.1248840-1-jonas@kwiboo.se> References: <20260510183114.1248840-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The HDMI helpers negotiated TMDS character rate and output bpc are available from the connector state. Change the encoder helper from mode_set() to atomic_mode_set() so these values can be used to configure the HDMI PHY using phy_configure(). This has no impact until the dw-hdmi bridge is fully converted into a HDMI bridge and HDMI helpers are used to assign hdmi.tmds_char_rate. Signed-off-by: Jonas Karlman --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 29 +++++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/= rockchip/dw_hdmi-rockchip.c index 9d3bb6cd5670..94a30579a736 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -226,11 +226,22 @@ dw_hdmi_rockchip_mode_valid(struct dw_hdmi *dw_hdmi, = void *data, return MODE_OK; } =20 -static void dw_hdmi_rockchip_encoder_mode_set(struct drm_encoder *encoder, - struct drm_display_mode *mode, - struct drm_display_mode *adj_mode) +static void +dw_hdmi_rockchip_encoder_atomic_mode_set(struct drm_encoder *encoder, + struct drm_crtc_state *crtc_state, + struct drm_connector_state *conn_state) { struct rockchip_hdmi *hdmi =3D to_rockchip_hdmi(encoder); + struct drm_display_mode *adj_mode =3D &crtc_state->adjusted_mode; + + if (hdmi->phy && conn_state->hdmi.tmds_char_rate) { + union phy_configure_opts opts =3D {}; + + opts.hdmi.bpc =3D conn_state->hdmi.output_bpc; + opts.hdmi.tmds_char_rate =3D conn_state->hdmi.tmds_char_rate; + + phy_configure(hdmi->phy, &opts); + } =20 clk_set_rate(hdmi->ref_clk, adj_mode->clock * 1000); } @@ -270,15 +281,23 @@ dw_hdmi_rockchip_encoder_atomic_check(struct drm_enco= der *encoder, struct drm_connector_state *conn_state) { struct rockchip_crtc_state *s =3D to_rockchip_crtc_state(crtc_state); + struct rockchip_hdmi *hdmi =3D to_rockchip_hdmi(encoder); + union phy_configure_opts opts =3D {}; =20 s->output_mode =3D ROCKCHIP_OUT_MODE_AAAA; s->output_type =3D DRM_MODE_CONNECTOR_HDMIA; =20 - return 0; + if (!hdmi->phy || !conn_state->hdmi.tmds_char_rate) + return 0; + + opts.hdmi.bpc =3D conn_state->hdmi.output_bpc; + opts.hdmi.tmds_char_rate =3D conn_state->hdmi.tmds_char_rate; + + return phy_validate(hdmi->phy, PHY_MODE_HDMI, PHY_HDMI_MODE_TMDS, &opts); } =20 static const struct drm_encoder_helper_funcs dw_hdmi_rockchip_encoder_help= er_funcs =3D { - .mode_set =3D dw_hdmi_rockchip_encoder_mode_set, + .atomic_mode_set =3D dw_hdmi_rockchip_encoder_atomic_mode_set, .enable =3D dw_hdmi_rockchip_encoder_enable, .atomic_check =3D dw_hdmi_rockchip_encoder_atomic_check, }; --=20 2.54.0 From nobody Sat Jun 13 04:49:44 2026 Received: from smtp.forwardemail.net (smtp.forwardemail.net [121.127.44.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D6D0A3115AF for ; Sun, 10 May 2026 18:32:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=121.127.44.73 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437947; cv=none; b=nnG7nVZrk+RZxc41WH10mRi1UQDJv5R2iUGHyVoHjHkh/gua8qtOtI7/lszMQsBLjnZOh2bskDjvCNyXjO/8gVeGkGlQZYhF0OY2KuvgVMDYdCPpEePTBA4ePQ2dbTh3k7BqsWjTshY+q1u503gJTLacUP/j8R/VqMhZ6Ql6EMg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778437947; c=relaxed/simple; bh=6UIQ9MUVXWZ9pbE2Nsaw1p0kEXxsCBBJj/pZ0/ayCsk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WZQrKz4GXmx3TnoNp3tdUvy9F2Pe3qotA8+rac5AvkNB2StLM3Z2aOrtqChi7hoeGTsnggs0Ifca/gu1dcqu2V/NI5ZgRfFbG6oZcRH6BbTVRRZhFCdwswRR/1CZ5ip0U9PjZ2lBvpvnwynmiv1+jP+Smfq8vWRWL8Q4r/i+hdM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b=rChLEk4V; arc=none smtp.client-ip=121.127.44.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=kwiboo.se Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=fe-bounces.kwiboo.se Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kwiboo.se header.i=@kwiboo.se header.b="rChLEk4V" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kwiboo.se; h=Content-Transfer-Encoding: MIME-Version: References: In-Reply-To: Message-ID: Date: Subject: Cc: To: From; q=dns/txt; s=fe-e1b5cab7be; t=1778437930; bh=P1Kh2IKLR7KBEjTyNxvLOAytvc9uZ7IZrGqAB3Q7wzc=; b=rChLEk4VawjV6MTs7Z+ptS4uxEstGDXGYG0CEIYl8uWneJDZwMgxbQANmuhXM5ehircsL40QL VEyI0m6o+0bqzFf4XFe8gxLxIlLaKnMQ1xMucBXRctRnZu5FbJpNOdP+wSD8xVHOhVLj1uCLWJh +jC+e+KABX2kyxnSUPAFwxRQzOMIdr87ZarZfYtTpd+dz5N3Rtmq+geJiLhKOGUIxeXAutUdT1+ fEQqjTrwM3ANx6zlr/AC4C1IlyUrZTo/L+cB6rEzEFMJFhcpbq16Q8yAphx7gPg4mgUBGhpEe/L ZglNtjXYRYrBornK7rFp0xAIpJRJ+Ds7Wp6r90wn39rQ== X-Forward-Email-ID: 6a00cf1f61db3ab145b0f319 X-Forward-Email-Sender: rfc822; jonas@kwiboo.se, smtp.forwardemail.net, 121.127.44.73 X-Forward-Email-Version: 2.8.0 X-Forward-Email-Website: https://forwardemail.net X-Complaints-To: abuse@forwardemail.net X-Report-Abuse: abuse@forwardemail.net X-Report-Abuse-To: abuse@forwardemail.net From: Jonas Karlman To: =?UTF-8?q?Heiko=20St=C3=BCbner?= , Sandy Huang , Andy Yan , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jonas Karlman Subject: [PATCH 10/10] drm/rockchip: dw_hdmi: Propagate bus format to display driver Date: Sun, 10 May 2026 18:31:11 +0000 Message-ID: <20260510183114.1248840-11-jonas@kwiboo.se> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260510183114.1248840-1-jonas@kwiboo.se> References: <20260510183114.1248840-1-jonas@kwiboo.se> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The HDMI block is currently hardcoded to expect RGB output from the display controller. However, the VOP in some SoCs are capable of YCbCr output to the HDMI block. Read the negotiated bus format from the bridge state and propagate it to the CRCT state in form of output mode and bus format. Treat the format MEDIA_BUS_FMT_FIXED as RGB888 and reject any unsupported formats. This has no inpact until dw-hdmi bridge is fully converted to a HDMI bridge and also adds support for the "color format" connector property. Signed-off-by: Jonas Karlman --- drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 44 ++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c b/drivers/gpu/drm/= rockchip/dw_hdmi-rockchip.c index 94a30579a736..b52114d5fe9c 100644 --- a/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ b/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -5,6 +5,7 @@ =20 #include #include +#include #include #include #include @@ -275,6 +276,26 @@ static void dw_hdmi_rockchip_encoder_enable(struct drm= _encoder *encoder) dev_dbg(hdmi->dev, "vop %s output to hdmi\n", ret ? "LIT" : "BIG"); } =20 +static u32 dw_hdmi_rockchip_get_bus_format(struct drm_encoder *encoder, + struct drm_connector_state *conn_state) +{ + struct drm_bridge *bridge __free(drm_bridge_put) =3D NULL; + struct drm_bridge_state *bridge_state; + + bridge =3D drm_bridge_chain_get_first_bridge(encoder); + if (!bridge) + return 0; + + bridge_state =3D drm_atomic_get_bridge_state(conn_state->state, bridge); + if (!bridge_state) + return 0; + + if (bridge_state->input_bus_cfg.format !=3D MEDIA_BUS_FMT_FIXED) + return bridge_state->input_bus_cfg.format; + + return bridge_state->output_bus_cfg.format; +} + static int dw_hdmi_rockchip_encoder_atomic_check(struct drm_encoder *encoder, struct drm_crtc_state *crtc_state, @@ -283,9 +304,30 @@ dw_hdmi_rockchip_encoder_atomic_check(struct drm_encod= er *encoder, struct rockchip_crtc_state *s =3D to_rockchip_crtc_state(crtc_state); struct rockchip_hdmi *hdmi =3D to_rockchip_hdmi(encoder); union phy_configure_opts opts =3D {}; + u32 bus_format; + + bus_format =3D dw_hdmi_rockchip_get_bus_format(encoder, conn_state); + + switch (bus_format) { + case MEDIA_BUS_FMT_FIXED: + bus_format =3D MEDIA_BUS_FMT_RGB888_1X24; + fallthrough; + case MEDIA_BUS_FMT_RGB888_1X24: + case MEDIA_BUS_FMT_RGB101010_1X30: + case MEDIA_BUS_FMT_YUV8_1X24: + case MEDIA_BUS_FMT_YUV10_1X30: + s->output_mode =3D ROCKCHIP_OUT_MODE_AAAA; + break; + case MEDIA_BUS_FMT_UYYVYY8_0_5X24: + case MEDIA_BUS_FMT_UYYVYY10_0_5X30: + s->output_mode =3D ROCKCHIP_OUT_MODE_YUV420; + break; + default: + return -EINVAL; + } =20 - s->output_mode =3D ROCKCHIP_OUT_MODE_AAAA; s->output_type =3D DRM_MODE_CONNECTOR_HDMIA; + s->bus_format =3D bus_format; =20 if (!hdmi->phy || !conn_state->hdmi.tmds_char_rate) return 0; --=20 2.54.0