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

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: 11feaef69d0c ("drm/bridge: it6505: Add caching for EDID")
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-3-treapking@chromium.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/bridge/ite-it6505.c

index 1e1c06fdf206457a71c24deb03d12678649f6aad..bb449efac2f4e764dfa06b8c216e0644e045cf90 100644 (file)
@@ -3101,6 +3101,8 @@ static __maybe_unused int it6505_bridge_suspend(struct device *dev)
 {
        struct it6505 *it6505 = dev_get_drvdata(dev);
 
+       it6505_remove_edid(it6505);
+
        return it6505_poweroff(it6505);
 }