Re: issue on rcar-du and/or vsp suspend-resume paths

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Nikita

On 07/12/17 08:48, Nikita Yushchenko wrote:
> Hello.
> 
> Writing this mail to commiters to rcar-du and vsp1 drivers in kernel branch
> v4.9/rcar-3.5.9 of
> git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas-bsp.git - which
> AFAIU is the latest BSP kernel for Renesas Gen3 SoCs.

Suspend resume is known not to work on this kernel version for VSP1 and rcar-du
on Gen3. You could potentially back-port the relevant patches, but I have not
looked at the dependencies required for this:


I believe the VSP1 was fixed with the following patch series:

[PATCH v5 0/2] v4l: vsp1: Fix suspend/resume and race on M2M pipelines
[PATCH v5 1/2] v4l: vsp1: Move vsp1_video_setup_pipeline()
[PATCH v5 2/2] v4l: vsp1: Repair suspend resume operations for video pipelines

And the RCar DU was fixed with the following patches:

[PATCH v2 0/3] drm/media: Implement DU Suspend and Resume on VSP pipelines
         (1/3 is v3 "media: vsp1" below)
[PATCH v2 2/3] drm: rcar-du: Add suspend resume helpers
[PATCH v2 3/3] drm: rcar-du: Remove unused CRTC suspend/resume functions

[PATCH v3] media: vsp1: Prevent suspending and resuming DRM pipelines

All of the above patches were posted to the linux-renesas-soc mailinglist, and
should be available in the archives.

The best source of the patches would be the tag:
  renesas-drivers-2017-11-28-v4.15-rc1
from
  git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers.git,

which should be functional for suspend/resume on both VSP1 and rcar-du.

> I'm trying to make swsusp (i.e echo disk > /sys/power/state) working on
> r8a7796-m3ulcb board.
> 
> I'm facing an issue with suspend/resume routines of rcar-du driver.
> 
> Currently, suspend-to-mem works on this target. I can run
> # i2cset -f -y 7 0x30 0x20 0x0F
> # echo mem > /sys/power/state
> and target suspends. Then, I can press power button and target resumes,
> including image on HDMI-connected display.
> 
> However, if I try
> 
> # echo devices > /sys/power/pm_test
> # echo mem > /sys/power/state
> 
> which should terminate suspend process after calling drivers method and resume
> immediately, rcar-du resume fails:
> 
> [   75.233956] [drm:drm_atomic_helper_wait_for_flip_done] *ERROR*
> [CRTC:53:crtc-1] flip_done timed out
> [   85.474009] [drm:drm_atomic_helper_commit_cleanup_done] *ERROR*
> [CRTC:53:crtc-1] flip_done timed out

Yes, this looks like the expected errors.

> Same will happen on any other variants of /sys/power/pm_test.
> Resume of rcar-du will only succeed of CPU really goes sleep after suspend of
> rcar-du.
> 
> I've tried a test that calls rcar-du's suspend method, sleeps a bit and calls
> rcar-du's resume method - and that breaks display. In particular, VSP interrupts
> no longer arrive. Although the VSP hardware programming sequence looks exactly
> the same as on normal driver startup or on blank-unblank path.
> 
> For swsusp (and also for suspend-to-mem error paths) it is required that
> driver's resume method undoes what driver's suspend method does, so this
> behavior is definitely a bug.
> 
> Could you please help debugging this?

Backporting the patches, or moving to latest kernel versions would be the
resolution here.


> Nikita Yushchenko,
> system sw engineer at cogentembedded.com
--
Regards

Kieran



[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux