drm/bridge: parade-ps8640: Fix additional suspend/resume at bootup
authoryangcong <yangcong5@huaqin.corp-partner.google.com>
Fri, 12 Nov 2021 08:43:02 +0000 (16:43 +0800)
committerDouglas Anderson <dianders@chromium.org>
Wed, 17 Nov 2021 16:45:28 +0000 (08:45 -0800)
Through log and waveform, we can see that there will be additional
suspend/resume when booting. This timing does not meet the ps8640 spec.
It seems that the delay of 500ms does not satisfied drm_panel_get_modes.
I increased it to 900ms and it seems that this problem can be solved.
To be safe, I'd just round up to a full 1000.

Signed-off-by: yangcong <yangcong5@huaqin.corp-partner.google.com>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20211112084302.2447931-1-yangcong5@huaqin.corp-partner.google.com
drivers/gpu/drm/bridge/parade-ps8640.c

index 345bb2b4e15d3d177ab4ea9b07b55d87266f89bc..26898042ba3d7ac65111b1ad001be00bb6a9a23c 100644 (file)
@@ -634,13 +634,13 @@ static int ps8640_probe(struct i2c_client *client)
        pm_runtime_enable(dev);
        /*
         * Powering on ps8640 takes ~300ms. To avoid wasting time on power
-        * cycling ps8640 too often, set autosuspend_delay to 500ms to ensure
+        * cycling ps8640 too often, set autosuspend_delay to 1000ms to ensure
         * the bridge wouldn't suspend in between each _aux_transfer_msg() call
         * during EDID read (~20ms in my experiment) and in between the last
         * _aux_transfer_msg() call during EDID read and the _pre_enable() call
         * (~100ms in my experiment).
         */
-       pm_runtime_set_autosuspend_delay(dev, 500);
+       pm_runtime_set_autosuspend_delay(dev, 1000);
        pm_runtime_use_autosuspend(dev);
        pm_suspend_ignore_children(dev, true);
        ret = devm_add_action_or_reset(dev, ps8640_runtime_disable, dev);