• Ayan Kumar Halder's avatar
    drm/arm/malidp: Added the late system pm functions · e368fc75
    Ayan Kumar Halder authored
    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.
    
    The difference between suspend() and suspend_late() is as follows:-
    1. suspend() makes the device quiescent. In our case, we invoke the DRM
    helper which disables the CRTC. This would have invoked runtime pm
    suspend but the system suspend process disables runtime pm.
    2. suspend_late() It continues the suspend operations of the drm device
    which was started by suspend(). In our case, it performs the same functionality
    as runtime_suspend().
    
    The complimentary functions are resume() and resume_early(). In the case of
    resume_early(), we invoke malidp_runtime_pm_resume() which enables the clocks
    and the interrupts. It sets the runtime status as active. If the device was
    in runtime suspend mode before system suspend was called, pm_runtime_work()
    will put the device back in runtime suspended mode( after the complete system
    has been resumed).
    Signed-off-by: default avatarAyan Kumar Halder <ayan.halder@arm.com>
    Acked-by: default avatarLiviu Dudau <liviu.dudau@arm.com>
    Signed-off-by: default avatarLiviu Dudau <liviu.dudau@arm.com>
    e368fc75
malidp_drv.c 24.7 KB