From: Claude Code Review Bot <claude-review@example.com>
To: dri-devel-reviews@example.com
Subject: Claude review: drm: bridge: dw_hdmi: Merge top and bottom half IRQ handlers
Date: Tue, 05 May 2026 07:58:58 +1000 [thread overview]
Message-ID: <review-patch17-20260504191059.275928-18-jonas@kwiboo.se> (raw)
In-Reply-To: <20260504191059.275928-18-jonas@kwiboo.se>
Patch Review
With HPD handling moved to `delayed_work`, the bottom half (threaded IRQ) only calls `mod_delayed_work()`, which is safe from hardirq context. The two handlers are merged into a single hardirq handler, and `devm_request_threaded_irq()` is replaced with `devm_request_irq()`.
```c
+ intr_stat = hdmi_readb(hdmi, HDMI_IH_PHY_STAT0) & HDMI_IH_PHY_STAT0_HPD;
if (intr_stat) {
+ hdmi_writeb(hdmi, ~0, HDMI_IH_MUTE_PHY_STAT0);
```
The muting (`~0` to MUTE register) followed by unmuting (`~HDMI_IH_PHY_STAT0_HPD`) within the same handler is correct — it prevents re-entry while the handler processes the interrupt. The `mod_delayed_work()` documentation confirms it is safe in atomic context.
One small note: the register reads and writes within the hardirq handler use `regmap_write`/`regmap_read` underneath (via `hdmi_writeb`/`hdmi_readb`). If the regmap uses a bus that can sleep (e.g., I2C), this would be problematic in hardirq context. However, dw-hdmi uses MMIO regmap, so this is fine. **No Reviewed-by yet.**
**Summary**: The series is well-decomposed and correct. The new v4 patches (12-17) are the ones that need review attention. The main risk area is patch 14's removal of RXSENSE handling, which changes the HPD detection behavior to be purely HPD-based with debouncing. This should work well for HDMI 1.4+ sinks but could potentially affect edge cases with older or non-compliant sinks that rely on RXSENSE for detection. The cover letter notes testing was done on Rockchip RK3328/RK3399/RK3568, and requests more testing with bridge connector users.
---
Generated by Claude Code Patch Reviewer
next prev parent reply other threads:[~2026-05-04 21:58 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-04 19:10 [PATCH v4 00/17] drm: bridge: dw_hdmi: Misc enable/disable, CEC and EDID cleanup Jonas Karlman
2026-05-04 19:10 ` [PATCH v4 01/17] drm: bridge: dw_hdmi: Disable scrambler feature when not supported Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 02/17] drm: bridge: dw_hdmi: Only notify connected status on HPD interrupt Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 03/17] drm: bridge: dw_hdmi: Call poweron/poweroff from atomic enable/disable Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 04/17] drm: bridge: dw_hdmi: Use passed mode instead of stored previous_mode Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 05/17] drm: bridge: dw_hdmi: Fold poweron and setup functions Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 06/17] drm: bridge: dw_hdmi: Remove previous_mode and mode_set Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 07/17] drm: bridge: dw_hdmi: Invalidate CEC phys addr from connector detect Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 08/17] drm: bridge: dw_hdmi: Remove cec_notifier_mutex Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 09/17] drm: bridge: dw_hdmi: Extract dw_hdmi_connector_status_update() Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 10/17] drm: bridge: dw_hdmi: Use dw_hdmi_connector_status_update() Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 11/17] drm: bridge: dw_hdmi: Use display_info is_hdmi and has_audio Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 12/17] drm: bridge: dw_hdmi: Use generic CEC notifier helpers Jonas Karlman
2026-05-04 21:21 ` Neil Armstrong
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 13/17] drm: bridge: dw_hdmi: Use delayed_work to debounce hotplug event Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 14/17] drm: bridge: dw_hdmi: Rework HDP and RXSENSE interrupt handling Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 15/17] drm: bridge: dw_hdmi: Remove the empty dw_hdmi_setup_rx_sense() Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 16/17] drm: bridge: dw_hdmi: Remove the empty dw_hdmi_phy_update_hpd() Jonas Karlman
2026-05-04 21:58 ` Claude review: " Claude Code Review Bot
2026-05-04 19:10 ` [PATCH v4 17/17] drm: bridge: dw_hdmi: Merge top and bottom half IRQ handlers Jonas Karlman
2026-05-04 21:58 ` Claude Code Review Bot [this message]
2026-05-04 21:58 ` Claude review: drm: bridge: dw_hdmi: Misc enable/disable, CEC and EDID cleanup Claude Code Review Bot
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=review-patch17-20260504191059.275928-18-jonas@kwiboo.se \
--to=claude-review@example.com \
--cc=dri-devel-reviews@example.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox