From: Kevin Hilman <khilman@deeprootsystems.com>
To: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Sourav <sourav.poddar@ti.com>, Paul Walmsley <paul@pwsan.com>,
Felipe Balbi <balbi@ti.com>,
gregkh@linuxfoundation.org, tony@atomide.com,
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: Fri, 12 Oct 2012 13:32:34 -0700 [thread overview]
Message-ID: <87lifbwhwd.fsf@deeprootsystems.com> (raw)
In-Reply-To: <20121012185426.GS28061@n2100.arm.linux.org.uk> (Russell King's message of "Fri, 12 Oct 2012 19:54:26 +0100")
Russell King - ARM Linux <linux@arm.linux.org.uk> writes:
> On Fri, Oct 12, 2012 at 10:59:22AM -0700, Kevin Hilman wrote:
>> Russell King - ARM Linux <linux@arm.linux.org.uk> writes:
>>
>> > On Fri, Oct 12, 2012 at 09:35:54AM -0700, Kevin Hilman wrote:
>> >> Sourav <sourav.poddar@ti.com> writes:
>> >> > diff --git a/drivers/tty/serial/omap-serial.c
>> >> > b/drivers/tty/serial/omap-serial.c
>> >> > index 6ede6fd..3fbc7f7 100644
>> >> > --- a/drivers/tty/serial/omap-serial.c
>> >> > +++ b/drivers/tty/serial/omap-serial.c
>> >> > @@ -1414,6 +1414,7 @@ static int __devinit serial_omap_probe(struct
>> >> > platform_device *pdev)
>> >> > INIT_WORK(&up->qos_work, serial_omap_uart_qos_work);
>> >> >
>> >> > platform_set_drvdata(pdev, up);
>> >> > + pm_runtime_set_active(&pdev->dev);
>> >>
>> >> NAK.
>> >>
>> >> This will obviously break platforms where the UARTs are not active
>> >> before driver loads.
>> >
>> > I thought I had proposed a solution for this issue, which was this
>> > sequence:
>> >
>> > omap_device_enable(dev);
>> > pm_runtime_set_active(dev);
>> > pm_runtime_enable(dev);
>> >
>> > Yes, I can understand people not liking the omap_device_enable()
>> > there, but I also notice that the email suggesting that never got a
>> > reply either - not even a "I tried this and it doesn't work" or "it
>> > does work".
>>
>> Yes, that solution would work (though I didn't actually try it.)
>>
>> However, we can't use omap_device_enable() in the driver. We're trying
>> to clean all the drivers of OMAP-specific APIs. That being said,
>> something similar could be done in the device/board init code to ensure
>> the UART HW is in the state that the driver is expecting it, but again,
>> that would just mask the real problem which is that a (re)init of the
>> console UART on 2420/n800 is causing output to disappear.
>
> See my more expansive suggestion just posted.
>
> Whatever way, this discrepancy between runtime PM state and actual device
> state is what is biting you, and it is that which needs fixing.
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.
Kevin
WARNING: multiple messages have this Message-ID (diff)
From: khilman@deeprootsystems.com (Kevin Hilman)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFT/PATCH] serial: omap: prevent resume if device is not suspended.
Date: Fri, 12 Oct 2012 13:32:34 -0700 [thread overview]
Message-ID: <87lifbwhwd.fsf@deeprootsystems.com> (raw)
In-Reply-To: <20121012185426.GS28061@n2100.arm.linux.org.uk> (Russell King's message of "Fri, 12 Oct 2012 19:54:26 +0100")
Russell King - ARM Linux <linux@arm.linux.org.uk> writes:
> On Fri, Oct 12, 2012 at 10:59:22AM -0700, Kevin Hilman wrote:
>> Russell King - ARM Linux <linux@arm.linux.org.uk> writes:
>>
>> > On Fri, Oct 12, 2012 at 09:35:54AM -0700, Kevin Hilman wrote:
>> >> Sourav <sourav.poddar@ti.com> writes:
>> >> > diff --git a/drivers/tty/serial/omap-serial.c
>> >> > b/drivers/tty/serial/omap-serial.c
>> >> > index 6ede6fd..3fbc7f7 100644
>> >> > --- a/drivers/tty/serial/omap-serial.c
>> >> > +++ b/drivers/tty/serial/omap-serial.c
>> >> > @@ -1414,6 +1414,7 @@ static int __devinit serial_omap_probe(struct
>> >> > platform_device *pdev)
>> >> > INIT_WORK(&up->qos_work, serial_omap_uart_qos_work);
>> >> >
>> >> > platform_set_drvdata(pdev, up);
>> >> > + pm_runtime_set_active(&pdev->dev);
>> >>
>> >> NAK.
>> >>
>> >> This will obviously break platforms where the UARTs are not active
>> >> before driver loads.
>> >
>> > I thought I had proposed a solution for this issue, which was this
>> > sequence:
>> >
>> > omap_device_enable(dev);
>> > pm_runtime_set_active(dev);
>> > pm_runtime_enable(dev);
>> >
>> > Yes, I can understand people not liking the omap_device_enable()
>> > there, but I also notice that the email suggesting that never got a
>> > reply either - not even a "I tried this and it doesn't work" or "it
>> > does work".
>>
>> Yes, that solution would work (though I didn't actually try it.)
>>
>> However, we can't use omap_device_enable() in the driver. We're trying
>> to clean all the drivers of OMAP-specific APIs. That being said,
>> something similar could be done in the device/board init code to ensure
>> the UART HW is in the state that the driver is expecting it, but again,
>> that would just mask the real problem which is that a (re)init of the
>> console UART on 2420/n800 is causing output to disappear.
>
> See my more expansive suggestion just posted.
>
> Whatever way, this discrepancy between runtime PM state and actual device
> state is what is biting you, and it is that which needs fixing.
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.
Kevin
next prev parent reply other threads:[~2012-10-12 20:32 UTC|newest]
Thread overview: 73+ 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 12:40 ` Sourav Poddar
2012-09-18 12:40 ` Sourav Poddar
2012-09-18 14:02 ` Felipe Balbi
2012-09-18 14:02 ` Felipe Balbi
2012-09-18 22:57 ` Paul Walmsley
2012-09-18 22:57 ` Paul Walmsley
2012-09-19 11:52 ` Grazvydas Ignotas
2012-09-19 11:52 ` Grazvydas Ignotas
2012-09-19 11:52 ` Grazvydas Ignotas
2012-09-19 11:59 ` Felipe Balbi
2012-09-19 11:59 ` Felipe Balbi
2012-09-25 12:29 ` Jassi Brar
2012-09-25 12:29 ` Jassi Brar
2012-09-25 8:22 ` Poddar, Sourav
2012-09-25 8:22 ` Poddar, Sourav
2012-09-25 8:30 ` Russell King - ARM Linux
2012-09-25 8:30 ` Russell King - ARM Linux
2012-09-25 8:31 ` Felipe Balbi
2012-09-25 8:31 ` Felipe Balbi
2012-09-25 9:12 ` Russell King - ARM Linux
2012-09-25 9:12 ` Russell King - ARM Linux
2012-09-25 9:11 ` Felipe Balbi
2012-09-25 9:11 ` Felipe Balbi
2012-09-25 9:21 ` Russell King - ARM Linux
2012-09-25 9:21 ` Russell King - ARM Linux
2012-09-25 9:48 ` Felipe Balbi
2012-09-25 9:48 ` Felipe Balbi
2012-09-25 10:29 ` Russell King - ARM Linux
2012-09-25 10:29 ` Russell King - ARM Linux
2012-09-25 10:37 ` Felipe Balbi
2012-09-25 10:37 ` Felipe Balbi
2012-09-25 11:07 ` Russell King - ARM Linux
2012-09-25 11:07 ` Russell King - ARM Linux
2012-09-25 11:12 ` Felipe Balbi
2012-09-25 11:12 ` Felipe Balbi
2012-09-25 11:32 ` Russell King - ARM Linux
2012-09-25 11:32 ` Russell King - ARM Linux
2012-09-25 9:56 ` Poddar, Sourav
2012-09-25 9:56 ` Poddar, Sourav
2012-09-25 10:59 ` Russell King - ARM Linux
2012-09-25 10:59 ` Russell King - ARM Linux
2012-10-03 0:33 ` Kevin Hilman
2012-10-03 0:33 ` Kevin Hilman
2012-10-03 0:33 ` Kevin Hilman
2012-10-11 18:28 ` Paul Walmsley
2012-10-11 18:28 ` Paul Walmsley
2012-10-12 16:24 ` Sourav
2012-10-12 16:24 ` Sourav
2012-10-12 16:24 ` Sourav
2012-10-12 16:35 ` Kevin Hilman
2012-10-12 16:35 ` Kevin Hilman
2012-10-12 16:35 ` Kevin Hilman
2012-10-12 16:42 ` Russell King - ARM Linux
2012-10-12 16:42 ` Russell King - ARM Linux
2012-10-12 17:29 ` Poddar, Sourav
2012-10-12 17:29 ` Poddar, Sourav
2012-10-12 18:49 ` Russell King - ARM Linux
2012-10-12 18:49 ` Russell King - ARM Linux
2012-10-12 17:59 ` Kevin Hilman
2012-10-12 17:59 ` Kevin Hilman
2012-10-12 18:54 ` Russell King - ARM Linux
2012-10-12 18:54 ` Russell King - ARM Linux
2012-10-12 20:32 ` Kevin Hilman [this message]
2012-10-12 20:32 ` Kevin Hilman
2012-10-12 21:51 ` Tony Lindgren
2012-10-12 21:51 ` Tony Lindgren
2012-10-15 22:37 ` Kevin Hilman
2012-10-15 22:37 ` Kevin Hilman
2012-09-25 11:15 ` Russell King - ARM Linux
2012-09-25 11:15 ` Russell King - ARM Linux
2012-09-26 20:30 ` Greg KH
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=87lifbwhwd.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.