From: "Diederik de Haas" <didi.debian@cknow.org>
To: "Dmitry Baryshkov" <dmitry.baryshkov@oss.qualcomm.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Liu Ying" <victor.liu@nxp.com>,
"Andrzej Hajda" <andrzej.hajda@intel.com>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Robert Foss" <rfoss@kernel.org>,
"Laurent Pinchart" <Laurent.pinchart@ideasonboard.com>,
"Jonas Karlman" <jonas@kwiboo.se>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Rob Clark" <robin.clark@oss.qualcomm.com>,
"Dmitry Baryshkov" <lumag@kernel.org>,
"Abhinav Kumar" <abhinav.kumar@linux.dev>,
"Jessica Zhang" <jessica.zhang@oss.qualcomm.com>,
"Sean Paul" <sean@poorly.run>,
"Marijn Suijten" <marijn.suijten@somainline.org>,
"Sandy Huang" <hjc@rock-chips.com>,
"Heiko Stübner" <heiko@sntech.de>,
"Andy Yan" <andy.yan@rock-chips.com>,
"Chen-Yu Tsai" <wens@csie.org>,
"Samuel Holland" <samuel@sholland.org>
Cc: <dri-devel@lists.freedesktop.org>, <linux-kernel@vger.kernel.org>,
<linux-arm-msm@vger.kernel.org>,
<freedreno@lists.freedesktop.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-rockchip@lists.infradead.org>,
<linux-sunxi@lists.linux.dev>
Subject: Re: [PATCH 8/9] drm/rockchip: inno-hdmi: handle unsupported InfoFrames
Date: Sat, 27 Sep 2025 11:56:07 +0200 [thread overview]
Message-ID: <DD3HR1AGS7HT.2D858FUG2L2YB@cknow.org> (raw)
In-Reply-To: <20250927-limit-infoframes-2-v1-8-697511bd050b@oss.qualcomm.com>
[-- Attachment #1: Type: text/plain, Size: 3441 bytes --]
On Sat Sep 27, 2025 at 3:04 AM CEST, Dmitry Baryshkov wrote:
> Make write_hdmi_infoframe() and clear_infoframe() callbacks
> return -EOPNOTSUPP for unsupported InfoFrames and make sure that
> atomic_check() callback doesn't allow unsupported InfoFrames to be
> enabled.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> drivers/gpu/drm/rockchip/inno_hdmi.c | 46 +++++++++++++++++++++++++++---------
> 1 file changed, 35 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c
> index f24827dc1421cf5e0c1be63a80da23d645cf3f24..dc2d68b9c87f7ae7b06ecbeaebc82b9689c1abfd 100644
> --- a/drivers/gpu/drm/rockchip/inno_hdmi.c
> +++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
> @@ -641,11 +641,8 @@ static int inno_hdmi_disable_frame(struct drm_connector *connector,
> {
> struct inno_hdmi *hdmi = connector_to_inno_hdmi(connector);
>
> - if (type != HDMI_INFOFRAME_TYPE_AVI) {
> - drm_err(connector->dev,
> - "Unsupported infoframe type: %u\n", type);
> - return 0;
> - }
> + if (type != HDMI_INFOFRAME_TYPE_AVI)
> + return -EOPNOTSUPP;
>
> hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_BUF_INDEX, INFOFRAME_AVI);
>
> @@ -659,11 +656,8 @@ static int inno_hdmi_upload_frame(struct drm_connector *connector,
> struct inno_hdmi *hdmi = connector_to_inno_hdmi(connector);
> ssize_t i;
>
> - if (type != HDMI_INFOFRAME_TYPE_AVI) {
> - drm_err(connector->dev,
> - "Unsupported infoframe type: %u\n", type);
> - return 0;
> - }
> + if (type != HDMI_INFOFRAME_TYPE_AVI)
> + return -EOPNOTSUPP;
>
> inno_hdmi_disable_frame(connector, type);
>
> @@ -673,6 +667,36 @@ static int inno_hdmi_upload_frame(struct drm_connector *connector,
> return 0;
> }
>
> +static int inno_hdmi_connector_atomic_check(struct drm_connector *connector,
> + struct drm_atomic_state *state)
> +{
> + struct drm_connector_state *conn_state =
> + drm_atomic_get_new_connector_state(state, connector);
> + int ret;
> +
> + ret = drm_atomic_helper_connector_hdmi_check(connector, state);
> + if (ret)
> + return ret;
> +
> + /* not supported by the driver */
> + conn_state->hdmi.infoframes.spd.set = false;
> +
> + /* FIXME: not supported by the driver */
> + conn_state->hdmi.infoframes.hdmi.set = false;
> +
> + /* should not happen, HDR support not enabled */
> + if (drm_WARN_ON_ONCE(connector->dev,
> + connector->hdmi.infoframes.audio.set))
> + return -EOPNOTSUPP;
> +
> + /* should not happen, audio support not enabled */
> + if (drm_WARN_ON_ONCE(connector->dev,
> + conn_state->hdmi.infoframes.hdr_drm.set))
> + return -EOPNOTSUPP;
Looks like the comments are on the wrong line? Also in patch 7.
Cheers,
Diederik
> +
> + return 0;
> +}
> +
> static const struct drm_connector_hdmi_funcs inno_hdmi_hdmi_connector_funcs = {
> .clear_infoframe = inno_hdmi_disable_frame,
> .write_infoframe = inno_hdmi_upload_frame,
> @@ -1029,7 +1053,7 @@ static const struct drm_connector_funcs inno_hdmi_connector_funcs = {
> };
>
> static struct drm_connector_helper_funcs inno_hdmi_connector_helper_funcs = {
> - .atomic_check = drm_atomic_helper_connector_hdmi_check,
> + .atomic_check = inno_hdmi_connector_atomic_check,
> .get_modes = inno_hdmi_connector_get_modes,
> .mode_valid = inno_hdmi_connector_mode_valid,
> };
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: "Diederik de Haas" <didi.debian@cknow.org>
To: "Dmitry Baryshkov" <dmitry.baryshkov@oss.qualcomm.com>,
"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
"Maxime Ripard" <mripard@kernel.org>,
"Thomas Zimmermann" <tzimmermann@suse.de>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Liu Ying" <victor.liu@nxp.com>,
"Andrzej Hajda" <andrzej.hajda@intel.com>,
"Neil Armstrong" <neil.armstrong@linaro.org>,
"Robert Foss" <rfoss@kernel.org>,
"Laurent Pinchart" <Laurent.pinchart@ideasonboard.com>,
"Jonas Karlman" <jonas@kwiboo.se>,
"Jernej Skrabec" <jernej.skrabec@gmail.com>,
"Rob Clark" <robin.clark@oss.qualcomm.com>,
"Dmitry Baryshkov" <lumag@kernel.org>,
"Abhinav Kumar" <abhinav.kumar@linux.dev>,
"Jessica Zhang" <jessica.zhang@oss.qualcomm.com>,
"Sean Paul" <sean@poorly.run>,
"Marijn Suijten" <marijn.suijten@somainline.org>,
"Sandy Huang" <hjc@rock-chips.com>,
"Heiko Stübner" <heiko@sntech.de>,
"Andy Yan" <andy.yan@rock-chips.com>,
"Chen-Yu Tsai" <wens@csie.org>,
"Samuel Holland" <samuel@sholland.org>
Cc: <dri-devel@lists.freedesktop.org>, <linux-kernel@vger.kernel.org>,
<linux-arm-msm@vger.kernel.org>,
<freedreno@lists.freedesktop.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-rockchip@lists.infradead.org>,
<linux-sunxi@lists.linux.dev>
Subject: Re: [PATCH 8/9] drm/rockchip: inno-hdmi: handle unsupported InfoFrames
Date: Sat, 27 Sep 2025 11:56:07 +0200 [thread overview]
Message-ID: <DD3HR1AGS7HT.2D858FUG2L2YB@cknow.org> (raw)
In-Reply-To: <20250927-limit-infoframes-2-v1-8-697511bd050b@oss.qualcomm.com>
[-- Attachment #1.1: Type: text/plain, Size: 3441 bytes --]
On Sat Sep 27, 2025 at 3:04 AM CEST, Dmitry Baryshkov wrote:
> Make write_hdmi_infoframe() and clear_infoframe() callbacks
> return -EOPNOTSUPP for unsupported InfoFrames and make sure that
> atomic_check() callback doesn't allow unsupported InfoFrames to be
> enabled.
>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> ---
> drivers/gpu/drm/rockchip/inno_hdmi.c | 46 +++++++++++++++++++++++++++---------
> 1 file changed, 35 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/rockchip/inno_hdmi.c b/drivers/gpu/drm/rockchip/inno_hdmi.c
> index f24827dc1421cf5e0c1be63a80da23d645cf3f24..dc2d68b9c87f7ae7b06ecbeaebc82b9689c1abfd 100644
> --- a/drivers/gpu/drm/rockchip/inno_hdmi.c
> +++ b/drivers/gpu/drm/rockchip/inno_hdmi.c
> @@ -641,11 +641,8 @@ static int inno_hdmi_disable_frame(struct drm_connector *connector,
> {
> struct inno_hdmi *hdmi = connector_to_inno_hdmi(connector);
>
> - if (type != HDMI_INFOFRAME_TYPE_AVI) {
> - drm_err(connector->dev,
> - "Unsupported infoframe type: %u\n", type);
> - return 0;
> - }
> + if (type != HDMI_INFOFRAME_TYPE_AVI)
> + return -EOPNOTSUPP;
>
> hdmi_writeb(hdmi, HDMI_CONTROL_PACKET_BUF_INDEX, INFOFRAME_AVI);
>
> @@ -659,11 +656,8 @@ static int inno_hdmi_upload_frame(struct drm_connector *connector,
> struct inno_hdmi *hdmi = connector_to_inno_hdmi(connector);
> ssize_t i;
>
> - if (type != HDMI_INFOFRAME_TYPE_AVI) {
> - drm_err(connector->dev,
> - "Unsupported infoframe type: %u\n", type);
> - return 0;
> - }
> + if (type != HDMI_INFOFRAME_TYPE_AVI)
> + return -EOPNOTSUPP;
>
> inno_hdmi_disable_frame(connector, type);
>
> @@ -673,6 +667,36 @@ static int inno_hdmi_upload_frame(struct drm_connector *connector,
> return 0;
> }
>
> +static int inno_hdmi_connector_atomic_check(struct drm_connector *connector,
> + struct drm_atomic_state *state)
> +{
> + struct drm_connector_state *conn_state =
> + drm_atomic_get_new_connector_state(state, connector);
> + int ret;
> +
> + ret = drm_atomic_helper_connector_hdmi_check(connector, state);
> + if (ret)
> + return ret;
> +
> + /* not supported by the driver */
> + conn_state->hdmi.infoframes.spd.set = false;
> +
> + /* FIXME: not supported by the driver */
> + conn_state->hdmi.infoframes.hdmi.set = false;
> +
> + /* should not happen, HDR support not enabled */
> + if (drm_WARN_ON_ONCE(connector->dev,
> + connector->hdmi.infoframes.audio.set))
> + return -EOPNOTSUPP;
> +
> + /* should not happen, audio support not enabled */
> + if (drm_WARN_ON_ONCE(connector->dev,
> + conn_state->hdmi.infoframes.hdr_drm.set))
> + return -EOPNOTSUPP;
Looks like the comments are on the wrong line? Also in patch 7.
Cheers,
Diederik
> +
> + return 0;
> +}
> +
> static const struct drm_connector_hdmi_funcs inno_hdmi_hdmi_connector_funcs = {
> .clear_infoframe = inno_hdmi_disable_frame,
> .write_infoframe = inno_hdmi_upload_frame,
> @@ -1029,7 +1053,7 @@ static const struct drm_connector_funcs inno_hdmi_connector_funcs = {
> };
>
> static struct drm_connector_helper_funcs inno_hdmi_connector_helper_funcs = {
> - .atomic_check = drm_atomic_helper_connector_hdmi_check,
> + .atomic_check = inno_hdmi_connector_atomic_check,
> .get_modes = inno_hdmi_connector_get_modes,
> .mode_valid = inno_hdmi_connector_mode_valid,
> };
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]
[-- Attachment #2: Type: text/plain, Size: 170 bytes --]
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
next prev parent reply other threads:[~2025-09-27 9:56 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-27 1:04 [PATCH 0/9] drm/connector: hdmi: limit infoframes per driver capabilities, second approach Dmitry Baryshkov
2025-09-27 1:04 ` Dmitry Baryshkov
2025-09-27 1:04 ` [PATCH 1/9] drm/display: hdmi-state-helpers: warn on unsupported InfoFrame types Dmitry Baryshkov
2025-09-27 1:04 ` Dmitry Baryshkov
2025-09-27 12:48 ` kernel test robot
2025-09-27 12:48 ` kernel test robot
2025-09-27 1:04 ` [PATCH 2/9] drm/bridge: adv7511: handle unsupported InfoFrames Dmitry Baryshkov
2025-09-27 1:04 ` Dmitry Baryshkov
2025-09-27 1:04 ` [PATCH 3/9] drm/bridge: ite-it6263: " Dmitry Baryshkov
2025-09-27 1:04 ` Dmitry Baryshkov
2025-09-27 1:04 ` [PATCH 4/9] drm/bridge: lontium-lt9611: " Dmitry Baryshkov
2025-09-27 1:04 ` Dmitry Baryshkov
2025-09-27 1:04 ` [PATCH 5/9] drm/bridge: synopsys/dw-hdmi-qp: " Dmitry Baryshkov
2025-09-27 1:04 ` Dmitry Baryshkov
2025-09-27 1:04 ` [PATCH 6/9] drm/msm: hdmi: " Dmitry Baryshkov
2025-09-27 1:04 ` Dmitry Baryshkov
2025-09-27 1:04 ` [PATCH 7/9] drm/rockchip: rk3066_hdmi: " Dmitry Baryshkov
2025-09-27 1:04 ` Dmitry Baryshkov
2025-09-27 1:04 ` [PATCH 8/9] drm/rockchip: inno-hdmi: " Dmitry Baryshkov
2025-09-27 1:04 ` Dmitry Baryshkov
2025-09-27 9:56 ` Diederik de Haas [this message]
2025-09-27 9:56 ` Diederik de Haas
2025-09-27 1:04 ` [PATCH 9/9] drm/sun4i: hdmi: " Dmitry Baryshkov
2025-09-27 1:04 ` Dmitry Baryshkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DD3HR1AGS7HT.2D858FUG2L2YB@cknow.org \
--to=didi.debian@cknow.org \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=abhinav.kumar@linux.dev \
--cc=airlied@gmail.com \
--cc=andrzej.hajda@intel.com \
--cc=andy.yan@rock-chips.com \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=freedreno@lists.freedesktop.org \
--cc=heiko@sntech.de \
--cc=hjc@rock-chips.com \
--cc=jernej.skrabec@gmail.com \
--cc=jessica.zhang@oss.qualcomm.com \
--cc=jonas@kwiboo.se \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=lumag@kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=marijn.suijten@somainline.org \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=rfoss@kernel.org \
--cc=robin.clark@oss.qualcomm.com \
--cc=samuel@sholland.org \
--cc=sean@poorly.run \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
--cc=victor.liu@nxp.com \
--cc=wens@csie.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.