devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johan Hovold <johan@kernel.org>
To: Tony Lindgren <tony@atomide.com>
Cc: Johan Hovold <johan@kernel.org>,
	Sebastian Reichel <sre@kernel.org>,
	"H. Nikolaus Schaller" <hns@goldelico.com>,
	Andreas Kemnade <andreas@kemnade.info>,
	Mark Rutland <mark.rutland@arm.com>,
	Arnd Bergmann <arnd@arndb.de>, Pavel Machek <pavel@ucw.cz>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
	<devicetree@vger.kernel.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Rob Herring <robh+dt@kernel.org>,
	linux-serial@vger.kernel.org, linux-pm@vger.kernel.org
Subject: Re: Serdev runtime PM (was: Re: [PATCH 4/7] dt-bindings: gnss: add u-blox binding)
Date: Thu, 17 May 2018 12:25:02 +0200	[thread overview]
Message-ID: <20180517102502.GJ30172@localhost> (raw)
In-Reply-To: <20180509140550.GC98604@atomide.com>

On Wed, May 09, 2018 at 07:05:50AM -0700, Tony Lindgren wrote:
> * Johan Hovold <johan@kernel.org> [180509 09:20]:
> > On Tue, May 08, 2018 at 05:56:08PM +0200, Sebastian Reichel wrote:
> > > I think using open/close for runtime pm is good enough for GPS,
> > > since it regularly sends data and draws lots of power anyways.
> > > But devices, that have an out-of-band wakeup signal can do proper
> > > runtime PM of the serial port without loosing characters.
> > 
> > Yeah, there may be some applications where this is possible. And this is
> > not the case for GPS, but not just because of a generally higher power
> > consumption, but due to the fact that we cannot afford having the first
> > message in every report burst be dropped.
> 
> Well most of the phone implementations use one or two out of band
> GPIOs to first wake the UART before any data is sent. For serdev
> this can be called from the serdev consumer write function for TX.
> For RX, the serdev consumer needs to implement an interrupt handler
> and wake up the parent UART before serdev RX.

Right, but the client driver would then wake the parent controller when
expecting RX, while waking its own (serial-attached) device when wanting
to do TX.

Just for the record, we also cleared this up here:

	https://marc.info/?l=linux-kernel&m=152604434504868&w=2

> > > Note, that OMAP does not reach deep idle states with active
> > > serial port. This is not acceptable for low power devices.
> > 
> > Sure, but note that OMAP is the only serial driver which currently
> > implements this kind of aggressive runtime PM (besides a couple of
> > usb-serial drivers). This means that a serdev driver can never rely on
> > this being the case, and therefore needs to be restrictive about how
> > long the port is kept open if it cares about power at all.
> 
> Well by default we don't allow lossy UART. It needs to be manually
> configured via /sys for the timeout. With serdev, this can all be
> done with no /sys configuration needed for the cases with GPIO
> wake irqs :)

Indeed, but serdev client drivers must also work with serial drivers
which do not implement this kind of aggressive runtime PM, and then the
only way to save power is to close the port when not in use.

Thanks,
Johan

  reply	other threads:[~2018-05-17 10:25 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-24 16:34 [PATCH 0/7] gnss: add new GNSS subsystem Johan Hovold
2018-04-24 16:34 ` [PATCH 1/7] gnss: add GNSS receiver subsystem Johan Hovold
2018-04-25  8:56   ` Greg Kroah-Hartman
2018-04-25 10:56     ` Johan Hovold
2018-04-25 12:23       ` Johan Hovold
2018-04-29 13:35         ` Greg Kroah-Hartman
2018-05-02  7:57           ` Johan Hovold
2018-04-24 16:34 ` [PATCH 2/7] dt-bindings: add generic gnss binding Johan Hovold
2018-04-25 18:26   ` Rob Herring
2018-04-24 16:34 ` [PATCH 3/7] gnss: add generic serial driver Johan Hovold
2018-04-25  8:57   ` Greg Kroah-Hartman
2018-04-25 10:58     ` Johan Hovold
2018-04-25  9:00   ` Greg Kroah-Hartman
2018-04-25 11:05     ` Johan Hovold
2018-04-24 16:34 ` [PATCH 4/7] dt-bindings: gnss: add u-blox binding Johan Hovold
2018-04-25 18:16   ` Rob Herring
2018-04-26  9:10     ` Johan Hovold
2018-05-01 14:05       ` Rob Herring
2018-05-02  8:16         ` Johan Hovold
2018-05-02 13:16           ` Rob Herring
2018-05-07  9:06             ` Johan Hovold
2018-05-03  9:35           ` H. Nikolaus Schaller
2018-05-03 18:50             ` Andreas Kemnade
2018-05-04  5:16               ` H. Nikolaus Schaller
2018-05-04 11:42                 ` Sebastian Reichel
2018-05-04 12:04                   ` H. Nikolaus Schaller
2018-05-04 13:37                     ` Sebastian Reichel
2018-05-04 14:29                       ` Tony Lindgren
2018-05-07 10:07                     ` Johan Hovold
2018-05-07 10:01                   ` Johan Hovold
2018-05-07 15:45                     ` Tony Lindgren
2018-05-07 16:34                       ` Johan Hovold
2018-05-07 17:50                         ` Tony Lindgren
2018-05-08  6:58                           ` Johan Hovold
2018-05-08 15:22                             ` Tony Lindgren
2018-05-08 15:47                               ` Tony Lindgren
2018-05-08 15:54                                 ` Tony Lindgren
2018-05-08 16:49                                   ` Tony Lindgren
2018-05-09 13:10                                     ` OMAP serial runtime PM and autosuspend (was: Re: [PATCH 4/7] dt-bindings: gnss: add u-blox binding)) Johan Hovold
2018-05-09 13:57                                       ` Tony Lindgren
2018-05-17 10:09                                         ` Johan Hovold
2018-05-17 17:10                                           ` Tony Lindgren
2018-05-21 13:48                                             ` Johan Hovold
2018-05-21 15:48                                               ` Tony Lindgren
2018-05-24  9:17                                                 ` Johan Hovold
2018-05-24 13:32                                                   ` Tony Lindgren
2018-05-25 14:02                                                     ` Johan Hovold
2018-05-08 15:56                         ` [PATCH 4/7] dt-bindings: gnss: add u-blox binding Sebastian Reichel
2018-05-09  9:18                           ` Serdev runtime PM (was: Re: [PATCH 4/7] dt-bindings: gnss: add u-blox binding) Johan Hovold
2018-05-09  9:49                             ` Johan Hovold
2018-05-09 14:05                             ` Tony Lindgren
2018-05-17 10:25                               ` Johan Hovold [this message]
2018-05-07  9:47             ` [PATCH 4/7] dt-bindings: gnss: add u-blox binding Johan Hovold
2018-04-24 16:34 ` [PATCH 5/7] gnss: add driver for u-blox receivers Johan Hovold
2018-04-24 16:34 ` [PATCH 6/7] dt-bindings: gnss: add sirfstar binding Johan Hovold
2018-04-25 18:25   ` Rob Herring
2018-04-26  9:12     ` Johan Hovold
2018-04-24 16:34 ` [PATCH 7/7] gnss: add driver for sirfstar-based receivers Johan Hovold
2018-04-24 17:40 ` [PATCH 0/7] gnss: add new GNSS subsystem H. Nikolaus Schaller
2018-04-24 17:50   ` Johan Hovold
2018-04-24 19:44     ` H. Nikolaus Schaller
2018-04-25  8:11       ` Johan Hovold
2018-04-26 10:10         ` H. Nikolaus Schaller
2018-04-26 18:21           ` Johan Hovold
2018-04-24 20:13 ` Pavel Machek
2018-04-24 20:59   ` Andreas Kemnade
2018-04-25  7:32     ` Johan Hovold
2018-04-25  6:49   ` Marcel Holtmann
2018-04-25  7:24   ` Johan Hovold
2018-04-24 20:38 ` Pavel Machek
2018-04-25  6:26 ` Pavel Machek
2018-04-25  6:51   ` Johan Hovold
2018-04-25  8:48 ` Greg Kroah-Hartman
2018-04-25 10:31   ` Johan Hovold
2018-05-04 13:27 ` Sebastian Reichel
2018-05-04 20:03   ` Pavel Machek
2018-05-05 17:28     ` Sebastian Reichel
2018-05-05 21:11       ` Pavel Machek
2018-05-06  6:47         ` Marcel Holtmann
2018-05-07 10:20   ` Johan Hovold
2018-05-07 19:06     ` Marcel Holtmann
2018-05-08  7:01       ` Johan Hovold
2018-05-08  7:49         ` Marcel Holtmann
2018-05-08 12:48           ` Johan Hovold
2018-05-08 20:03             ` Marcel Holtmann
2018-05-30 10:26               ` Johan Hovold

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=20180517102502.GJ30172@localhost \
    --to=johan@kernel.org \
    --cc=andreas@kemnade.info \
    --cc=arnd@arndb.de \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hns@goldelico.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=pavel@ucw.cz \
    --cc=robh+dt@kernel.org \
    --cc=sre@kernel.org \
    --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).