Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1369641 > unrolled thread

[PATCH 0/3] ARM: OMAP2: Make suspend work again.

Started byNishanth Menon <nm@ti.com>
First post2016-04-02 01:00 +0200
Last post2016-04-08 18:00 +0200
Articles 5 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/3] ARM: OMAP2: Make suspend work again. Nishanth Menon <nm@ti.com> - 2016-04-02 01:00 +0200
    [PATCH 1/3] ARM: OMAP: DRA7: wakeupgen: Skip SAR save for wakeupgen Nishanth Menon <nm@ti.com> - 2016-04-02 01:00 +0200
    [PATCH 3/3] ARM: OMAP: Catch callers of revision information prior to it being populated Nishanth Menon <nm@ti.com> - 2016-04-02 01:00 +0200
    Re: [PATCH 0/3] ARM: OMAP2: Make suspend work again. Keerthy <a0393675@ti.com> - 2016-04-04 07:50 +0200
      Re: [PATCH 0/3] ARM: OMAP2: Make suspend work again. Tony Lindgren <tony@atomide.com> - 2016-04-08 18:00 +0200

#1369641 — [PATCH 0/3] ARM: OMAP2: Make suspend work again.

FromNishanth Menon <nm@ti.com>
Date2016-04-02 01:00 +0200
Subject[PATCH 0/3] ARM: OMAP2: Make suspend work again.
Message-ID<rjgcO-2HK-5@gated-at.bofh.it>
Hi,
series of patches for fixing up attempt to suspend on X15 

Test: http://pastebin.ubuntu.com/15582436/

Based on v4.6-rc1

Also needs https://patchwork.kernel.org/patch/8724791/ if kernel
modules are installed

Nishanth Menon (3):
  ARM: OMAP: DRA7: wakeupgen: Skip SAR save for wakeupgen
  ARM: OMAP: DRA7: Provide proper class to omap2_set_globals_tap
  ARM: OMAP: Catch callers of revision information prior to it being
    populated

 arch/arm/mach-omap1/id.c             | 1 +
 arch/arm/mach-omap2/id.c             | 1 +
 arch/arm/mach-omap2/io.c             | 3 ++-
 arch/arm/mach-omap2/omap-wakeupgen.c | 7 +++++++
 4 files changed, 11 insertions(+), 1 deletion(-)

-- 
2.8.0

[toc] | [next] | [standalone]


#1369642 — [PATCH 1/3] ARM: OMAP: DRA7: wakeupgen: Skip SAR save for wakeupgen

FromNishanth Menon <nm@ti.com>
Date2016-04-02 01:00 +0200
Subject[PATCH 1/3] ARM: OMAP: DRA7: wakeupgen: Skip SAR save for wakeupgen
Message-ID<rjgcO-2HK-9@gated-at.bofh.it>
In reply to#1369641
DRA7 has no SAR region for automated save and restore of wakeupgen,
which does not make real since the SoC really does not do legacy OFF
mode anymore. Further wakeupgen should never loose context in CSWR
retention mode for MPU domain on DRA7 since that is the deepest state
we will enter.

So, just skip, instead of oopsing as follows while attemptint to enter
suspend on BeagleBoard-X15.
[   55.589771] Unable to handle kernel paging request at virtual address 00002684
[   55.589771] pgd = ec69c000
[...]
[   55.589771] [<c0123cc8>] (irq_notifier) from [<c015ad70>] (notifier_call_chain+0x4c/0x8c)
[   55.589771] [<c015ad70>] (notifier_call_chain) from [<c021469c>] (cpu_cluster_pm_enter+0x2c/0x78)
[   55.589771] [<c021469c>] (cpu_cluster_pm_enter) from [<c0514508>] (syscore_suspend+0xb8/0x31c)
[   55.589771] [<c0514508>] (syscore_suspend) from [<c0197d24>] (suspend_devices_and_enter+0x308/0x9e4)
[   55.589771] [<c0197d24>] (suspend_devices_and_enter) from [<c0198a40>] (pm_suspend+0x640/0x75c)
[   55.589771] [<c0198a40>] (pm_suspend) from [<c0196bcc>] (state_store+0x64/0xb8)
[   55.589771] [<c0196bcc>] (state_store) from [<c0307914>] (kernfs_fop_write+0xc0/0x1bc)
[   55.589771] [<c0307914>] (kernfs_fop_write) from [<c028ac80>] (__vfs_write+0x1c/0xd8)
[   55.589771] [<c028ac80>] (__vfs_write) from [<c028bb70>] (vfs_write+0x90/0x16c)
[   55.589771] [<c028bb70>] (vfs_write) from [<c028c890>] (SyS_write+0x44/0x9c)
[   55.589771] [<c028c890>] (SyS_write) from [<c0107840>] (ret_fast_syscall+0x0/0x1c)
[...]

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 arch/arm/mach-omap2/omap-wakeupgen.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
index f397bd6bd6e3..2c04f2741476 100644
--- a/arch/arm/mach-omap2/omap-wakeupgen.c
+++ b/arch/arm/mach-omap2/omap-wakeupgen.c
@@ -274,6 +274,10 @@ static inline void omap5_irq_save_context(void)
  */
 static void irq_save_context(void)
 {
+	/* DRA7 has no SAR to save */
+	if (soc_is_dra7xx())
+		return;
+
 	if (!sar_base)
 		sar_base = omap4_get_sar_ram_base();
 
@@ -290,6 +294,9 @@ static void irq_sar_clear(void)
 {
 	u32 val;
 	u32 offset = SAR_BACKUP_STATUS_OFFSET;
+	/* DRA7 has no SAR to save */
+	if (soc_is_dra7xx())
+		return;
 
 	if (soc_is_omap54xx())
 		offset = OMAP5_SAR_BACKUP_STATUS_OFFSET;
-- 
2.8.0

[toc] | [prev] | [next] | [standalone]


#1369643 — [PATCH 3/3] ARM: OMAP: Catch callers of revision information prior to it being populated

FromNishanth Menon <nm@ti.com>
Date2016-04-02 01:00 +0200
Subject[PATCH 3/3] ARM: OMAP: Catch callers of revision information prior to it being populated
Message-ID<rjgcO-2HK-17@gated-at.bofh.it>
In reply to#1369641
omap_rev is used to detect various SoC types, however any misuse of
the usage by invoking it earlier than it being populated will result
in invalid results. Lets flag them as early as possible to prevent
unintended side effects taking place. We get 0 if it is uninitialized
and -1 when detection is done using device tree (as the case was for
DRA7 as the case was prior to commit 06c2d368fc36 ("ARM: OMAP: DRA7:
Make use of omap_revision information for soc_is* calls")

Signed-off-by: Nishanth Menon <nm@ti.com>
---
 arch/arm/mach-omap1/id.c | 1 +
 arch/arm/mach-omap2/id.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/arch/arm/mach-omap1/id.c b/arch/arm/mach-omap1/id.c
index 52de382fc804..bfabc065d331 100644
--- a/arch/arm/mach-omap1/id.c
+++ b/arch/arm/mach-omap1/id.c
@@ -65,6 +65,7 @@ static struct omap_id omap_ids[] __initdata = {
 
 unsigned int omap_rev(void)
 {
+	WARN_ON_ONCE(!omap_revision || omap_revision == -1);
 	return omap_revision;
 }
 EXPORT_SYMBOL(omap_rev);
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index d85c24918c17..75fb6c006e86 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -46,6 +46,7 @@ u32 omap_features;
 
 unsigned int omap_rev(void)
 {
+	WARN_ON_ONCE(!omap_revision || omap_revision == -1);
 	return omap_revision;
 }
 EXPORT_SYMBOL(omap_rev);
-- 
2.8.0

[toc] | [prev] | [next] | [standalone]


#1370370

FromKeerthy <a0393675@ti.com>
Date2016-04-04 07:50 +0200
Message-ID<rk5yF-6TZ-1@gated-at.bofh.it>
In reply to#1369641

On Saturday 02 April 2016 04:23 AM, Nishanth Menon wrote:
> Hi,
> series of patches for fixing up attempt to suspend on X15
>
> Test: http://pastebin.ubuntu.com/15582436/
>
> Based on v4.6-rc1
>
> Also needs https://patchwork.kernel.org/patch/8724791/ if kernel
> modules are installed

Thanks for the series Nishanth.

I tested suspend/resume and used no_console_suspend and woke up using 
uart on DRA7-EVM.

Tested-by: Keerthy <j-keerthy@ti.com>

>
> Nishanth Menon (3):
>    ARM: OMAP: DRA7: wakeupgen: Skip SAR save for wakeupgen
>    ARM: OMAP: DRA7: Provide proper class to omap2_set_globals_tap
>    ARM: OMAP: Catch callers of revision information prior to it being
>      populated
>
>   arch/arm/mach-omap1/id.c             | 1 +
>   arch/arm/mach-omap2/id.c             | 1 +
>   arch/arm/mach-omap2/io.c             | 3 ++-
>   arch/arm/mach-omap2/omap-wakeupgen.c | 7 +++++++
>   4 files changed, 11 insertions(+), 1 deletion(-)
>

[toc] | [prev] | [next] | [standalone]


#1374332

FromTony Lindgren <tony@atomide.com>
Date2016-04-08 18:00 +0200
Message-ID<rlGZd-67T-33@gated-at.bofh.it>
In reply to#1370370
* Keerthy <a0393675@ti.com> [160403 22:48]:
> 
> 
> On Saturday 02 April 2016 04:23 AM, Nishanth Menon wrote:
> >Hi,
> >series of patches for fixing up attempt to suspend on X15
> >
> >Test: http://pastebin.ubuntu.com/15582436/
> >
> >Based on v4.6-rc1
> >
> >Also needs https://patchwork.kernel.org/patch/8724791/ if kernel
> >modules are installed
> 
> Thanks for the series Nishanth.
> 
> I tested suspend/resume and used no_console_suspend and woke up using uart
> on DRA7-EVM.

Applying all three into omap-for-v4.6/fixes thanks.

Tony

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web