OMAP2+: PM/serial: hold console semaphore while OMAP UARTs are disabled
paul at pwsan.com
Fri Dec 3 20:10:49 EST 2010
On Thu, 2 Dec 2010, Jean Pihet wrote:
> On Thu, Dec 2, 2010 at 8:23 AM, Paul Walmsley <paul at pwsan.com> wrote:
> > On Thu, 25 Nov 2010, Jean Pihet wrote:
> >> On Thu, Nov 25, 2010 at 6:35 PM, Paul Walmsley <paul at pwsan.com> wrote:
> >> > On Thu, 25 Nov 2010, Jean Pihet wrote:
> >> >> On Thu, Nov 25, 2010 at 12:49 AM, Paul Walmsley <paul at pwsan.com> wrote:
> >> >> >
> >> >> > The console semaphore must be held while the OMAP UART devices are
> >> >> > disabled, lest a console write cause an ARM abort (and a kernel crash)
> >> >> > when the underlying console device is inaccessible. These crashes
> >> >> > only occur when the console is on one of the OMAP internal serial
> >> >> > ports.
> >> >> This does not fix the issue for me on Beagle (console on ttyO2).
> >> >>
> >> >> Doing:
> >> >> / # echo 5 > /sys/devices/platform/omap/omap-hsuart.0/sleep_timeout
> >> >> / # echo 5 > /sys/devices/platform/omap/omap-hsuart.1/sleep_timeout
> >> >> / # echo 5 > /sys/devices/platform/omap/omap-hsuart.2/sleep_timeout
> >> >> and waiting 5 seconds hangs the console.
> >> >
> >> > By the way, you write that the above situation "hangs the console." Is it
> >> > just the case that the console dies and the rest of the system is still
> >> > alive, or does the whole system crash?
> >> The console hangs, the rest of the system still runs.
> > Just out of curiosity, if you send a few breaks to the OMAP over serial,
> > does that cause the console to pay attention again? CTRL-A F in minicom.
> Yes it helps. In most cases sending 2-3 breaks resumes the UART console.
Could you try enabling DSS in your .config? I applied the following to my
omap2plus_defconfig after make oldnoconfig, and the console is now working
again for me.
Hopefully adding DSS hwmod stuff will fix this...
--- .config 2010-12-03 18:05:31.661889255 -0700
+++ .config.sleep.working 2010-12-03 18:03:57.733918058 -0700
@@ -1,7 +1,7 @@
# Automatically generated make config: don't edit
# Linux/arm 2.6.37-rc4 Kernel Configuration
-# Fri Dec 3 18:05:31 2010
+# Fri Dec 3 18:00:21 2010
@@ -1465,9 +1465,28 @@
# CONFIG_FB_METRONOME is not set
# CONFIG_FB_MB862XX is not set
# CONFIG_FB_BROADSHEET is not set
-# CONFIG_FB_OMAP is not set
-# CONFIG_OMAP2_DSS is not set
+# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
+# CONFIG_OMAP2_DSS_RFBI is not set
+# CONFIG_OMAP2_DSS_SDI is not set
+# CONFIG_OMAP2_DSS_DSI is not set
+# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
+# CONFIG_FB_OMAP2 is not set
+# OMAP2/3 Display Device Drivers
+# CONFIG_PANEL_GENERIC is not set
+# CONFIG_PANEL_SHARP_LS037V7DW01 is not set
+# CONFIG_PANEL_SHARP_LQ043T1DG01 is not set
+# CONFIG_PANEL_TOPPOLY_TDO35S is not set
+# CONFIG_PANEL_TPO_TD043MTEA1 is not set
# CONFIG_LCD_L4F00242T03 is not set
More information about the linux-arm-kernel