public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: khilman@deeprootsystems•com (Kevin Hilman)
To: linux-arm-kernel@lists•infradead.org
Subject: [PATCHv8 21/22] i2c: omap: switch over to autosuspend API
Date: Wed, 12 Sep 2012 16:03:35 -0700	[thread overview]
Message-ID: <87627iu9mg.fsf@deeprootsystems.com> (raw)
In-Reply-To: <1347447496-16793-22-git-send-email-shubhrajyoti@ti.com> (Shubhrajyoti D.'s message of "Wed, 12 Sep 2012 16:28:15 +0530")

Shubhrajyoti D <shubhrajyoti@ti•com> writes:

> From: Felipe Balbi <balbi@ti•com>
>
> this helps us reduce unnecessary pm transitions
> in case we have another i2c message starting soon.
>
> Signed-off-by: Felipe Balbi <balbi@ti•com>
> Signed-off-by: Shubhrajyoti D <shubhrajyoti@ti•com>

I tracked the PM regression down to this patch.

> ---
>  drivers/i2c/busses/i2c-omap.c |   12 ++++++++++--
>  1 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
> index 6d38a57..122f517 100644
> --- a/drivers/i2c/busses/i2c-omap.c
> +++ b/drivers/i2c/busses/i2c-omap.c
> @@ -55,6 +55,9 @@
>  /* timeout waiting for the controller to respond */
>  #define OMAP_I2C_TIMEOUT (msecs_to_jiffies(1000))
>  
> +/* timeout for pm runtime autosuspend */
> +#define OMAP_I2C_PM_TIMEOUT		1000	/* ms */
> +
>  /* For OMAP3 I2C_IV has changed to I2C_WE (wakeup enable) */
>  enum {
>  	OMAP_I2C_REV_REG = 0,
> @@ -645,7 +648,8 @@ omap_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num)
>  
>  	omap_i2c_wait_for_bb(dev);
>  out:
> -	pm_runtime_put(dev->dev);
> +	pm_runtime_mark_last_busy(dev->dev);
> +	pm_runtime_put_autosuspend(dev->dev);

Reverting this change allows CORE to hit retention again.

I didn't debug this any further, so I'm not sure exactly why the async
suspend works but not the autosuspend.

Kevin

  reply	other threads:[~2012-09-12 23:03 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-12 10:57 [PATCHv8 00/23]I2C big cleanup Shubhrajyoti D
2012-09-12 10:57 ` [PATCHv8 01/22] i2c: omap: switch to devm_* API Shubhrajyoti D
2012-09-12 10:57 ` [PATCHv8 02/22] i2c: omap: simplify num_bytes handling Shubhrajyoti D
2012-09-12 10:57 ` [PATCHv8 03/22] i2c: omap: decrease indentation level on data handling Shubhrajyoti D
2012-09-12 10:57 ` [PATCHv8 04/22] i2c: omap: add blank lines Shubhrajyoti D
2012-09-12 10:57 ` [PATCHv8 05/22] i2c: omap: simplify omap_i2c_ack_stat() Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 06/22] i2c: omap: split out [XR]DR and [XR]RDY Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 07/22] i2c: omap: improve i462 errata handling Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 08/22] i2c: omap: re-factor receive/transmit data loop Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 09/22] i2c: omap: switch over to do {} while loop Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 10/22] i2c: omap: ack IRQ in parts Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 11/22] i2c: omap: switch to platform_get_irq() Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 12/22] i2c: omap: bus: add a receiver flag Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 13/22] i2c: omap: simplify errata check Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 14/22] i2c: omap: always return IRQ_HANDLED Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 15/22] i2c: omap: simplify IRQ exit path Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 16/22] i2c: omap: resize fifos before each message Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 17/22] i2c: omap: get rid of the "complete" label Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 18/22] i2c: omap: remove redundant status read Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 19/22] i2c: omap: switch to threaded IRQ support Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 20/22] i2c: omap: remove unnecessary pm_runtime_suspended check Shubhrajyoti D
2012-09-12 10:58 ` [PATCHv8 21/22] i2c: omap: switch over to autosuspend API Shubhrajyoti D
2012-09-12 23:03   ` Kevin Hilman [this message]
2012-09-12 10:58 ` [PATCHv8 22/22] i2c: omap: sanitize exit path Shubhrajyoti D
2012-09-12 13:16 ` [PATCHv8 00/23]I2C big cleanup Wolfram Sang
2012-09-12 13:25   ` Shubhrajyoti
2012-09-12 22:39   ` Kevin Hilman
2012-09-12 23:08     ` Kevin Hilman
2012-09-13  8:52       ` Wolfram Sang
2012-09-13 18:04       ` Kevin Hilman
2012-09-13 18:37         ` Felipe Balbi
2012-09-13 21:28           ` Kevin Hilman
2012-09-14 10:40             ` Shubhrajyoti
2012-09-12 22:27 ` Kevin Hilman
2012-09-13  5:33   ` Felipe Balbi
2012-09-13 14:31     ` Kevin Hilman
2012-09-13  6:04   ` Shubhrajyoti
2012-09-13  6:36     ` Felipe Balbi
2012-09-13  6:55     ` Shubhrajyoti

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=87627iu9mg.fsf@deeprootsystems.com \
    --to=khilman@deeprootsystems$(echo .)com \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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