From: sashiko-bot@kernel.org
To: "Jonas Karlman" <jonas@kwiboo.se>
Cc: neil.armstrong@linaro.org, linux-sunxi@lists.linux.dev,
linux-amlogic@lists.infradead.org, Frank.Li@kernel.org,
imx@lists.linux.dev
Subject: Re: [PATCH v6 17/22] drm: bridge: dw_hdmi: Drop call to drm_bridge_hpd_notify()
Date: Sat, 16 May 2026 19:52:24 +0000 [thread overview]
Message-ID: <20260516195224.9E2CBC19425@smtp.kernel.org> (raw)
In-Reply-To: <20260516183838.2024991-18-jonas@kwiboo.se>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Removing drm_bridge_hpd_notify() violates the DRM bridge API contract and causes hotplug events to be permanently lost during system suspend.
--
commit 6b3491e39082015ab62431ea0c93c74c9344b995
Author: Jonas Karlman <jonas@kwiboo.se>
drm: bridge: dw_hdmi: Drop call to drm_bridge_hpd_notify()
This commit removes the drm_bridge_hpd_notify() call from the dw_hdmi IRQ
handler, relying instead only on drm_helper_hpd_irq_event() to avoid sending
duplicate hotplug uevents to userspace.
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> index e9c4e24c090ca..6cc7b2a860bd8 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -3101,10 +3101,8 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
> status == connector_status_connected ?
> "plugin" : "plugout");
>
> - if (hdmi->bridge.dev) {
> + if (hdmi->bridge.dev)
> drm_helper_hpd_irq_event(hdmi->bridge.dev);
> - drm_bridge_hpd_notify(&hdmi->bridge, status);
> - }
> }
Will removing drm_bridge_hpd_notify() cause hotplug events to be permanently
lost if they occur during system suspend?
Since the driver advertises DRM_BRIDGE_OP_HPD, does the DRM bridge API
contract still require it to call drm_bridge_hpd_notify() to properly
propagate hotplug events to the rest of the bridge chain?
Looking at drm_helper_hpd_irq_event(), it aborts early if polling is
disabled:
drivers/gpu/drm/drm_probe_helper.c:drm_helper_hpd_irq_event() {
struct drm_connector *connector, *first_changed_connector = NULL;
struct drm_connector_list_iter conn_iter;
int changed = 0;
if (!dev->mode_config.poll_enabled)
return false;
...
}
During system suspend, drm_kms_helper_poll_disable() sets poll_enabled
to false. If an HPD interrupt fires while the system is suspended, won't
drm_helper_hpd_irq_event() silently drop the event without updating the
connector status or scheduling any deferred work?
Furthermore, when the system resumes, output_poll_execute() explicitly skips
connectors that use the DRM_CONNECTOR_POLL_HPD flag, and the dw_hdmi resume
handler does not appear to manually trigger a hotplug event check.
Could this result in the system being completely unaware of any display
connections or disconnections that happened while suspended, at least until
a manual reprobe is forced by userspace?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260516183838.2024991-1-jonas@kwiboo.se?part=17
WARNING: multiple messages have this Message-ID (diff)
From: sashiko-bot@kernel.org
To: "Jonas Karlman" <jonas@kwiboo.se>
Cc: neil.armstrong@linaro.org, linux-sunxi@lists.linux.dev,
linux-amlogic@lists.infradead.org, Frank.Li@kernel.org,
imx@lists.linux.dev
Subject: Re: [PATCH v6 17/22] drm: bridge: dw_hdmi: Drop call to drm_bridge_hpd_notify()
Date: Sat, 16 May 2026 19:52:24 +0000 [thread overview]
Message-ID: <20260516195224.9E2CBC19425@smtp.kernel.org> (raw)
In-Reply-To: <20260516183838.2024991-18-jonas@kwiboo.se>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Removing drm_bridge_hpd_notify() violates the DRM bridge API contract and causes hotplug events to be permanently lost during system suspend.
--
commit 6b3491e39082015ab62431ea0c93c74c9344b995
Author: Jonas Karlman <jonas@kwiboo.se>
drm: bridge: dw_hdmi: Drop call to drm_bridge_hpd_notify()
This commit removes the drm_bridge_hpd_notify() call from the dw_hdmi IRQ
handler, relying instead only on drm_helper_hpd_irq_event() to avoid sending
duplicate hotplug uevents to userspace.
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> index e9c4e24c090ca..6cc7b2a860bd8 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
> @@ -3101,10 +3101,8 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
> status == connector_status_connected ?
> "plugin" : "plugout");
>
> - if (hdmi->bridge.dev) {
> + if (hdmi->bridge.dev)
> drm_helper_hpd_irq_event(hdmi->bridge.dev);
> - drm_bridge_hpd_notify(&hdmi->bridge, status);
> - }
> }
Will removing drm_bridge_hpd_notify() cause hotplug events to be permanently
lost if they occur during system suspend?
Since the driver advertises DRM_BRIDGE_OP_HPD, does the DRM bridge API
contract still require it to call drm_bridge_hpd_notify() to properly
propagate hotplug events to the rest of the bridge chain?
Looking at drm_helper_hpd_irq_event(), it aborts early if polling is
disabled:
drivers/gpu/drm/drm_probe_helper.c:drm_helper_hpd_irq_event() {
struct drm_connector *connector, *first_changed_connector = NULL;
struct drm_connector_list_iter conn_iter;
int changed = 0;
if (!dev->mode_config.poll_enabled)
return false;
...
}
During system suspend, drm_kms_helper_poll_disable() sets poll_enabled
to false. If an HPD interrupt fires while the system is suspended, won't
drm_helper_hpd_irq_event() silently drop the event without updating the
connector status or scheduling any deferred work?
Furthermore, when the system resumes, output_poll_execute() explicitly skips
connectors that use the DRM_CONNECTOR_POLL_HPD flag, and the dw_hdmi resume
handler does not appear to manually trigger a hotplug event check.
Could this result in the system being completely unaware of any display
connections or disconnections that happened while suspended, at least until
a manual reprobe is forced by userspace?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260516183838.2024991-1-jonas@kwiboo.se?part=17
_______________________________________________
linux-amlogic mailing list
linux-amlogic@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-amlogic
next prev parent reply other threads:[~2026-05-16 19:52 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-16 18:38 [PATCH v6 00/22] drm: bridge: dw_hdmi: Misc enable/disable, CEC and EDID cleanup Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 01/22] drm: bridge: dw_hdmi: Disable scrambler feature when not supported Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 02/22] drm: bridge: dw_hdmi: Only notify connected status on HPD interrupt Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 03/22] drm: bridge: dw_hdmi: Call poweron/poweroff from atomic enable/disable Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 04/22] drm: bridge: dw_hdmi: Use passed mode instead of stored previous_mode Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 05/22] drm: bridge: dw_hdmi: Fold poweron and setup functions Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 06/22] drm: bridge: dw_hdmi: Remove previous_mode and mode_set Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 07/22] drm: bridge: dw_hdmi: Hold bridge ref until connector cleanup Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 08/22] drm: bridge: dw_hdmi: Unregister CEC notifier during " Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 19:28 ` sashiko-bot
2026-05-16 19:28 ` sashiko-bot
2026-05-16 18:38 ` [PATCH v6 09/22] drm: bridge: dw_hdmi: Invalidate CEC phys addr from connector detect Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 19:07 ` sashiko-bot
2026-05-16 19:07 ` sashiko-bot
2026-05-16 19:12 ` Jonas Karlman
2026-05-16 19:12 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 10/22] drm: bridge: dw_hdmi: Remove cec_notifier_mutex Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 11/22] drm: bridge: dw_hdmi: Extract dw_hdmi_connector_status_update() Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 12/22] drm: bridge: dw_hdmi: Use dw_hdmi_connector_status_update() Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 13/22] drm: bridge: dw_hdmi: Use generic CEC notifier helpers Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 19:20 ` sashiko-bot
2026-05-16 19:20 ` sashiko-bot
2026-05-16 19:43 ` Jonas Karlman
2026-05-16 19:43 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 14/22] drm: bridge: dw_hdmi: Update EDID and CEC phys addr in bridge detect() Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 19:52 ` sashiko-bot
2026-05-16 19:52 ` sashiko-bot
2026-05-16 18:38 ` [PATCH v6 15/22] drm: bridge: dw_hdmi: Declare bridge CEC notifier support Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 19:30 ` sashiko-bot
2026-05-16 19:30 ` sashiko-bot
2026-05-16 18:38 ` [PATCH v6 16/22] drm: bridge: dw_hdmi: Use display_info is_hdmi and has_audio Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 19:26 ` sashiko-bot
2026-05-16 19:26 ` sashiko-bot
2026-05-18 9:02 ` Jani Nikula
2026-05-18 9:02 ` Jani Nikula
2026-05-18 9:02 ` Jani Nikula
2026-05-16 18:38 ` [PATCH v6 17/22] drm: bridge: dw_hdmi: Drop call to drm_bridge_hpd_notify() Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 19:52 ` sashiko-bot [this message]
2026-05-16 19:52 ` sashiko-bot
2026-05-16 20:00 ` Jonas Karlman
2026-05-16 20:00 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 18/22] drm: bridge: dw_hdmi: Use delayed_work to debounce hotplug event Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 19:42 ` sashiko-bot
2026-05-16 19:42 ` sashiko-bot
2026-05-16 18:38 ` [PATCH v6 19/22] drm: bridge: dw_hdmi: Rework HDP and RXSENSE interrupt handling Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 19:43 ` sashiko-bot
2026-05-16 19:43 ` sashiko-bot
2026-05-16 19:55 ` Jonas Karlman
2026-05-16 19:55 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 20/22] drm: bridge: dw_hdmi: Remove the empty dw_hdmi_setup_rx_sense() Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 21/22] drm: bridge: dw_hdmi: Remove the empty dw_hdmi_phy_update_hpd() Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` [PATCH v6 22/22] drm: bridge: dw_hdmi: Merge top and bottom half IRQ handlers Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
2026-05-16 18:38 ` Jonas Karlman
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=20260516195224.9E2CBC19425@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=Frank.Li@kernel.org \
--cc=imx@lists.linux.dev \
--cc=jonas@kwiboo.se \
--cc=linux-amlogic@lists.infradead.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=neil.armstrong@linaro.org \
--cc=sashiko-reviews@lists.linux.dev \
/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.