[PATCH v7 10/23] drm: bridge: dw_hdmi: Invalidate CEC phys addr from connector detect
Jonas Karlman
jonas at kwiboo.se
Mon May 18 11:01:46 PDT 2026
Wait until the connector detect ops is called to invalidate CEC phys
addr instead of doing it directly from the irq handler.
The CEC notifier is only registered for the dw-hdmi connector so this
has no impact when the bridge connector is used.
Reviewed-by: Neil Armstrong <neil.armstrong at linaro.org>
Tested-by: Diederik de Haas <diederik at cknow-tech.com> # Rock64, RockPro64, Quartz64-B
Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
---
v7: Update commit message
v6: Collect t-b tag
v5: No change
v4: No change
v3: No change
v2: Collect r-b tag
---
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 5fd26ff8f55b..aae1b890167b 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -2472,7 +2472,17 @@ dw_hdmi_connector_detect(struct drm_connector *connector, bool force)
{
struct dw_hdmi *hdmi = container_of(connector, struct dw_hdmi,
connector);
- return dw_hdmi_detect(hdmi);
+ enum drm_connector_status status;
+
+ status = dw_hdmi_detect(hdmi);
+
+ if (status == connector_status_disconnected) {
+ mutex_lock(&hdmi->cec_notifier_mutex);
+ cec_notifier_phys_addr_invalidate(hdmi->cec_notifier);
+ mutex_unlock(&hdmi->cec_notifier_mutex);
+ }
+
+ return status;
}
static int dw_hdmi_connector_get_modes(struct drm_connector *connector)
@@ -3106,12 +3116,6 @@ static irqreturn_t dw_hdmi_irq(int irq, void *dev_id)
phy_stat & HDMI_PHY_HPD,
phy_stat & HDMI_PHY_RX_SENSE);
- if ((phy_stat & (HDMI_PHY_RX_SENSE | HDMI_PHY_HPD)) == 0) {
- mutex_lock(&hdmi->cec_notifier_mutex);
- cec_notifier_phys_addr_invalidate(hdmi->cec_notifier);
- mutex_unlock(&hdmi->cec_notifier_mutex);
- }
-
if ((intr_stat & HDMI_IH_PHY_STAT0_HPD) &&
(phy_stat & HDMI_PHY_HPD))
status = connector_status_connected;
--
2.54.0
More information about the Linux-rockchip
mailing list