[PATCH 00/27] add pm_runtime_last_busy_and_autosuspend() helper

Felipe Balbi balbi at ti.com
Wed Sep 24 13:32:19 PDT 2014


On Wed, Sep 24, 2014 at 10:46:17PM +0200, Rafael J. Wysocki wrote:
> On Wednesday, September 24, 2014 03:15:58 PM Felipe Balbi wrote:
> > On Wed, Sep 24, 2014 at 10:28:07PM +0200, Rafael J. Wysocki wrote:
> > > On Wednesday, September 24, 2014 09:44:50 PM Vinod Koul wrote:
> > > > This patch series adds a simple macro pm_runtime_last_busy_and_autosuspend()
> > > > which invokes pm_runtime_mark_last_busy() and pm_runtime_put_autosuspend()
> > > > sequentially. Then we do a tree wide update of current patterns which are
> > > > present. As evident from log below this pattern is frequent in the
> > > > kernel.
> > > > 
> > > > This series can be found at
> > > > git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/slave-dma.git
> > > > topic/pm_runtime_last_busy_and_autosuspend
> > > > 
> > > > Fengguang's kbuild has tested it so it shouldn't break things for anyone.
> > > > Barring one patch (explictyly mentioned in its changelog) rest are simple
> > > > replacements.
> > > > 
> > > > If all are okay, this should be merged thru PM tree as it depends on macro
> > > > addition.
> > > > 
> > > > Subhransu S. Prusty (1):
> > > >   PM: Add helper pm_runtime_last_busy_and_autosuspend()
> > > > 
> > > > Vinod Koul (26):
> > > >   dmaengine: ste_dma: use pm_runtime_last_busy_and_autosuspend helper
> > > >   extcon: arizona: use pm_runtime_last_busy_and_autosuspend helper
> > > >   drm/i915: use pm_runtime_last_busy_and_autosuspend helper
> > > >   drm/nouveau: use pm_runtime_last_busy_and_autosuspend helper
> > > >   drm/radeon: use pm_runtime_last_busy_and_autosuspend helper
> > > >   vga_switcheroo: use pm_runtime_last_busy_and_autosuspend helper
> > > >   i2c: designware: use pm_runtime_last_busy_and_autosuspend helper
> > > >   i2c: omap: use pm_runtime_last_busy_and_autosuspend helper
> > > >   i2c: qup: use pm_runtime_last_busy_and_autosuspend helper
> > > >   mfd: ab8500-gpadc: use pm_runtime_last_busy_and_autosuspend helper
> > > >   mfd: arizona: use pm_runtime_last_busy_and_autosuspend helper
> > > >   mei: use pm_runtime_last_busy_and_autosuspend helper
> > > >   mmc: use pm_runtime_last_busy_and_autosuspend helper
> > > >   mmc: mmci: use pm_runtime_last_busy_and_autosuspend helper
> > > >   mmc: omap_hsmmc: use pm_runtime_last_busy_and_autosuspend helper
> > > >   mmc: sdhci-pxav3: use pm_runtime_last_busy_and_autosuspend helper
> > > >   mmc: sdhci: use pm_runtime_last_busy_and_autosuspend helper
> > > >   NFC: trf7970a: use pm_runtime_last_busy_and_autosuspend helper
> > > >   pm2301-charger: use pm_runtime_last_busy_and_autosuspend helper
> > > >   spi: omap2-mcspi: use pm_runtime_last_busy_and_autosuspend helper
> > > >   spi: orion: use pm_runtime_last_busy_and_autosuspend helper
> > > >   spi: ti-qspi: use pm_runtime_last_busy_and_autosuspend helper
> > > >   spi: core: use pm_runtime_last_busy_and_autosuspend helper
> > > >   tty: serial: omap: use pm_runtime_last_busy_and_autosuspend helper
> > > >   usb: musb: omap2430: use pm_runtime_last_busy_and_autosuspend helper
> > > >   video: fbdev: use pm_runtime_last_busy_and_autosuspend helper
> > > > 
> > > >  Documentation/power/runtime_pm.txt          |    4 ++
> > > >  drivers/dma/ste_dma40.c                     |   30 ++++---------
> > > >  drivers/extcon/extcon-arizona.c             |    6 +--
> > > >  drivers/gpu/drm/i915/intel_pm.c             |    3 +-
> > > >  drivers/gpu/drm/nouveau/nouveau_connector.c |    3 +-
> > > >  drivers/gpu/drm/nouveau/nouveau_drm.c       |    9 +---
> > > >  drivers/gpu/drm/radeon/radeon_connectors.c  |   15 ++----
> > > >  drivers/gpu/drm/radeon/radeon_drv.c         |    5 +-
> > > >  drivers/gpu/drm/radeon/radeon_kms.c         |    6 +--
> > > >  drivers/gpu/vga/vga_switcheroo.c            |    7 +--
> > > >  drivers/i2c/busses/i2c-designware-core.c    |    3 +-
> > > >  drivers/i2c/busses/i2c-omap.c               |    6 +--
> > > >  drivers/i2c/busses/i2c-qup.c                |    3 +-
> > > >  drivers/mfd/ab8500-gpadc.c                  |    6 +--
> > > >  drivers/mfd/arizona-irq.c                   |    3 +-
> > > >  drivers/misc/mei/client.c                   |   12 ++----
> > > >  drivers/mmc/core/core.c                     |    3 +-
> > > >  drivers/mmc/host/mmci.c                     |   12 ++----
> > > >  drivers/mmc/host/omap_hsmmc.c               |   19 ++-------
> > > >  drivers/mmc/host/sdhci-pxav3.c              |    6 +--
> > > >  drivers/mmc/host/sdhci.c                    |    3 +-
> > > >  drivers/nfc/trf7970a.c                      |    3 +-
> > > >  drivers/power/pm2301_charger.c              |    3 +-
> > > >  drivers/spi/spi-omap2-mcspi.c               |    9 +---
> > > >  drivers/spi/spi-orion.c                     |    3 +-
> > > >  drivers/spi/spi-ti-qspi.c                   |    5 +-
> > > >  drivers/spi/spi.c                           |    6 +--
> > > >  drivers/tty/serial/omap-serial.c            |   60 +++++++++------------------
> > > >  drivers/usb/musb/omap2430.c                 |    6 +--
> > > >  drivers/video/fbdev/auo_k190x.c             |    9 +---
> > > >  include/linux/pm_runtime.h                  |    6 +++
> > > >  31 files changed, 97 insertions(+), 177 deletions(-)
> > > 
> > > OK, I guess this is as good as it gets.
> > > 
> > > What tree would you like it go through?
> > 
> > Do we really need this new helper ? I mean, the very moment when we
> > decide to implement ->runtime_idle() we will need to get rid of this
> > change. I wonder if it's really valid...
> 
> I'm not sure I'm following?  This seems to simply implement what drivers
> have been doing already as one function.  Why would it be invalid to reduce
> code duplication?

For two reasons:

1) the helper has no inteligence whatsoever. It just calls the same
functions.

2) the duplication will vanish whenever someone implements
->runtime_idle() and have that call pm_runtime_autosuspend() (like PCI
and USB buses are doing today). This will just be yet another line that
needs to change.

Frankly though, no strong feelings, I just think it's a commit that
doesn't bring that any benefits other than looking like one line was
removed.

-- 
balbi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20140924/b24c7ffc/attachment-0001.sig>


More information about the dri-devel mailing list