[glsdk/meta-ti-glsdk.git] / recipes-kernel / linux / linux-omap3-2.6.37-psp04.02.00.07 / omap3 / 0001-Fix-matrix-suspend.patch
1 From a520a30ffd932bce334d894adce12a6ceec2be00 Mon Sep 17 00:00:00 2001
2 From: Greg Guyotte <gguyotte@ti.com>
3 Date: Tue, 21 Jun 2011 21:56:06 -0500
4 Subject: [PATCH] Fix matrix suspend
6 * Added new OMAP config option OMAP3_PM_DISABLE_VT_SWITCH which
7 disables the VT console switch which normally occurs during
8 suspend. This console switch, when performed with Matrix
9 running, hangs. The VT switch is considered unnecessary.
10 * Modified OMAP3 EVM and OMAP3 Beagle defconfig files to default
11 the OMAP3_PM_DISABLE_VT_SWITCH=y, and also to default
12 MMC_UNSAFE_RESUME=y. The latter case causes a hang during suspend
13 if the root filesystem is located on the MMC card. This
14 fix has actually been done in another patch, but the defconfigs
15 were not updated.
17 Signed-off-by: Greg Guyotte <gguyotte@ti.com>
19 Fix mistake in Kconfig
21 Did not mean to add the two lines in Kconfig under ARCH_OMAP3.
23 Signed-off-by: Greg Guyotte <gguyotte@ti.com>
24 ---
25 arch/arm/configs/omap3_beagle_defconfig | 3 ++-
26 arch/arm/configs/omap3_evm_defconfig | 3 ++-
27 arch/arm/mach-omap2/Kconfig | 10 ++++++++++
28 arch/arm/mach-omap2/pm34xx.c | 4 ++++
29 4 files changed, 18 insertions(+), 2 deletions(-)
31 diff --git a/arch/arm/configs/omap3_beagle_defconfig b/arch/arm/configs/omap3_beagle_defconfig
32 index cef7597..6e8d50c 100644
33 --- a/arch/arm/configs/omap3_beagle_defconfig
34 +++ b/arch/arm/configs/omap3_beagle_defconfig
35 @@ -97,6 +97,7 @@ CONFIG_MACH_OMAP3_BEAGLE=y
36 # CONFIG_MACH_OMAP_3630SDP is not set
37 # CONFIG_OMAP3_EMU is not set
38 # CONFIG_OMAP3_SDRC_AC_TIMING is not set
39 +CONFIG_OMAP3_PM_DISABLE_VT_SWITCH=y
41 #
42 # Processor Features
43 @@ -504,7 +505,7 @@ CONFIG_USB_ETH=y
44 CONFIG_USB_ETH_RNDIS=y
45 CONFIG_MMC=y
46 # CONFIG_MMC_DEBUG is not set
47 -# CONFIG_MMC_UNSAFE_RESUME is not set
48 +CONFIG_MMC_UNSAFE_RESUME=y
50 #
51 # MMC/SD/SDIO Card Drivers
52 diff --git a/arch/arm/configs/omap3_evm_defconfig b/arch/arm/configs/omap3_evm_defconfig
53 index 675ae9c..8db3574 100644
54 --- a/arch/arm/configs/omap3_evm_defconfig
55 +++ b/arch/arm/configs/omap3_evm_defconfig
56 @@ -97,6 +97,7 @@ CONFIG_MACH_OMAP3EVM=y
57 # CONFIG_MACH_OMAP_3630SDP is not set
58 # CONFIG_OMAP3_EMU is not set
59 # CONFIG_OMAP3_SDRC_AC_TIMING is not set
60 +CONFIG_OMAP3_PM_DISABLE_VT_SWITCH=y
62 #
63 # Processor Features
64 @@ -557,7 +558,7 @@ CONFIG_USB_ETH=y
65 CONFIG_USB_ETH_RNDIS=y
66 CONFIG_MMC=y
67 # CONFIG_MMC_DEBUG is not set
68 -# CONFIG_MMC_UNSAFE_RESUME is not set
69 +CONFIG_MMC_UNSAFE_RESUME=y
71 #
72 # MMC/SD/SDIO Card Drivers
73 diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
74 index dfa5464..43dc070 100644
75 --- a/arch/arm/mach-omap2/Kconfig
76 +++ b/arch/arm/mach-omap2/Kconfig
77 @@ -338,6 +338,16 @@ config OMAP3_EMU
78 help
79 Say Y here to enable debugging hardware of omap3
81 +config OMAP3_PM_DISABLE_VT_SWITCH
82 + bool "OMAP3 Disable PM Console Switch"
83 + depends on ARCH_OMAP3
84 + default y
85 + help
86 + This option disables the default PM VT switch behavior for OMAP3.
87 + Some platforms hang during suspend due to a failed attempt to
88 + perform the VT switch. The VT switch is unnecessary on many
89 + platforms.
90 +
91 config OMAP3_SDRC_AC_TIMING
92 bool "Enable SDRC AC timing register changes"
93 depends on ARCH_OMAP3
94 diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
95 index 242babc..1d23b55 100644
96 --- a/arch/arm/mach-omap2/pm34xx.c
97 +++ b/arch/arm/mach-omap2/pm34xx.c
98 @@ -1072,6 +1072,10 @@ static int __init omap3_pm_init(void)
100 printk(KERN_ERR "Power Management for TI OMAP3.\n");
102 +#ifdef CONFIG_OMAP3_PM_DISABLE_VT_SWITCH
103 + pm_set_vt_switch(0);
104 +#endif
105 +
106 /* XXX prcm_setup_regs needs to be before enabling hw
107 * supervised mode for powerdomains */
108 prcm_setup_regs();
109 --
110 1.7.0.4