On Tue, Mar 27, 2018 at 01:09:36PM +0200, Daniel Vetter wrote: > On Tue, Mar 27, 2018 at 11:59 AM, Ayan Halder <ayan.hal...@arm.com> wrote: > > On Tue, Mar 27, 2018 at 10:29:03AM +0200, Daniel Vetter wrote: > >> On Mon, Mar 26, 2018 at 06:03:20PM +0100, Ayan Kumar Halder wrote: > >> > malidp_pm_suspend_late checks if the runtime status is not suspended > >> > and if so, invokes malidp_runtime_pm_suspend which disables the > >> > display engine/core interrupts and the clocks. It sets the runtime status > >> > as suspended. Subsequently, malidp_pm_resume_early will invoke > >> > malidp_runtime_pm_resume which enables the clocks and the interrupts > >> > (previously disabled) and sets the runtime status as active. > >> > > >> > Signed-off-by: Ayan Kumar Halder <ayan.hal...@arm.com> > >> > Change-Id: I5f8c3d28f076314a1c9da2a46760a9c37039ccda > >> > >> Why exactly do you need late/early hooks? If you have dependencies with > >> other devices, pls consider adding device_links instead. This here > >> shouldn't be necessary. > >> -Daniel > > We need to late/early hooks to disable malidp interrupts and the > > clocks. > > Yes, but why this ordering constraint? Why can't you just disable the > interrupts/clocks in the normal suspend code. I see that the patch > does this, I want to understand why it does it. > -Daniel Apologies for my delayed response on this.
With reference to https://lwn.net/Articles/505683/ :- 1. "suspend() should leave the device in a quiescent state." We invoke drm_mode_config_helper_suspend() which deactivates the crtc. I understand that this is the quiescent state. 2. "suspend_late() can often be the same as runtime_suspend()." We invoke runtime suspend/resume calls in late/early hooks. > >> > --- > >> > drivers/gpu/drm/arm/malidp_drv.c | 17 +++++++++++++++++ > >> > 1 file changed, 17 insertions(+) > >> > > >> > diff --git a/drivers/gpu/drm/arm/malidp_drv.c > >> > b/drivers/gpu/drm/arm/malidp_drv.c > >> > index bd44a6d..f6124d8 100644 > >> > --- a/drivers/gpu/drm/arm/malidp_drv.c > >> > +++ b/drivers/gpu/drm/arm/malidp_drv.c > >> > @@ -766,8 +766,25 @@ static int __maybe_unused malidp_pm_resume(struct > >> > device *dev) > >> > return 0; > >> > } > >> > > >> > +static int __maybe_unused malidp_pm_suspend_late(struct device *dev) > >> > +{ > >> > + if (!pm_runtime_status_suspended(dev)) { > >> > + malidp_runtime_pm_suspend(dev); > >> > + pm_runtime_set_suspended(dev); > >> > + } > >> > + return 0; > >> > +} > >> > + > >> > +static int __maybe_unused malidp_pm_resume_early(struct device *dev) > >> > +{ > >> > + malidp_runtime_pm_resume(dev); > >> > + pm_runtime_set_active(dev); > >> > + return 0; > >> > +} > >> > + > >> > static const struct dev_pm_ops malidp_pm_ops = { > >> > SET_SYSTEM_SLEEP_PM_OPS(malidp_pm_suspend, malidp_pm_resume) \ > >> > + SET_LATE_SYSTEM_SLEEP_PM_OPS(malidp_pm_suspend_late, > >> > malidp_pm_resume_early) \ > >> > SET_RUNTIME_PM_OPS(malidp_runtime_pm_suspend, > >> > malidp_runtime_pm_resume, NULL) > >> > }; > >> > > >> > -- > >> > 2.7.4 > >> > > >> > _______________________________________________ > >> > dri-devel mailing list > >> > dri-devel@lists.freedesktop.org > >> > https://lists.freedesktop.org/mailman/listinfo/dri-devel > >> > >> -- > >> Daniel Vetter > >> Software Engineer, Intel Corporation > >> http://blog.ffwll.ch > >> _______________________________________________ > >> dri-devel mailing list > >> dri-devel@lists.freedesktop.org > >> https://lists.freedesktop.org/mailman/listinfo/dri-devel > > IMPORTANT NOTICE: The contents of this email and any attachments are > > confidential and may also be privileged. If you are not the intended > > recipient, please notify the sender immediately and do not disclose the > > contents to any other person, use it for any purpose, or store or copy the > > information in any medium. Thank you. > > _______________________________________________ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel