Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [High] DRM atomic_disable zeroes the SDP slot allocator bitmap without 
invalidating the audio subsystem's active SDP slot (audio_sdp_nr), causing 
cross-subsystem races and hardware state corruption.
--

--- Patch [16]: [PATCH v6 16/16] drm/bridge: synopsys: dw-dp: Add audio support 
---
commit 9b3a7d6fa62f20557e06c0ea7d9cc504eddb75d9
Author: Sebastian Reichel <[email protected]>

drm/bridge: synopsys: dw-dp: Add audio support

Implement audio support for the Synopsys DesignWare DisplayPort
controller.

> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-dp.c 
> b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
> index 44a13b5d62d39..c7d6f63b5e9a1 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-dp.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-dp.c
[ ... ]
> @@ -1886,6 +1924,212 @@ static void dw_dp_bridge_oob_notify(struct drm_bridge 
> *bridge,
[ ... ]
> +static void dw_dp_audio_unprepare(struct drm_bridge *bridge,
> +                               struct drm_connector *connector)
> +{
> +     struct dw_dp *dp = bridge_to_dp(bridge);
> +
> +     if (dp->audio_sdp_nr >= 0) {
> +             dw_dp_clear_sdp(dp, dp->audio_sdp_nr);
> +             dp->audio_sdp_nr = -1;
> +     }

[Severity: High]
Does this leave dp->audio_sdp_nr dangling if the display is disabled while
audio is active?

Looking at dw_dp_bridge_atomic_disable(), the SDP allocation bitmap is
bulk-cleared without resetting the audio subsystem's active SDP slot:

drivers/gpu/drm/bridge/synopsys/dw-dp.c:dw_dp_bridge_atomic_disable() {
    ...
    scoped_guard(mutex, &dp->sdp_lock)
        bitmap_zero(dp->sdp_reg_bank, SDP_REG_BANK_SIZE);
    ...
}

If userspace triggers a display disable, dw_dp_bridge_atomic_disable() zeroes
the bitmap without resetting dp->audio_sdp_nr. When the display is re-enabled,
dw_dp_bridge_atomic_enable() might allocate that same slot for a video SDP.

If userspace later stops the audio stream, dw_dp_audio_unprepare() would see
the stale dp->audio_sdp_nr and clear the hardware registers for the newly
allocated video SDP.

-- 
Sashiko AI review ยท 
https://sashiko.dev/#/patchset/20260724-synopsys-dw-dp-improvements-v6-0-041d99a19...@collabora.com?part=16

Reply via email to