From: Thierry Reding <thierry.reding@gmail.com>
To: Dmitry Osipenko <digetx@gmail.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>,
Alexandre Courbot <gnurou@gmail.com>,
Peter De Schrijver <pdeschrijver@nvidia.com>,
linux-tegra@vger.kernel.org, linux-kernel@vger.kernel.org,
stable@vger.kernel.org
Subject: Re: [PATCH] ARM: tegra: Store tegra_resume() address in IRAM
Date: Mon, 19 Jan 2015 15:01:01 +0100 [thread overview]
Message-ID: <20150119140059.GE23778@ulmo.nvidia.com> (raw)
In-Reply-To: <1421319545-23920-3-git-send-email-digetx@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 1591 bytes --]
On Thu, Jan 15, 2015 at 01:58:58PM +0300, Dmitry Osipenko wrote:
> Commit 7232398abc6a ("ARM: tegra: Convert PMC to a driver") changed tegra_resume()
> location storing from late to early and, as a result, broke suspend on Tegra20.
> PMC scratch register 41 is used by tegra LP1 resume code for retrieving stored
> physical memory address of common resume function and in the same time used by
> tegra20_cpu_shutdown() (shared by Tegra20 cpuidle driver and platform SMP code),
> which is storing CPU1 "resettable" status. It implies strict order of scratch
> register usage, otherwise resume function address is lost on Tegra20 after
> disabling non-boot CPU's on suspend. Fix it by storing tegra_resume() physical
> address in IRAM instead of PMC scratch register.
>
> Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
> Fixes: 7232398abc6a (ARM: tegra: Convert PMC to a driver)
> Cc: <stable@vger.kernel.org> # v3.17+
> ---
> arch/arm/mach-tegra/pm.c | 3 +++
> arch/arm/mach-tegra/reset-handler.S | 4 ++++
> arch/arm/mach-tegra/reset.h | 4 ++++
> arch/arm/mach-tegra/sleep-tegra20.S | 7 ++++---
> arch/arm/mach-tegra/sleep-tegra30.S | 7 ++++---
> drivers/soc/tegra/pmc.c | 19 -------------------
> 6 files changed, 19 insertions(+), 25 deletions(-)
I don't think this is a good variant. I'm sure it'll work, but storing a
pointer to tegra_resume() is actually the documented purpose of the PMC
scratch 41 register. That is, some software (like bootloaders and
whatnot) may actually rely on this behaviour.
Thierry
[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]
prev parent reply other threads:[~2015-01-19 14:01 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-15 10:58 Two variants of fixing Tegra20 suspend bug Dmitry Osipenko
2015-01-15 10:58 ` [PATCH] ARM: tegra20: Store CPU "resettable" status in IRAM Dmitry Osipenko
[not found] ` <1421319545-23920-2-git-send-email-digetx-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-01-19 14:12 ` Thierry Reding
[not found] ` <20150119141224.GF23778-AwZRO8vwLAwmlAP/+Wk3EA@public.gmane.org>
2015-01-19 15:14 ` Dmitry Osipenko
2015-01-19 17:26 ` Stephen Warren
2015-01-19 17:41 ` Dmitry Osipenko
2015-01-19 17:45 ` Stephen Warren
2015-01-19 18:00 ` Dmitry Osipenko
[not found] ` <54BD4626.70902-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-01-19 18:26 ` Dmitry Osipenko
2015-01-20 16:55 ` Dmitry Osipenko
2015-01-20 1:59 ` Alexandre Courbot
2015-03-11 10:29 ` Thierry Reding
2015-03-11 13:28 ` Dmitry Osipenko
2015-01-15 10:58 ` [PATCH] ARM: tegra: Store tegra_resume() address " Dmitry Osipenko
2015-01-19 14:01 ` Thierry Reding [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=20150119140059.GE23778@ulmo.nvidia.com \
--to=thierry.reding@gmail.com \
--cc=digetx@gmail.com \
--cc=gnurou@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tegra@vger.kernel.org \
--cc=pdeschrijver@nvidia.com \
--cc=stable@vger.kernel.org \
--cc=swarren@wwwdotorg.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).