]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/bridge: anx7625: Drop EDID cache on bridge power off
authorPin-yen Lin <treapking@chromium.org>
Thu, 26 Sep 2024 09:29:08 +0000 (17:29 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2024 12:53:10 +0000 (13:53 +0100)
[ Upstream commit 00ae002116a14c2e6a342c4c9ae080cdbb9b4b21 ]

The bridge might miss the display change events when it's powered off.
This happens when a user changes the external monitor when the system
is suspended and the embedded controller doesn't not wake AP up.

It's also observed that one DP-to-HDMI bridge doesn't work correctly
when there is no EDID read after it is powered on.

Drop the cache to force an EDID read after system resume to fix this.

Fixes: 8bdfc5dae4e3 ("drm/bridge: anx7625: Add anx7625 MIPI DSI/DPI to DP")
Signed-off-by: Pin-yen Lin <treapking@chromium.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240926092931.3870342-2-treapking@chromium.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/bridge/analogix/anx7625.c

index 88e4aa5830f3c7406e41bc9fcfd765b22fc85d07..5c6bd7be25c0e047223b52705340f4bfde6e6e04 100644 (file)
@@ -2561,6 +2561,8 @@ static int __maybe_unused anx7625_runtime_pm_suspend(struct device *dev)
        mutex_lock(&ctx->lock);
 
        anx7625_stop_dp_work(ctx);
+       if (!ctx->pdata.panel_bridge)
+               anx7625_remove_edid(ctx);
        anx7625_power_standby(ctx);
 
        mutex_unlock(&ctx->lock);