Skip to contentSkip to conversation

ARM: OMAP2xxx: PM: fix OMAP2xxx-specific UART idle bug in v3.3

PATCH New Paul Walmsley 3 participants 3 messages Feb 10, 2012

Subsystems (5)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: OMAP2xxx: PM: fix OMAP2xxx-specific UART idle bug in v3.3

[ This patch is targeted for v3.3-rc ]

On OMAP2420-based systems, the PM code ignores the state of the UART functional clocks when determining what idle state to enter. This breaks the serial port now that the UART driver's clock behavior can be controlled via the PM autosuspend timeout.

To fix, remove the special-case idle handling for the UARTs in the OMAP2420/2430 PM idle code added by commit 4af4016c53f52b26461b8030211f8427a58fa5ed ("OMAP3: PM: UART: disable clocks when idle and off-mode support").

Tested on Nokia N800. This patch is a collaboration between Tony Lindgren <[email protected]> and Paul Walmsley <[email protected]>.

Cc Kevin Hilman <[email protected]>
Cc Tony Lindgren <[email protected]>
---
 arch/arm/mach-omap2/pm24xx.c |    8 +-------
 1 files changed, 1 insertions(+), 7 deletions(-)
arch/arm/mach-omap2/pm24xx.c +1 -7
index b8822f8..23de98d 100644
@@ -82,13 +82,7 @@ static int omap2_fclks_active(void)
 	f1 = omap2_cm_read_mod_reg(CORE_MOD, CM_FCLKEN1);
 	f2 = omap2_cm_read_mod_reg(CORE_MOD, OMAP24XX_CM_FCLKEN2);
 
-	/* Ignore UART clocks.  These are handled by UART core (serial.c) */
-	f1 &= ~(OMAP24XX_EN_UART1_MASK | OMAP24XX_EN_UART2_MASK);
-	f2 &= ~OMAP24XX_EN_UART3_MASK;
-
-	if (f1 | f2)
-		return 1;
-	return 0;
+	return (f1 | f2) ? 1 : 0;
 }
 
 static void omap2_enter_full_retention(void)
Signature · 1 line
1.7.9
maintainer
#1 lore raw

PATCH 1/1 ARM: OMAP2xxx: PM: fix OMAP2xxx-specific UART idle bug in v3.3

Quoted 8 lines · Paul Walmsley

[ This patch is targeted for v3.3-rc ]

On OMAP2420-based systems, the PM code ignores the state of the UART functional clocks when determining what idle state to enter. This breaks the serial port now that the UART driver's clock behavior can be controlled via the PM autosuspend timeout.

Quoted 7 lines

To fix, remove the special-case idle handling for the UARTs in the OMAP2420/2430 PM idle code added by commit 4af4016c53f52b26461b8030211f8427a58fa5ed ("OMAP3: PM: UART: disable clocks when idle and off-mode support").

Tested on Nokia N800. This patch is a collaboration between Tony Lindgren <[email protected]> and Paul Walmsley <[email protected]>.

Glad to see this piece of code finally gone with runtime PM :)

Applying into fixes.

Regards,

Tony

#2 lore raw

PATCH 1/1 ARM: OMAP2xxx: PM: fix OMAP2xxx-specific UART idle bug in v3.3

In reply to Paul Walmsley
Quoted 12 lines · Paul Walmsley

[ This patch is targeted for v3.3-rc ]

On OMAP2420-based systems, the PM code ignores the state of the UART functional clocks when determining what idle state to enter. This breaks the serial port now that the UART driver's clock behavior can be controlled via the PM autosuspend timeout.

To fix, remove the special-case idle handling for the UARTs in the OMAP2420/2430 PM idle code added by commit 4af4016c53f52b26461b8030211f8427a58fa5ed ("OMAP3: PM: UART: disable clocks when idle and off-mode support").

Quoted 6 lines

Tested on Nokia N800. This patch is a collaboration between Tony Lindgren <[email protected]> and Paul Walmsley <[email protected]>.

Cc Kevin Hilman <[email protected]>
Cc Tony Lindgren <[email protected]>