On 18/05/2026 20:01, Jonas Karlman wrote: > 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 <[email protected]> > Tested-by: Diederik de Haas <[email protected]> # Rock64, RockPro64, > Quartz64-B > Signed-off-by: Jonas Karlman <[email protected]>
Acked-by: Hans Verkuil <[email protected]> Regards, Hans > --- > 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;
