Re: OMAP34xx

Russell King - ARM Linux
2012-02-04T23:14:45Z

Here's another problem to add to the list:

2fd149645eb46d26130d7070c6de037dddf34880 totally screws serial on
OMAP3430 - and by that I mean running the port at 115200 baud causes
a simple 'dmesg' output to take 5+ minutes to output in 16 character
blocks every two seconds.

This fixes it in so far as it effectively reverts that change (the
change itself won't revert cleanly), but it's far from nice.

diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c
index 464cffd..1e9256c 100644
--- a/arch/arm/mach-omap2/cpuidle34xx.c
+++ b/arch/arm/mach-omap2/cpuidle34xx.c
@@ -259,6 +259,8 @@ static int omap3_enter_idle_bm(struct cpuidle_device *dev,
struct omap3_idle_statedata *cx;
int ret;

+ { new_state_idx = drv->safe_state_index; goto select_state; }
+
/*
* Prevent idle completely if CAM is active.
* CAM does not have wakeup capability in OMAP3.
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index b77df73..4b76c4c 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -420,7 +420,7 @@ static void omap3_pm_idle(void)
{
local_fiq_disable();

- if (omap_irq_pending())
+ if (omap_irq_pending() || 1)
goto out;

trace_power_start(POWER_CSTATE, 1, smp_processor_id());