linux-omap3: Add supported kernel recipe for am37x-evm and am3517-evm
[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
40  
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
49  
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
61  
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
70  
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
80  
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)
99  
100         printk(KERN_ERR "Power Management for TI OMAP3.\n");
101  
102 +#ifdef CONFIG_OMAP3_PM_DISABLE_VT_SWITCH
103 +        pm_set_vt_switch(0);
104 +#endif
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