From: gregory.clement@free-electrons.com (Gregory CLEMENT)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/9] ARM: mvebu: fix suspend to RAM on big-endian configurations
Date: Wed, 17 Jun 2015 17:24:23 +0200 [thread overview]
Message-ID: <55819127.1040306@free-electrons.com> (raw)
In-Reply-To: <1434456785-23696-2-git-send-email-thomas.petazzoni@free-electrons.com>
Hi Thomas,
On 16/06/2015 14:12, Thomas Petazzoni wrote:
> The current Armada XP suspend to RAM implementation, as added in
> commit 27432825ae19f ("ARM: mvebu: Armada XP GP specific
> suspend/resume code") does not handle big-endian configurations
> properly: the small bit of assembly code putting the DRAM in
> self-refresh and toggling the GPIOs to turn off power forgets to
> convert the values to little-endian.
>
> This commit fixes that by making sure the two values we will write to
> the DRAM controller register and GPIO register are already in
> little-endian before entering the critical assembly code.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: <stable@vger.kernel.org> # v3.19+
> Fixes: 27432825ae19f ("ARM: mvebu: Armada XP GP specific suspend/resume code")
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
applied on mvebu/fixes
Thanks,
Gregory
> ---
> arch/arm/mach-mvebu/pm-board.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/arm/mach-mvebu/pm-board.c b/arch/arm/mach-mvebu/pm-board.c
> index 6dfd4ab..301ab38 100644
> --- a/arch/arm/mach-mvebu/pm-board.c
> +++ b/arch/arm/mach-mvebu/pm-board.c
> @@ -43,6 +43,9 @@ static void mvebu_armada_xp_gp_pm_enter(void __iomem *sdram_reg, u32 srcmd)
> for (i = 0; i < ARMADA_XP_GP_PIC_NR_GPIOS; i++)
> ackcmd |= BIT(pic_raw_gpios[i]);
>
> + srcmd = cpu_to_le32(srcmd);
> + ackcmd = cpu_to_le32(ackcmd);
> +
> /*
> * Wait a while, the PIC needs quite a bit of time between the
> * two GPIO commands.
>
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
WARNING: multiple messages have this Message-ID (diff)
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
To: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Jason Cooper <jason@lakedaemon.net>, Andrew Lunn <andrew@lunn.ch>,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
Tawfik Bayouk <tawfik@marvell.com>,
Nadav Haklai <nadavh@marvell.com>,
Lior Amsalem <alior@marvell.com>,
linux-arm-kernel@lists.infradead.org, stable@vger.kernel.org
Subject: Re: [PATCH 1/9] ARM: mvebu: fix suspend to RAM on big-endian configurations
Date: Wed, 17 Jun 2015 17:24:23 +0200 [thread overview]
Message-ID: <55819127.1040306@free-electrons.com> (raw)
In-Reply-To: <1434456785-23696-2-git-send-email-thomas.petazzoni@free-electrons.com>
Hi Thomas,
On 16/06/2015 14:12, Thomas Petazzoni wrote:
> The current Armada XP suspend to RAM implementation, as added in
> commit 27432825ae19f ("ARM: mvebu: Armada XP GP specific
> suspend/resume code") does not handle big-endian configurations
> properly: the small bit of assembly code putting the DRAM in
> self-refresh and toggling the GPIOs to turn off power forgets to
> convert the values to little-endian.
>
> This commit fixes that by making sure the two values we will write to
> the DRAM controller register and GPIO register are already in
> little-endian before entering the critical assembly code.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> Cc: <stable@vger.kernel.org> # v3.19+
> Fixes: 27432825ae19f ("ARM: mvebu: Armada XP GP specific suspend/resume code")
Acked-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
applied on mvebu/fixes
Thanks,
Gregory
> ---
> arch/arm/mach-mvebu/pm-board.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/arm/mach-mvebu/pm-board.c b/arch/arm/mach-mvebu/pm-board.c
> index 6dfd4ab..301ab38 100644
> --- a/arch/arm/mach-mvebu/pm-board.c
> +++ b/arch/arm/mach-mvebu/pm-board.c
> @@ -43,6 +43,9 @@ static void mvebu_armada_xp_gp_pm_enter(void __iomem *sdram_reg, u32 srcmd)
> for (i = 0; i < ARMADA_XP_GP_PIC_NR_GPIOS; i++)
> ackcmd |= BIT(pic_raw_gpios[i]);
>
> + srcmd = cpu_to_le32(srcmd);
> + ackcmd = cpu_to_le32(ackcmd);
> +
> /*
> * Wait a while, the PIC needs quite a bit of time between the
> * two GPIO commands.
>
--
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
next prev parent reply other threads:[~2015-06-17 15:24 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-16 12:12 [PATCH 0/9] ARM: mvebu: add suspend to RAM support for Armada 38x Thomas Petazzoni
2015-06-16 12:12 ` [PATCH 1/9] ARM: mvebu: fix suspend to RAM on big-endian configurations Thomas Petazzoni
2015-06-16 12:12 ` Thomas Petazzoni
2015-06-17 15:24 ` Gregory CLEMENT [this message]
2015-06-17 15:24 ` Gregory CLEMENT
2015-06-16 12:12 ` [PATCH 2/9] ARM: mvebu: prepare set_cpu_coherent() for future extension Thomas Petazzoni
2015-06-17 15:28 ` Gregory CLEMENT
2015-06-16 12:12 ` [PATCH 3/9] ARM: mvebu: do not check machine in mvebu_pm_init() Thomas Petazzoni
2015-06-17 15:32 ` Gregory CLEMENT
2015-06-16 12:13 ` [PATCH 4/9] ARM: mvebu: prepare mvebu_pm_store_bootinfo() to support multiple SoCs Thomas Petazzoni
2015-06-17 16:12 ` Gregory CLEMENT
2015-06-16 12:13 ` [PATCH 5/9] ARM: mvebu: prepare pm-board.c for the introduction of Armada 38x support Thomas Petazzoni
2015-06-17 16:13 ` Gregory CLEMENT
2015-06-16 12:13 ` [PATCH 6/9] ARM: mvebu: add suspend/resume support for Armada 38x Thomas Petazzoni
2015-06-16 12:13 ` [PATCH 7/9] ARM: mvebu: add suspend/resume related definitions in Armada 38x Device Tree Thomas Petazzoni
2015-06-16 12:13 ` [PATCH 8/9] ARM: mvebu: add suspend/resume DT information for Armada 388 GP Thomas Petazzoni
2015-06-16 12:13 ` [PATCH 9/9] ARM: mvebu: adjust board name and compatible " Thomas Petazzoni
2015-06-17 16:31 ` Gregory CLEMENT
2015-06-17 20:48 ` Thomas Petazzoni
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=55819127.1040306@free-electrons.com \
--to=gregory.clement@free-electrons.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.