linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] dmaengine: edma: Remove dynamic TPTC power management feature
Date: Thu, 28 Jan 2016 09:11:46 -0800	[thread overview]
Message-ID: <20160128171146.GC19432@atomide.com> (raw)
In-Reply-To: <56A9D8C2.7000401@ti.com>

* Peter Ujfalusi <peter.ujfalusi@ti.com> [160128 01:01]:
> On 01/27/2016 05:54 PM, Tony Lindgren wrote:
> > * Peter Ujfalusi <peter.ujfalusi@ti.com> [160127 01:12]:
> >> The dynamic or on demand pm_runtime does not work correctly on am335x and
> >> am437x due to interference with hwmod.
> > 
> > Hmm care expand a bit what is the problem with this "interference"?
> 
> The idea was to enable/power on only the TPTCs which is actually in use and
> leave the unused ones off. Which is is nice and all, but...
> The original implementation did the pm_runtime calls for the tptcs from the
> edma tpcc driver instance and the main issue was that I did the pm_runtime
> calls in the edma-tpcc pm callbacks as well.
> Since omap hwmod/device also handles pm_runtime on behalf of the drivers we
> got nasty issues, kernel crash, warnings on suspend/resume.
> 
> Then I did implemented the on demand power management in a totally different
> way, still keeping only tptcs enabled which is in use.
> In this way all the omap hwmod/device incoherency was gone and things looked
> fine, but it turned out that on second suspend we are not able to wake up the
> board.
> I and Tero debugged this a bit and it turns out that we need to kepp all tptcs
> enabled and powered, otherwise the HW will not going to be able to complete
> the transition, breaking suspend/resume.

Probably you only need to keep the tptcs being used enabled though? They
should be completely independent otherwise?

> With pm_runtime_enable() + get_sync() on all tptcs we can suspend and resume
> w/o problems and they will be disabled/enabled by omap hwmod/device code,
> following nicely the power state of the system.
> 
> As a note: I did tried the suspend/resume with the old code with dra7, but it
> turned out that on dra7 SW has no control over the tptc power state, it
> follows the system in HW.
> 
> In short: The implementation was flawed and even if the implementation is
> correct the HW will lock up if we do on demand tptc power management.

OK interesting.

Regards,

Tony

      reply	other threads:[~2016-01-28 17:11 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-27  9:11 [PATCH] dmaengine: edma: Remove dynamic TPTC power management feature Peter Ujfalusi
2016-01-27 15:54 ` Tony Lindgren
2016-01-28  9:00   ` Peter Ujfalusi
2016-01-28 17:11     ` Tony Lindgren [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160128171146.GC19432@atomide.com \
    --to=tony@atomide.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).