alistair23-linux/arch/arm/mach-omap2
Santosh Shilimkar a1b04cc197 omap: serial: Fix the boot-up crash/reboot without CONFIG_PM
The omap2plus_defconfig doesn't boot up when built with CONFIG_PM
disabled on the latest linux-omap master. Below are the observations
1. OMAP3 reboots in the middle of boot
--------------------------------------------------
[    0.000000] Calibrating delay loop... 494.72 BogoMIPS (lpj=1933312)
[    0.000000] pid_max: default: 32768 minimum: 301
[    0.000000] Security Framework initialized
[    0.000000] Mount-cache hash table entries: 512
[    0.000000] CPU: Testing write buffer coherency: ok
[    0.000000] Brought up 1 CPUs
[    0.000000] SMP: Total of 1 processors activated (494.72 BogoMIPS).
[    0.000000] regulator: core version 0.5
[    0.000000] NET: Registered protocol family 16

U-Boot 1.1.4 (Feb 11 2009 - 16:10:23)

OMAP3430-GP rev 2, CPU-OPP2 L3-165MHz
TI 3430SDP 1.0 Version + mDDR (Boot NOR)
DRAM:  128 MB
Flash: 128 MB
NAND:128 MiB
--------------------------------------------------

2. OMAP4 does a kernel PANIC
-------------------------------------
[    0.000000] Calibrating delay loop... 1195.29 BogoMIPS (lpj=4669440)
[    0.000000] pid_max: default: 32768 minimum: 301
[    0.000000] Security Framework initialized
[    0.000000] Mount-cache hash table entries: 512
[    0.000000] CPU: Testing write buffer coherency: ok
[    0.000000] L310 cache controller enabled
[    0.000000] l2x0: 16 ways, CACHE_ID 0x410000c2, AUX_CTRL 0x0e050000
[    0.000000] CPU1: Booted secondary processor
[    0.000000] Brought up 2 CPUs
[    0.000000] SMP: Total of 2 processors activated (2395.78 BogoMIPS).
[    0.000000] regulator: core version 0.5
[    0.000000] NET: Registered protocol family 16
[    0.000000] mux: Could not set signal i2c2_scl.i2c2_scl
[    0.000000] mux: Could not set signal i2c2_sda.i2c2_sda
[    0.000000] mux: Could not set signal i2c3_scl.i2c3_scl
[    0.000000] mux: Could not set signal i2c3_sda.i2c3_sda
[    0.000000] mux: Could not set signal i2c4_scl.i2c4_scl
[    0.000000] mux: Could not set signal i2c4_sda.i2c4_sda
-------------------------------------

This is happening because 'omap_serial_init()' is hanging in the boot.
On OMAP3 the watchdog is generating reboot because devices_init doesn't
happens where as on OMAP4 it just hangs without reboot.
The uart clock is not getting enabled after omap_device_idle as part
of omap_serial_init.
The omap_device_idle(will disable the clock) then omap_uart_block_sleep()
should enable clock back disabled during the boot up phase.
But omap_uart_block_sleep() stuffed version is binded only under
CONFIG_PM and other version is just empty. Hence it is not enabling
clock back as expected

This patch adds uart clock enable code to omap_uart_block_sleep() function
built with CONFIG_PM disabled.
Thanks to Charulatha and Govindraj for their help on this debug.

Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Charulatha V <charu@ti.com>
Signed-off-by: Govindraj.R <govindraj.raja@ti.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2010-10-11 10:53:48 -07:00
..
include/mach OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
board-2430sdp.c omap: mmc: extended to pass host capabilities from board file 2010-09-27 10:15:26 -07:00
board-3430sdp.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
board-3630sdp.c Merge branch 'pm-hwmods' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into omap-for-linus 2010-10-08 10:20:40 -07:00
board-4430sdp.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
board-am3517evm.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
board-apollon.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
board-cm-t35.c arm/omap: remove duplicated include 2010-10-08 10:23:14 -07:00
board-cm-t3517.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
board-devkit8000.c OMAP3: Keypad: Fix incorrect type initializer 2010-10-08 10:12:38 -07:00
board-flash.c OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
board-flash.h OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
board-generic.c OMAP2+: Kconfig: disallow builds for boards that don't use the currently-selected SoC 2010-10-08 11:40:17 -06:00
board-h4.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
board-igep0020.c omap3: Remove VMMC2 regulator on IGEP v2 2010-10-08 10:22:57 -07:00
board-igep0030.c omap3: Add minimal OMAP3 IGEP module support 2010-10-08 10:22:11 -07:00
board-ldp.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
board-n8x0.c OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
board-omap3beagle.c OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
board-omap3evm.c OMAP3: Keypad: Fix incorrect type initializer 2010-10-08 10:12:38 -07:00
board-omap3logic.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
board-omap3pandora.c omap: pandora: enable twl4030 charger 2010-10-01 16:35:25 -07:00
board-omap3stalker.c OMAP3: Keypad: Fix incorrect type initializer 2010-10-08 10:12:38 -07:00
board-omap3touchbook.c OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
board-omap4panda.c Merge branch 'control_mcbsp_fix_2.6.37' of git://git.pwsan.com/linux-2.6 into omap-for-linus 2010-10-08 11:10:36 -07:00
board-overo.c omap: mmc: extended to pass host capabilities from board file 2010-09-27 10:15:26 -07:00
board-rx51-peripherals.c OMAP3: Keypad: Fix incorrect type initializer 2010-10-08 10:12:38 -07:00
board-rx51-sdram.c OMAP: mach-omap2: Fix static declaration warnings 2010-10-08 09:57:40 -07:00
board-rx51-video.c OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
board-rx51.c omap3: Unify omap2_set_globals_3[43,6x]x functions 2010-08-04 14:43:18 +03:00
board-zoom-debugboard.c OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
board-zoom-peripherals.c Merge branch 'pm-hwmods' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into omap-for-linus 2010-10-08 10:20:40 -07:00
board-zoom2.c OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
board-zoom3.c OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
clkt2xxx_apll.c OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
clkt2xxx_dpllcore.c
clkt2xxx_osc.c
clkt2xxx_sys.c
clkt2xxx_virt_prcm_set.c OMAP2 clock: fix recursive spinlock attempt when CONFIG_CPU_FREQ=y 2010-05-20 12:31:14 -06:00
clkt34xx_dpll3m2.c
clkt_clksel.c OMAP2+ clock: clean up clkt_clksel.c 2010-05-20 12:31:06 -06:00
clkt_dpll.c
clock.c OMAP2+: clock: reduce the amount of standard debugging while disabling unused clocks 2010-10-08 11:40:20 -06:00
clock.h OMAP2+ clock: clean up clkt_clksel.c 2010-05-20 12:31:06 -06:00
clock2xxx.c
clock2xxx.h
clock3xxx.c
clock3xxx.h
clock3xxx_data.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
clock34xx.c
clock34xx.h
clock36xx.c
clock36xx.h
clock44xx.h
clock44xx_data.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
clock2420_data.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
clock2430.c
clock2430_data.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
clock3517.c
clock3517.h
clock_common_data.c OMAP3 clock: rename RATE_IN_343X, RATE_IN_3430ES2 to match reality 2010-05-20 12:31:07 -06:00
clockdomain.c OMAP clockdomain: initialize clockdomain registers when the clockdomain layer starts 2010-09-23 17:14:12 -07:00
clockdomains.h
clockdomains44xx.h OMAP4: PRM: Remove MPU internal code name and apply PRCM naming convention 2010-05-20 12:31:11 -06:00
cm-regbits-24xx.h OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
cm-regbits-34xx.h OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs 2010-09-29 12:43:00 -07:00
cm-regbits-44xx.h OMAP4: CM & PRM: Update PRCM register bitshifts and masks for ES2 2010-09-27 14:02:55 -06:00
cm.c OMAP24xx: CM: fix mask used for checking IDLEST status 2010-07-26 16:34:28 -06:00
cm.h OMAP4: hwmod & CM: Implement the omap4_cm_wait_module_ready function 2010-05-20 12:31:08 -06:00
cm4xxx.c OMAP4: PM: Declare idle modules as functional too 2010-09-24 10:23:18 -06:00
cm44xx.h OMAP4: PM: Define additional registers for ES2 2010-09-27 14:02:56 -06:00
common.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
control.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
control.h OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
cpuidle34xx.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
devices.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
dpll3xxx.c fix typos concerning "hierarchy" 2010-06-16 18:03:14 +02:00
emu.c
gpmc-nand.c omap3 nand: cleanup virtual address usages 2010-08-02 15:30:38 +03:00
gpmc-onenand.c
gpmc-smc91x.c
gpmc-smsc911x.c ARM: OMAP3LOGIC: Add generic smsc911x support when connected to GPMC 2010-09-28 11:39:18 -07:00
gpmc.c omap3 nand: cleanup virtual address usages 2010-08-02 15:30:38 +03:00
hsmmc.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
hsmmc.h omap: mmc: extended to pass host capabilities from board file 2010-09-27 10:15:26 -07:00
i2c.c omap: mux: Convert 2420 platform init code to use new mux code 2010-07-05 16:31:40 +03:00
id.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
io.c OMAP: plat-omap: Fix static function warnings 2010-10-08 10:12:38 -07:00
io.h OMAP: plat-omap: Fix static function warnings 2010-10-08 10:12:38 -07:00
iommu2.c omap iommu: move iommu_disable at fault to the above layer 2010-06-29 07:55:07 +03:00
irq.c OMAP: mach-omap2: Fix miscellaneous sparse warnings 2010-10-08 10:12:37 -07:00
Kconfig OMAP2+: Kconfig: disallow builds for boards that don't use the currently-selected SoC 2010-10-08 11:40:17 -06:00
mailbox.c arm: remove cast from void* 2010-09-28 09:54:28 -07:00
Makefile OMAP: split plat-omap/common.c 2010-10-08 11:40:19 -06:00
Makefile.boot
mcbsp.c OMAP: McBSP: Remove null omap44xx ops comment 2010-10-08 11:40:21 -06:00
mux.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
mux.h omap: Fix omap_mux_init_signal not to trash muxname 2010-10-01 16:35:24 -07:00
mux34xx.c OMAP: mach-omap2: Fix static declaration warnings 2010-10-08 09:57:40 -07:00
mux34xx.h
mux2420.c OMAP: mach-omap2: Fix static declaration warnings 2010-10-08 09:57:40 -07:00
mux2420.h omap: mux: Add data for 2420 2010-07-05 16:31:36 +03:00
mux2430.c OMAP: mach-omap2: Fix static declaration warnings 2010-10-08 09:57:40 -07:00
mux2430.h omap: mux: Add data for 2430 2010-07-05 16:31:36 +03:00
omap-headsmp.S omap4: Add smc API to read AuxCoreBoot0 register 2010-08-02 13:18:18 +03:00
omap-hotplug.c omap4: hotplug: Add basic CPU hotplug support 2010-08-02 13:18:19 +03:00
omap-iommu.c omap iommu: update ducati mmu irq define name 2010-06-29 07:55:08 +03:00
omap-smp.c omap: Fix sev instruction usage for multi-omap 2010-08-16 09:22:04 +03:00
omap4-common.c omap4: l2x0: Fix init parameter for es2.0 2010-09-24 11:30:18 +05:30
omap44xx-smc.S omap4: Add smc API to read AuxCoreBoot0 register 2010-08-02 13:18:18 +03:00
omap_hwmod.c omap: hwmod: Handle modules with 16bit registers 2010-10-08 10:23:22 -07:00
omap_hwmod_3xxx_data.c manual merge for pm-hwmod-uart due to conflicts 2010-10-01 13:24:10 -07:00
omap_hwmod_44xx_data.c manual merge for pm-hwmod-uart due to conflicts 2010-10-01 13:24:10 -07:00
omap_hwmod_2420_data.c manual merge for pm-hwmod-uart due to conflicts 2010-10-01 13:24:10 -07:00
omap_hwmod_2430_data.c manual merge for pm-hwmod-uart due to conflicts 2010-10-01 13:24:10 -07:00
omap_hwmod_common_data.c OMAP: hwmod data: add class for IVA hwmods 2010-07-26 16:34:31 -06:00
omap_hwmod_common_data.h OMAP: hwmod data: add class for IVA hwmods 2010-07-26 16:34:31 -06:00
opp2xxx.h
opp2420_data.c
opp2430_data.c
pm-debug.c OMAP: mach-omap2: Fix static declaration warnings 2010-10-08 09:57:40 -07:00
pm.c OMAP4: pm: Change l3_main to l3_main_1 during bus device init 2010-09-23 17:14:16 -07:00
pm.h OMAP: PM: Fix build when CONFIG_PM_DEBUG isn't set 2010-10-01 13:50:34 -07:00
pm24xx.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
pm34xx.c OMAP3: PM: fix scratchpad memory accesses for off-mode 2010-10-11 10:02:03 -07:00
pm44xx.c omap4: suspend: Add basic system suspend support 2010-08-02 13:18:18 +03:00
pm_bus.c OMAP2+: PM: initial runtime PM core support 2010-09-21 11:51:23 -07:00
powerdomain.c OMAP2: powerdomain: Add break in switch statement 2010-08-03 10:21:07 +03:00
powerdomains.h
powerdomains24xx.h
powerdomains34xx.h omap: 3630: disable TLL SAR on 3630 ES1 2010-08-04 14:43:52 +03:00
powerdomains44xx.h OMAP4: powerdomain: Update DSS logic state for ES2 2010-09-27 14:02:56 -06:00
prcm-common.h OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs 2010-09-29 12:43:00 -07:00
prcm.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
prm-regbits-24xx.h OMAP2 PRCM: convert OMAP2 PRCM macros to the _SHIFT/_MASK suffixes 2010-05-20 12:31:04 -06:00
prm-regbits-34xx.h OMAP3: PRCM: Consider UART4 for 3630 chip in prcm_setup_regs 2010-09-29 12:43:00 -07:00
prm-regbits-44xx.h OMAP4: CM & PRM: Update PRCM register bitshifts and masks for ES2 2010-09-27 14:02:55 -06:00
prm.h OMAP2/3: PRM: add module hard reset support 2010-09-21 15:12:40 -06:00
prm2xxx_3xxx.c OMAP2/3: PRM: add module hard reset support 2010-09-21 15:12:40 -06:00
prm44xx.c OMAP4: PRM: add module hard reset support 2010-09-21 15:12:21 -06:00
prm44xx.h OMAP4: PM: Define additional registers for ES2 2010-09-27 14:02:56 -06:00
sdram-hynix-h8mbx00u0mer-0em.h
sdram-micron-mt46h32m32lf-6.h
sdram-numonyx-m65kxxxxam.h
sdram-qimonda-hyb18m512160af-6.h
sdrc.c
sdrc.h
sdrc2xxx.c
serial.c omap: serial: Fix the boot-up crash/reboot without CONFIG_PM 2010-10-11 10:53:48 -07:00
sleep24xx.S
sleep34xx.S OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
sram34xx.S omap3: Prevent SDRC deadlock when L3 is changing frequency 2010-09-27 14:02:59 -06:00
sram242x.S
sram243x.S
timer-gp.c OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
timer-gp.h OMAP2plus: Fix static function warnings 2010-10-08 10:02:49 -07:00
timer-mpu.c
usb-ehci.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
usb-fs.c OMAP: control: move plat-omap/control.h to mach-omap2/control.h 2010-10-08 11:40:20 -06:00
usb-musb.c omap: mux: Remove old mux code 2010-07-05 16:31:40 +03:00
usb-tusb6010.c omap: mux: Convert 2420 platform init code to use new mux code 2010-07-05 16:31:40 +03:00