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
next prev parent 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