From: Tony Lindgren <tony@atomide.com>
To: Johan Hovold <johan@kernel.org>
Cc: "Maximilian Luz" <luzmaximilian@gmail.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Jiri Slaby" <jirislaby@kernel.org>,
"Andy Shevchenko" <andriy.shevchenko@intel.com>,
"Dhruva Gole" <d-gole@ti.com>,
"Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>,
"John Ogness" <john.ogness@linutronix.de>,
"Sebastian Andrzej Siewior" <bigeasy@linutronix.de>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
linux-omap@vger.kernel.org,
"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org
Subject: Re: [PATCH v12 1/1] serial: core: Start managing serial controllers to enable runtime PM
Date: Wed, 4 Oct 2023 13:01:23 +0300 [thread overview]
Message-ID: <20231004100123.GH34982@atomide.com> (raw)
In-Reply-To: <ZR0s7dEh19lTid6-@hovoldconsulting.com>
* Johan Hovold <johan@kernel.org> [231004 09:14]:
> On Wed, Oct 04, 2023 at 12:03:20PM +0300, Tony Lindgren wrote:
> > The serial port device and serdev device are siblings of the physical
> > serial port controller device as seen in the hierarcy printed out by
> > Maximilian.
>
> Yeah, and that's precisely the broken part. Keeping the serdev
> controller active is supposed to keep the serial controller active. Your
> serial core rework appears to have broken just that.
Hmm OK good point, tx can currently have an extra delay if a serdev
device is active, and the serial port controller device is not active.
So we can check for active port->dev instead of &port_dev->dev though
to know when when start_tx() is safe to do as below.
Thanks.
Tony
8< -----------------
diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
index 6207f0051f23d..defecc5b04422 100644
--- a/drivers/tty/serial/serial_core.c
+++ b/drivers/tty/serial/serial_core.c
@@ -156,7 +156,7 @@ static void __uart_start(struct uart_state *state)
* enabled, serial_port_runtime_resume() calls start_tx() again
* after enabling the device.
*/
- if (pm_runtime_active(&port_dev->dev))
+ if (!pm_runtime_enabled(port->dev) || pm_runtime_active(port->dev))
port->ops->start_tx(port);
pm_runtime_mark_last_busy(&port_dev->dev);
pm_runtime_put_autosuspend(&port_dev->dev);
next prev parent reply other threads:[~2023-10-04 10:01 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <CGME20230601110030eucas1p2eed547c326a51a6110100fb50799d136@eucas1p2.samsung.com>
2023-05-25 11:30 ` [PATCH v12 1/1] serial: core: Start managing serial controllers to enable runtime PM Tony Lindgren
2023-05-27 8:25 ` Andy Shevchenko
2023-05-30 14:43 ` Greg Kroah-Hartman
2023-06-01 10:04 ` Steven Price
2023-06-01 10:44 ` Tony Lindgren
2023-06-01 10:53 ` Steven Price
2023-06-01 10:57 ` Tony Lindgren
2023-06-01 11:00 ` Marek Szyprowski
2023-06-01 11:11 ` Tony Lindgren
2023-06-01 13:20 ` Tony Lindgren
2023-06-01 14:16 ` Marek Szyprowski
2023-06-01 14:20 ` Tony Lindgren
2023-06-02 8:33 ` Chen-Yu Tsai
2023-06-02 9:27 ` Tony Lindgren
2023-06-02 10:13 ` John Ogness
2023-06-03 5:41 ` Tony Lindgren
2023-06-03 6:35 ` Tony Lindgren
2023-06-05 6:15 ` Tony Lindgren
2023-06-05 11:28 ` Andy Shevchenko
2023-06-05 12:25 ` Tony Lindgren
2023-06-05 11:34 ` Chen-Yu Tsai
2023-06-05 12:24 ` Tony Lindgren
2023-06-05 13:01 ` Chen-Yu Tsai
2023-06-05 13:18 ` Tony Lindgren
2023-06-06 9:16 ` Chen-Yu Tsai
2023-06-06 12:20 ` Tony Lindgren
2023-06-07 4:46 ` Chen-Yu Tsai
2023-06-07 7:17 ` AngeloGioacchino Del Regno
2023-06-07 20:20 ` Andy Shevchenko
2023-06-03 21:57 ` Sebastian Reichel
2023-06-04 6:04 ` Tony Lindgren
2023-06-05 3:04 ` Chen-Yu Tsai
2023-10-03 11:57 ` Maximilian Luz
2023-10-03 12:14 ` Tony Lindgren
2023-10-03 12:21 ` Tony Lindgren
2023-10-03 22:09 ` Maximilian Luz
2023-10-04 6:17 ` Tony Lindgren
2023-10-04 7:14 ` Johan Hovold
2023-10-04 9:03 ` Tony Lindgren
2023-10-04 9:14 ` Johan Hovold
2023-10-04 10:01 ` Tony Lindgren [this message]
2023-10-04 18:44 ` Maximilian Luz
2023-10-04 7:39 ` Maximilian Luz
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=20231004100123.GH34982@atomide.com \
--to=tony@atomide.com \
--cc=andriy.shevchenko@intel.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bigeasy@linutronix.de \
--cc=d-gole@ti.com \
--cc=gregkh@linuxfoundation.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=jirislaby@kernel.org \
--cc=johan@kernel.org \
--cc=john.ogness@linutronix.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-serial@vger.kernel.org \
--cc=luzmaximilian@gmail.com \
--cc=vigneshr@ti.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.