linux/arch/arm/mach-omap2
Mika Westerberg f2eeeae06a OMAP3: serial - fix bug introduced in
Commit f62349ee97 had side effect that
causes kernel to oops when we are suspending to ram:

	# echo mem > /sys/power/state

	WARNING: at kernel/irq/manage.c:858 __free_irq+0x90/0x174()
	Trying to free already-free IRQ 72
	Modules linked in:
	Backtrace:
	[<c00328d0>] (dump_backtrace+0x0/0x110) from [<c0347298>] (dump_stack+0x18/0x1c)
	 r7:dfd4be08 r6:c009505c r5:c03fbfd1 r4:0000035a
	[<c0347280>] (dump_stack+0x0/0x1c) from [<c005a408>] (warn_slowpath_common+0x50/0x68)
	[<c005a3b8>] (warn_slowpath_common+0x0/0x68) from [<c005a46c>] (warn_slowpath_fmt+0x30)
	 r7:c0474afc r6:00000048 r5:00000000 r4:c0474ac0
	[<c005a43c>] (warn_slowpath_fmt+0x0/0x38) from [<c009505c>] (__free_irq+0x90/0x174)
	 r3:00000048 r2:c03fc0ef
	[<c0094fcc>] (__free_irq+0x0/0x174) from [<c0095184>] (free_irq+0x44/0x64)
	[<c0095140>] (free_irq+0x0/0x64) from [<c0038100>] (omap_uart_enable_irqs+0x4c/0x90)
	 r7:c034d58c r6:00000003 r5:00000000 r4:c0463028
	[<c00380b4>] (omap_uart_enable_irqs+0x0/0x90) from [<c003d8f8>] (omap3_pm_begin+0x1c/0)
	 r5:00000003 r4:00000000
	[<c003d8dc>] (omap3_pm_begin+0x0/0x28) from [<c008d008>] (suspend_devices_and_enter+0x)
	[<c008cfd8>] (suspend_devices_and_enter+0x0/0x1dc) from [<c008d29c>] (enter_state+0xe8)
	 r5:c03f7f46 r4:00000000
	[<c008d1b4>] (enter_state+0x0/0x140) from [<c008c8e0>] (state_store+0x9c/0xc4)
	 r7:c034d58c r6:00000003 r5:00000003 r4:c03f7f46
	[<c008c844>] (state_store+0x0/0xc4) from [<c01cb2dc>] (kobj_attr_store+0x20/0x24)
	[<c01cb2bc>] (kobj_attr_store+0x0/0x24) from [<c0119420>] (sysfs_write_file+0x114/0x14)
	[<c011930c>] (sysfs_write_file+0x0/0x148) from [<c00cb298>] (vfs_write+0xb8/0x164)
	[<c00cb1e0>] (vfs_write+0x0/0x164) from [<c00cb408>] (sys_write+0x44/0x70)
	 r8:4001f000 r7:00000004 r6:df81bd00 r5:00000000 r4:00000000
	[<c00cb3c4>] (sys_write+0x0/0x70) from [<c002f040>] (ret_fast_syscall+0x0/0x38)
	 r8:c002f204 r7:00000004 r6:401fa5e8 r5:4001f000 r4:00000004

This is due the fact that uart_list list was populated in
omap_serial_early_init() and omap_uart_enable_irqs() went through this
list even when serial idle wasn't enabled for all uarts.

This patch moves the code that populates the uart_list and enables uart
clocks into omap_serial_init_port().

Signed-off-by: Mika Westerberg <ext-mika.1.westerberg@nokia.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
2009-12-16 12:44:04 -08:00
..
include/mach
board-2430sdp.c mfd: Rename twl4030* driver files to enable re-use 2009-12-13 20:05:51 +01:00
board-3430sdp.c mfd: Rename twl4030* driver files to enable re-use 2009-12-13 20:05:51 +01:00
board-3630sdp.c omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
board-4430sdp.c
board-am3517evm.c omap: mux: Add new style init functions to omap3 board-*.c files 2009-12-11 16:16:32 -08:00
board-apollon.c omap: use smc91x_platdata to setup smc91x 2009-12-11 16:16:33 -08:00
board-cm-t35.c mfd: twl: fix twl4030 rename for remaining driver, board files 2009-12-16 12:44:04 -08:00
board-generic.c
board-h4.c
board-igep0020.c mfd: twl: fix twl4030 rename for remaining driver, board files 2009-12-16 12:44:04 -08:00
board-ldp.c mfd: Rename twl4030* driver files to enable re-use 2009-12-13 20:05:51 +01:00
board-n8x0.c
board-omap3beagle.c mfd: Rename twl4030* driver files to enable re-use 2009-12-13 20:05:51 +01:00
board-omap3evm.c mfd: twl: fix twl4030 rename for remaining driver, board files 2009-12-16 12:44:04 -08:00
board-omap3pandora.c mfd: Rename twl4030* driver files to enable re-use 2009-12-13 20:05:51 +01:00
board-omap3touchbook.c mfd: twl: fix twl4030 rename for remaining driver, board files 2009-12-16 12:44:04 -08:00
board-overo.c mfd: Rename twl4030* driver files to enable re-use 2009-12-13 20:05:51 +01:00
board-rx51-peripherals.c mfd: twl: fix twl4030 rename for remaining driver, board files 2009-12-16 12:44:04 -08:00
board-rx51-sdram.c
board-rx51.c omap: mux: Remove old mux code for 34xx 2009-12-11 16:16:33 -08:00
board-zoom2.c omap: mux: Add new style init functions to omap3 board-*.c files 2009-12-11 16:16:32 -08:00
board-zoom3.c omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
board-zoom-debugboard.c
board-zoom-peripherals.c mfd: twl: fix twl4030 rename for remaining driver, board files 2009-12-16 12:44:04 -08:00
clock2xxx_data.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
clock2xxx.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
clock2xxx.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
clock34xx_data.c OMAP3 clock: convert clock34xx.h to clock34xx_data.c 2009-12-11 16:12:15 -07:00
clock34xx.c ARM: OMAP4: PM: Move DPLL control apis to dpll.c 2009-12-11 17:00:46 -07:00
clock34xx.h ARM: OMAP4: PM: Move DPLL control apis to dpll.c 2009-12-11 17:00:46 -07:00
clock44xx_data.c ARM: OMAP4: PM: Add init api for DPLL nodes 2009-12-11 17:00:47 -07:00
clock44xx.c ARM: OMAP4: PM: Add support for OMAP4 dpll api's 2009-12-11 17:00:46 -07:00
clock44xx.h ARM: OMAP4: PM: Move DPLL control apis to dpll.c 2009-12-11 17:00:46 -07:00
clock_common_data.c OMAP3 clock: convert clock34xx.h to clock34xx_data.c 2009-12-11 16:12:15 -07:00
clock.c ARM: OMAP4: PM: Add init api for DPLL nodes 2009-12-11 17:00:47 -07:00
clock.h ARM: OMAP4: PM: Add init api for DPLL nodes 2009-12-11 17:00:47 -07:00
clockdomain.c OMAP clockdomain/powerdomain: remove CONFIG_OMAP_DEBUG_{CLOCK,POWER}DOMAIN 2009-12-11 17:00:40 -07:00
clockdomains.h
cm4xxx.c
cm44xx.h ARM: OMAP4: PM: Adds CM1/2 register defs for OMAP4 2009-12-11 17:00:45 -07:00
cm-regbits-24xx.h
cm-regbits-34xx.h
cm-regbits-44xx.h ARM: OMAP4: PM: Adds CM1/2 register field masks 2009-12-11 17:00:45 -07:00
cm.c OMAP clock/hwmod: fix off-by-one errors 2009-12-11 17:00:43 -07:00
cm.h ARM: OMAP4: PM: Add dummy hooks for OMAP4 dpll api's 2009-12-11 17:00:46 -07:00
control.c
cpuidle34xx.c
devices.c omap: mux: Replace omap_cfg_reg() with new style signal or gpio functions 2009-12-11 16:16:32 -08:00
dpll.c ARM: OMAP4: PM: Add support for OMAP4 dpll api's 2009-12-11 17:00:46 -07:00
emu.c
gpmc-onenand.c
gpmc-smc91x.c omap: use smc91x_platdata to setup smc91x 2009-12-11 16:16:33 -08:00
gpmc.c ARM: OMAP4: PM: Add dummy hooks for OMAP4 dpll api's 2009-12-11 17:00:46 -07:00
i2c.c omap: Split i2c platform init for mach-omap1 and mach-omap2 2009-12-11 16:16:32 -08:00
id.c omap3: id code detection 3525 vs 3515 2009-12-11 16:16:37 -08:00
io.c omap: mux: Remove old mux code for 34xx 2009-12-11 16:16:33 -08:00
iommu2.c
irq.c
Kconfig omap3: Allow EHCI to be built on OMAP3 2009-12-15 10:34:12 -08:00
mailbox.c
Makefile omap3: Board file of Always Innovating OMAP3-based Touch Book 2009-12-11 16:16:34 -08:00
Makefile.boot
mcbsp.c
mmc-twl4030.c
mmc-twl4030.h
mux34xx.c omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
mux34xx.h omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
mux.c omap: mux: Remove old mux code for 34xx 2009-12-11 16:16:33 -08:00
mux.h omap: mux: Add 36xx CBP package support 2009-12-11 16:16:33 -08:00
omap3-iommu.c
omap_hwmod_34xx.h
omap_hwmod_2420.h
omap_hwmod_2430.h
omap_hwmod.c OMAP: hwmod: warn on missing clockdomain 2009-12-11 17:00:44 -07:00
omap-headsmp.S OMAP4: AuxCoreBoot registers only accessible in secure mode 2009-12-11 16:16:35 -08:00
omap-smp.c OMAP4: Remove the secondary wait loop 2009-12-11 16:16:35 -08:00
opp2xxx.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
opp2420_data.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
opp2430_data.c OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
pm24xx.c
pm34xx.c
pm-debug.c OMAP powerdomain/PM: use symbolic constants for the max number of power states 2009-12-11 17:00:41 -07:00
pm.h
powerdomain.c OMAP3: PM: Fix for MPU power domain MEM BANK position 2009-12-11 17:00:42 -07:00
powerdomains24xx.h
powerdomains34xx.h OMAP3: PM: Fix for MPU power domain MEM BANK position 2009-12-11 17:00:42 -07:00
powerdomains.h
prcm-common.h ARM: OMAP4: PM: Adds PRM register shift and mask bits 2009-12-11 17:00:45 -07:00
prcm.c ARM: OMAP4: PM: Fix the PRM and CM base addresses 2009-12-11 17:00:44 -07:00
prm44xx.h ARM: OMAP4: PM: Adds PRM register defs for OMAP4 2009-12-11 17:00:45 -07:00
prm-regbits-24xx.h
prm-regbits-34xx.h
prm-regbits-44xx.h ARM: OMAP4: PM: Adds PRM register shift and mask bits 2009-12-11 17:00:45 -07:00
prm.h ARM: OMAP4: PM: Adds PRM register defs for OMAP4 2009-12-11 17:00:45 -07:00
sdram-hynix-h8mbx00u0mer-0em.h
sdram-micron-mt46h32m32lf-6.h
sdram-qimonda-hyb18m512160af-6.h
sdrc2xxx.c
sdrc.c OMAP2: Add funcs for writing SMS_ROT_* registers 2009-12-09 11:44:32 +02:00
sdrc.h OMAP2 clock: convert clock24xx.h to clock2xxx_data.c, opp2xxx* 2009-12-11 16:16:00 -07:00
serial.c OMAP3: serial - fix bug introduced in 2009-12-16 12:44:04 -08:00
sleep24xx.S
sleep34xx.S
sram34xx.S OMAP3: SDRC: Place SDRC AC timing and MR changes in CORE DVFS SRAM code behind Kconfig 2009-12-11 17:00:42 -07:00
sram242x.S
sram243x.S
timer-gp.c
timer-mpu.c
usb-ehci.c omap: mux: Replace omap_cfg_reg() with new style signal or gpio functions 2009-12-11 16:16:32 -08:00
usb-musb.c
usb-tusb6010.c