Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [High] Atomic Context Violation: Invoking sleeping functions from atomic context --
commit 2003c6678c3684f19742ce18515a5d05db18fc6c Author: Michal Wilczynski <[email protected]> drm/bridge: inno-hdmi: Add .disable platform operation This commit adds a new .disable platform operation to the inno_hdmi_plat_ops struct. It invokes this hook at the beginning of inno_hdmi_bridge_atomic_disable() to allow platform-specific drivers to implement their own power down sequences. > diff --git a/drivers/gpu/drm/bridge/inno-hdmi.c > b/drivers/gpu/drm/bridge/inno-hdmi.c > index ebc5093f13ac4..952cc55c10f7d 100644 > --- a/drivers/gpu/drm/bridge/inno-hdmi.c > +++ b/drivers/gpu/drm/bridge/inno-hdmi.c > @@ -884,6 +884,10 @@ static void inno_hdmi_bridge_atomic_disable(struct > drm_bridge *bridge, > struct drm_atomic_commit *state) > { > struct inno_hdmi *hdmi = bridge_to_inno_hdmi(bridge); > + const struct inno_hdmi_plat_ops *plat_ops = hdmi->plat_data->ops; > + > + if (plat_ops && plat_ops->disable) > + plat_ops->disable(hdmi->dev); [Severity: High] The commit message mentions this hook allows platform drivers to implement power down sequences by calling clk_disable_unprepare(). Since inno_hdmi_bridge_atomic_disable() is called from the atomic commit pipeline (drm_atomic_helper_commit_tail()), where sleeping is strictly forbidden, can this lead to an atomic context violation? Because clk_disable_unprepare() acquires a mutex internally, it is a sleeping function. Calling it from this path could cause system instability, kernel warnings, or deadlocks during a display modeset, DPMS state change, or system suspend. > > inno_hdmi_standby(hdmi); > } -- Sashiko AI review ยท https://sashiko.dev/#/patchset/[email protected]?part=6
