From mboxrd@z Thu Jan 1 00:00:00 1970 From: Russell King - ARM Linux Subject: Re: [RFT/PATCH] serial: omap: prevent resume if device is not suspended. Date: Tue, 25 Sep 2012 09:30:29 +0100 Message-ID: <20120925083029.GG31374@n2100.arm.linux.org.uk> References: <1347972050-3509-1-git-send-email-sourav.poddar@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-omap-owner@vger.kernel.org To: "Poddar, Sourav" Cc: gregkh@linuxfoundation.org, khilman@ti.com, paul@pwsan.com, tony@atomide.com, linux-kernel@vger.kernel.org, balbi@ti.com, santosh.shilimkar@ti.com, linux-serial@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org, alan@linux.intel.com List-Id: linux-serial@vger.kernel.org On Tue, Sep 25, 2012 at 01:52:03PM +0530, Poddar, Sourav wrote: > Hi Greg, > > Ping on this? > > On Tue, Sep 18, 2012 at 6:10 PM, Sourav Poddar wrote: > > Greg's tty-next is not booting on 2420 based N800. The failure is > > observed at serial init itself. The reason might be that n800 tries to > > resume even though it is not suspended before. How is this happening? I think that needs proper investigation - or if it's had more investigation, then the results needs to be included in the commit description so that everyone can understand the issue here. We should not be resuming a device which hasn't been suspended. Maybe the runtime PM enable sequence is wrong, and that's what should be fixed instead? This sequence in the probe() function: pm_runtime_irq_safe(&pdev->dev); pm_runtime_enable(&pdev->dev); pm_runtime_get_sync(&pdev->dev); would enable runtime PM while the s/w state indicates that it's disabled, and then that pm_runtime_get_sync() will want to resume the device. See the section "5. Runtime PM Initialization, Device Probing and Removal" in Documentation/power/runtime_pm.txt, specifically the second paragraph of that section.