linux-serial.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@deeprootsystems.com>
To: Tony Lindgren <tony@atomide.com>
Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>,
	Sourav <sourav.poddar@ti.com>, Paul Walmsley <paul@pwsan.com>,
	Felipe Balbi <balbi@ti.com>,
	gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
	santosh.shilimkar@ti.com, linux-serial@vger.kernel.org,
	linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	alan@linux.intel.com
Subject: Re: [RFT/PATCH] serial: omap: prevent resume if device is not suspended.
Date: Mon, 15 Oct 2012 15:37:17 -0700	[thread overview]
Message-ID: <87391fs6oy.fsf@deeprootsystems.com> (raw)
In-Reply-To: <20121012215156.GL30339@atomide.com> (Tony Lindgren's message of "Fri, 12 Oct 2012 14:51:56 -0700")

Tony Lindgren <tony@atomide.com> writes:

> * Kevin Hilman <khilman@deeprootsystems.com> [121012 13:34]:
>>
>> I'm not conviced (yet) that a mismatch is the root cause.  Yes, that's
>> what the author of $SUBJECT patch assumed and stated, but I'm not
>> pursuaded.  
>> 
>> If it's an improperly configured mux issue, then the UART will break
>> whenever the device is actually omap_device_enable'd, whether in the
>> driver or in the bus layer.
>
> I tried booting n800 here with CONFIG_OMAP_MUX disabled, and no
> change. Serial console output stops right when the console initializes.

OK, since it's not mux, and since those who actually maintain this
driver don't seem to be taking care of this, I did some digging today.

Russell is right.  It's a mismatch between assumed runtime PM state
(disabled) and actual HW state.

During init, all omap_devices are idled by default, so that they are
correctly in the state that the runtime PM framework will later expect
them to be.  That is, all devices *except* the console UART.  For that
one, we use the special hwmod flag to not idle/reset the UART since that
will cause problems during earlyprintk usage, and the switch between
the earlyprintk console and the real console driver.

Since the console uart was left enabled during init, it needs to be
fully enabled and the runtime PM status set accordingly.

The patch below does this, and works fine on 2420/n810, as well as on
3530/Overo, 3730/OveroSTORM, 3730/Beagle-XM and 4430/PandaES.

Will send patch with a proper changelog shortly,

Kevin

diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index 0405c81..37b5dbe 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -327,6 +327,11 @@ void __init omap_serial_init_port(struct omap_board_data *bdata,
 	if ((console_uart_id == bdata->id) && no_console_suspend)
 		omap_device_disable_idle_on_suspend(pdev);
 
+	if (console_uart_id == bdata->id) {
+		omap_device_enable(pdev);
+		pm_runtime_set_active(&pdev->dev);
+	}
+
 	oh->mux = omap_hwmod_mux_init(bdata->pads, bdata->pads_cnt);
 
 	oh->dev_attr = uart;

  reply	other threads:[~2012-10-15 22:37 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-18 12:40 [RFT/PATCH] serial: omap: prevent resume if device is not suspended Sourav Poddar
2012-09-18 14:02 ` Felipe Balbi
2012-09-18 22:57   ` Paul Walmsley
2012-09-19 11:52   ` Grazvydas Ignotas
2012-09-19 11:59     ` Felipe Balbi
2012-09-25 12:29       ` Jassi Brar
2012-09-25  8:22 ` Poddar, Sourav
2012-09-25  8:30   ` Russell King - ARM Linux
2012-09-25  8:31     ` Felipe Balbi
2012-09-25  9:12       ` Russell King - ARM Linux
2012-09-25  9:11         ` Felipe Balbi
2012-09-25  9:21           ` Russell King - ARM Linux
2012-09-25  9:48             ` Felipe Balbi
2012-09-25 10:29               ` Russell King - ARM Linux
2012-09-25 10:37                 ` Felipe Balbi
2012-09-25 11:07                   ` Russell King - ARM Linux
2012-09-25 11:12                     ` Felipe Balbi
2012-09-25 11:32                       ` Russell King - ARM Linux
2012-09-25  9:56             ` Poddar, Sourav
2012-09-25 10:59               ` Russell King - ARM Linux
2012-10-03  0:33               ` Kevin Hilman
2012-10-11 18:28                 ` Paul Walmsley
2012-10-12 16:24                   ` Sourav
2012-10-12 16:35                     ` Kevin Hilman
2012-10-12 16:42                       ` Russell King - ARM Linux
2012-10-12 17:29                         ` Poddar, Sourav
2012-10-12 18:49                           ` Russell King - ARM Linux
2012-10-12 17:59                         ` Kevin Hilman
2012-10-12 18:54                           ` Russell King - ARM Linux
2012-10-12 20:32                             ` Kevin Hilman
2012-10-12 21:51                               ` Tony Lindgren
2012-10-15 22:37                                 ` Kevin Hilman [this message]
2012-09-25 11:15           ` Russell King - ARM Linux
2012-09-26 20:30   ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87391fs6oy.fsf@deeprootsystems.com \
    --to=khilman@deeprootsystems.com \
    --cc=alan@linux.intel.com \
    --cc=balbi@ti.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=paul@pwsan.com \
    --cc=santosh.shilimkar@ti.com \
    --cc=sourav.poddar@ti.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).