On Fri, Aug 02, 2019 at 11:46:16AM -0700, Douglas Anderson wrote: > In commit fe64ba5c6323 ("drm/rockchip: Resume DP early") we moved > resume to be early but left suspend at its normal time. This seems > like it could be OK, but casues problems if a suspend gets interrupted > partway through. The OS only balances matching suspend/resume levels. > ...so if suspend was called then resume will be called. If suspend > late was called then resume early will be called. ...but if suspend > was called resume early might not get called. This leads to an > unbalance in the clock enables / disables. > > Lets take the simple fix and just move suspend to be late to match. > This makes the PM core take proper care in keeping things balanced. > > Fixes: fe64ba5c6323 ("drm/rockchip: Resume DP early") > Signed-off-by: Douglas Anderson <dianders@xxxxxxxxxxxx> Reviewed-by: Sean Paul <sean@xxxxxxxxxx> This should go in -misc-fixes and due to some... administrative reasons... I will leave it on the list until Maarten has a chance to ff to -rc4 on Monday. I'll apply it then so as to not require a backmerge. Sean > --- > > drivers/gpu/drm/rockchip/analogix_dp-rockchip.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c > index 7d7cb57410fc..f38f5e113c6b 100644 > --- a/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c > +++ b/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c > @@ -436,7 +436,7 @@ static int rockchip_dp_resume(struct device *dev) > > static const struct dev_pm_ops rockchip_dp_pm_ops = { > #ifdef CONFIG_PM_SLEEP > - .suspend = rockchip_dp_suspend, > + .suspend_late = rockchip_dp_suspend, > .resume_early = rockchip_dp_resume, > #endif > }; > -- > 2.22.0.770.g0f2c4a37fd-goog > -- Sean Paul, Software Engineer, Google / Chromium OS _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel