All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Hilman <khilman@ti.com>
To: Shubhrajyoti D <shubhrajyoti@ti.com>
Cc: linux-omap@vger.kernel.org, tony@atomide.com,
	w.sang@pengutronix.de, linux-i2c@vger.kernel.org,
	ben-linux@fluff.org, linux-arm-kernel@lists.infradead.org,
	NeilBrown <neilb@suse.de>
Subject: Re: [PATCHv9 00/10] I2C fixes
Date: Fri, 25 May 2012 16:40:47 -0700	[thread overview]
Message-ID: <87obpbhls0.fsf@ti.com> (raw)
In-Reply-To: <1335969135-20858-1-git-send-email-shubhrajyoti@ti.com> (Shubhrajyoti D.'s message of "Wed, 2 May 2012 20:02:05 +0530")

+Neil Brown

Shubhrajyoti D <shubhrajyoti@ti.com> writes:

> The patch series does the following
>
> - Warn fixes if CONFIG_PM_RUNTIME is not selected.
> - In case of i2c remove register access was done without any
>  get_sync fix the same.
> - Folds a patch from Tasslehoff to prevent any merge conflicts.
> - Prevents the XDUF flag to be set if the underflow condition is not met.
> - As per discussion in [1] .Adds a patch to rename the 1p153 errata and
>  use the unique id instead as the section number in the recent errata
>  docs has changed.
>

Shubhrajyoti,

Can you add one more patch to this series.

The patch below from Neil Brown has been circulating for awhile, and
I've been using it locally for awhile now too.  It would help if it got
into this series and got some broader testing.

Thanks,

Kevin


>From 0c6effd8356e6273c294490a576551ef37ae6799 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Fri, 30 Dec 2011 12:40:30 +1100
Subject: [PATCH] OMAP/I2C - Fix timeout problem during suspend.

On a board with OMAP3 processor and TWL4030 Power management,
we need to talk to the TWL4030 during late suspend but cannot
because the I2C interrupt is disabled (as late suspend disables
interrupt).

e.g. I get messages like:

[   62.161102] musb-omap2430 musb-omap2430: LATE power domain suspend
[   63.167205] omap_i2c omap_i2c.1: controller timed out
[   63.183044] twl: i2c_read failed to transfer all messages
[   64.182861] omap_i2c omap_i2c.1: controller timed out
[   64.198455] twl: i2c_write failed to transfer all messages
[   65.198455] omap_i2c omap_i2c.1: controller timed out
[   65.203765] twl: i2c_write failed to transfer all messages

The stack shows omap2430_runtime_suspend calling twl4030_set_suspend
which tries to power-down the USB PHY (twl4030_phy_suspend ->
twl4030_phy_power -> __twl4030_phy_power which as a nice WARN_ON
that helps).

Then we get the same in resume:

[   69.603912] musb-omap2430 musb-omap2430: EARLY power domain resume
[   70.610473] omap_i2c omap_i2c.1: controller timed out
[   70.626129] twl: i2c_write failed to transfer all messages
etc.

So don't disable interrupts for I2C.

Acked-by: Kevin Hilman <khilman@ti.com>
Tested-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: NeilBrown <neilb@suse.de>
---
 drivers/i2c/busses/i2c-omap.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 801df60..e024c50 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -1092,7 +1092,7 @@ omap_i2c_probe(struct platform_device *pdev)
 
 	isr = (dev->rev < OMAP_I2C_OMAP1_REV_2) ? omap_i2c_omap1_isr :
 								   omap_i2c_isr;
-	r = request_irq(dev->irq, isr, 0, pdev->name, dev);
+	r = request_irq(dev->irq, isr, IRQF_NO_SUSPEND, pdev->name, dev);
 
 	if (r) {
 		dev_err(dev->dev, "failure requesting irq %i\n", dev->irq);
-- 
1.7.9.2


WARNING: multiple messages have this Message-ID (diff)
From: khilman@ti.com (Kevin Hilman)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv9 00/10] I2C fixes
Date: Fri, 25 May 2012 16:40:47 -0700	[thread overview]
Message-ID: <87obpbhls0.fsf@ti.com> (raw)
In-Reply-To: <1335969135-20858-1-git-send-email-shubhrajyoti@ti.com> (Shubhrajyoti D.'s message of "Wed, 2 May 2012 20:02:05 +0530")

+Neil Brown

Shubhrajyoti D <shubhrajyoti@ti.com> writes:

> The patch series does the following
>
> - Warn fixes if CONFIG_PM_RUNTIME is not selected.
> - In case of i2c remove register access was done without any
>  get_sync fix the same.
> - Folds a patch from Tasslehoff to prevent any merge conflicts.
> - Prevents the XDUF flag to be set if the underflow condition is not met.
> - As per discussion in [1] .Adds a patch to rename the 1p153 errata and
>  use the unique id instead as the section number in the recent errata
>  docs has changed.
>

Shubhrajyoti,

Can you add one more patch to this series.

The patch below from Neil Brown has been circulating for awhile, and
I've been using it locally for awhile now too.  It would help if it got
into this series and got some broader testing.

Thanks,

Kevin


>From 0c6effd8356e6273c294490a576551ef37ae6799 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Fri, 30 Dec 2011 12:40:30 +1100
Subject: [PATCH] OMAP/I2C - Fix timeout problem during suspend.

On a board with OMAP3 processor and TWL4030 Power management,
we need to talk to the TWL4030 during late suspend but cannot
because the I2C interrupt is disabled (as late suspend disables
interrupt).

e.g. I get messages like:

[   62.161102] musb-omap2430 musb-omap2430: LATE power domain suspend
[   63.167205] omap_i2c omap_i2c.1: controller timed out
[   63.183044] twl: i2c_read failed to transfer all messages
[   64.182861] omap_i2c omap_i2c.1: controller timed out
[   64.198455] twl: i2c_write failed to transfer all messages
[   65.198455] omap_i2c omap_i2c.1: controller timed out
[   65.203765] twl: i2c_write failed to transfer all messages

The stack shows omap2430_runtime_suspend calling twl4030_set_suspend
which tries to power-down the USB PHY (twl4030_phy_suspend ->
twl4030_phy_power -> __twl4030_phy_power which as a nice WARN_ON
that helps).

Then we get the same in resume:

[   69.603912] musb-omap2430 musb-omap2430: EARLY power domain resume
[   70.610473] omap_i2c omap_i2c.1: controller timed out
[   70.626129] twl: i2c_write failed to transfer all messages
etc.

So don't disable interrupts for I2C.

Acked-by: Kevin Hilman <khilman@ti.com>
Tested-by: Kevin Hilman <khilman@ti.com>
Signed-off-by: NeilBrown <neilb@suse.de>
---
 drivers/i2c/busses/i2c-omap.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 801df60..e024c50 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -1092,7 +1092,7 @@ omap_i2c_probe(struct platform_device *pdev)
 
 	isr = (dev->rev < OMAP_I2C_OMAP1_REV_2) ? omap_i2c_omap1_isr :
 								   omap_i2c_isr;
-	r = request_irq(dev->irq, isr, 0, pdev->name, dev);
+	r = request_irq(dev->irq, isr, IRQF_NO_SUSPEND, pdev->name, dev);
 
 	if (r) {
 		dev_err(dev->dev, "failure requesting irq %i\n", dev->irq);
-- 
1.7.9.2

  parent reply	other threads:[~2012-05-25 23:40 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-02 14:32 [PATCHv9 00/10] I2C fixes Shubhrajyoti D
2012-05-02 14:32 ` Shubhrajyoti D
2012-05-02 14:32 ` [PATCHv9 01/10] I2C: OMAP: make omap_i2c_unidle/idle functions depend on CONFIG_PM_RUNTIME Shubhrajyoti D
2012-05-02 14:32   ` Shubhrajyoti D
2012-05-02 14:32 ` [PATCHv9 03/10] I2C: OMAP: Fix the interrupt clearing in OMAP4 Shubhrajyoti D
2012-05-02 14:32   ` Shubhrajyoti D
2012-05-02 14:32 ` [PATCHv9 04/10] I2C: OMAP: Prevent the register access after pm_runtime_put in probe Shubhrajyoti D
2012-05-02 14:32   ` Shubhrajyoti D
2012-05-02 14:32 ` [PATCHv9 07/10] I2C: OMAP: Handle error check for pm runtime Shubhrajyoti D
2012-05-02 14:32   ` Shubhrajyoti D
     [not found]   ` <1335969135-20858-8-git-send-email-shubhrajyoti-l0cyMroinI0@public.gmane.org>
2012-05-25 22:06     ` Kevin Hilman
2012-05-25 22:06       ` Kevin Hilman
     [not found]       ` <87likfkjar.fsf-l0cyMroinI0@public.gmane.org>
2012-05-28 11:22         ` Shubhrajyoti
2012-05-28 11:22           ` Shubhrajyoti
2012-05-02 14:32 ` [PATCHv9 08/10] I2C: OMAP: prevent the overwrite of the errata flags Shubhrajyoti D
2012-05-02 14:32   ` Shubhrajyoti D
     [not found] ` <1335969135-20858-1-git-send-email-shubhrajyoti-l0cyMroinI0@public.gmane.org>
2012-05-02 14:32   ` [PATCHv9 02/10] I2C: OMAP: Fix the mismatch of pm_runtime enable and disable Shubhrajyoti D
2012-05-02 14:32     ` Shubhrajyoti D
2012-05-25 21:57     ` Kevin Hilman
2012-05-25 21:57       ` Kevin Hilman
     [not found]       ` <87wr3zkjp7.fsf-l0cyMroinI0@public.gmane.org>
2012-05-28  9:59         ` Shubhrajyoti
2012-05-28  9:59           ` Shubhrajyoti
2012-05-02 14:32   ` [PATCHv9 05/10] I2C: OMAP: Don't check if wait_for_completion_timeout() returns less than zero Shubhrajyoti D
2012-05-02 14:32     ` Shubhrajyoti D
2012-05-02 14:32   ` [PATCHv9 06/10] I2C: OMAP: Fix the crash in i2c remove Shubhrajyoti D
2012-05-02 14:32     ` Shubhrajyoti D
     [not found]     ` <1335969135-20858-7-git-send-email-shubhrajyoti-l0cyMroinI0@public.gmane.org>
2012-05-12 18:10       ` Wolfram Sang
2012-05-12 18:10         ` Wolfram Sang
2012-05-14 11:26         ` Shubhrajyoti
2012-05-14 11:26           ` Shubhrajyoti
     [not found]         ` <20120512181019.GA28973-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>
2012-05-25 21:51           ` Kevin Hilman
2012-05-25 21:51             ` Kevin Hilman
2012-05-02 14:32   ` [PATCHv9 09/10] I2C: OMAP: Do not set the XUDF(Transmit underflow) if the underflow is not reached Shubhrajyoti D
2012-05-02 14:32     ` Shubhrajyoti D
2012-05-25 22:09     ` Kevin Hilman
2012-05-25 22:09       ` Kevin Hilman
2012-05-02 14:32   ` [PATCHv9 10/10] I2C: OMAP: Rename the 1p153 to the erratum id i462 Shubhrajyoti D
2012-05-02 14:32     ` Shubhrajyoti D
2012-05-25 22:13   ` [PATCHv9 00/10] I2C fixes Kevin Hilman
2012-05-25 22:13     ` Kevin Hilman
2012-05-28  9:52     ` Shubhrajyoti
2012-05-28  9:52       ` Shubhrajyoti
2012-05-12 18:10 ` Wolfram Sang
2012-05-12 18:10   ` Wolfram Sang
2012-05-25 23:40 ` Kevin Hilman [this message]
2012-05-25 23:40   ` Kevin Hilman
     [not found]   ` <87obpbhls0.fsf-l0cyMroinI0@public.gmane.org>
2012-05-28  9:54     ` Shubhrajyoti
2012-05-28  9:54       ` 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=87obpbhls0.fsf@ti.com \
    --to=khilman@ti.com \
    --cc=ben-linux@fluff.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=shubhrajyoti@ti.com \
    --cc=tony@atomide.com \
    --cc=w.sang@pengutronix.de \
    /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.