drm/bridge: ps8640: Skip redundant bridge enable
authorPin-yen Lin <treapking@chromium.org>
Wed, 15 Mar 2023 03:55:07 +0000 (11:55 +0800)
committerDouglas Anderson <dianders@chromium.org>
Thu, 23 Mar 2023 20:55:38 +0000 (13:55 -0700)
Skip the drm_bridge_chain_pre_enable call when the bridge is already
pre_enabled. This make pre_enable and post_disable (thus
pm_runtime_get/put) symmetric.

Fixes: 46f206304db0 ("drm/bridge: ps8640: Rework power state handling")
Signed-off-by: Pin-yen Lin <treapking@chromium.org>
Reviewed-by: Robert Foss <rfoss@kernel.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230315035508.2874915-1-treapking@chromium.org
drivers/gpu/drm/bridge/parade-ps8640.c

index 4b361d7..08de501 100644 (file)
@@ -557,7 +557,8 @@ static struct edid *ps8640_bridge_get_edid(struct drm_bridge *bridge,
         * EDID, for this chip, we need to do a full poweron, otherwise it will
         * fail.
         */
-       drm_atomic_bridge_chain_pre_enable(bridge, connector->state->state);
+       if (poweroff)
+               drm_atomic_bridge_chain_pre_enable(bridge, connector->state->state);
 
        edid = drm_get_edid(connector,
                            ps_bridge->page[PAGE0_DP_CNTL]->adapter);