From: dirk.brandewie@gmail.com
To: linux-kernel@vger.kernel.org, linux-i2c@vger.kernel.org
Cc: Dirk Brandewie <dirk.brandewie@gmail.com>,
Ben Dooks <ben-linux@fluff.org>
Subject: [PATCH 09/13] i2c-designware: Support multiple cores using same ISR
Date: Thu, 9 Jun 2011 12:21:46 -0700 [thread overview]
Message-ID: <1307647310-24332-10-git-send-email-dirk.brandewie@gmail.com> (raw)
In-Reply-To: <1307647310-24332-1-git-send-email-dirk.brandewie@gmail.com>
From: Dirk Brandewie <dirk.brandewie@gmail.com>
Add check to make sure that the core is enabled and has outstanding
interrupts. The activity bit is masked due to the fact that it will
stay active even after the controller has been disabled until the
contoller internal state machines have settled.
Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
---
drivers/i2c/busses/i2c-designware-core.c | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/i2c/busses/i2c-designware-core.c b/drivers/i2c/busses/i2c-designware-core.c
index 9de672f..11909eb 100644
--- a/drivers/i2c/busses/i2c-designware-core.c
+++ b/drivers/i2c/busses/i2c-designware-core.c
@@ -521,10 +521,16 @@ static u32 i2c_dw_read_clear_intrbits(struct dw_i2c_dev *dev)
irqreturn_t i2c_dw_isr(int this_irq, void *dev_id)
{
struct dw_i2c_dev *dev = dev_id;
- u32 stat;
+ u32 stat, enabled;
+
+ enabled = dw_readl(dev, DW_IC_ENABLE);
+ stat = dw_readl(dev, DW_IC_RAW_INTR_STAT);
+ dev_dbg(dev->dev, "%s: %s enabled= 0x%x stat=0x%x\n", __func__,
+ dev->adapter.name, enabled, stat);
+ if (!enabled || !(stat & ~DW_IC_INTR_ACTIVITY))
+ return IRQ_NONE;
stat = i2c_dw_read_clear_intrbits(dev);
- dev_dbg(dev->dev, "%s: stat=0x%x\n", __func__, stat);
if (stat & DW_IC_INTR_TX_ABRT) {
dev->cmd_err |= DW_IC_ERR_TX_ABRT;
--
1.7.3.4
next prev parent reply other threads:[~2011-06-09 19:21 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-09 19:21 [PATCH 00/13] V4 Split i2c-designware.c to support PCI drivers dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w
2011-06-09 19:21 ` [PATCH 01/13] i2c-designware: Use local version of readl & writel dirk.brandewie
2011-06-09 19:21 ` [PATCH 02/13] i2c-designware: Check component type register dirk.brandewie
2011-06-09 19:21 ` [PATCH 03/13] i2c-designware: Allow mixed endianness accesses dirk.brandewie
2011-06-09 19:21 ` [PATCH 04/13] i2c-designware: Move checking of IP core version to i2c_dw_init() dirk.brandewie
2011-06-09 19:21 ` [PATCH 08/13] i2c-designware: move controller config to bus specific portion of driver dirk.brandewie
2011-06-09 19:21 ` dirk.brandewie [this message]
[not found] ` <1307647310-24332-1-git-send-email-dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-06-09 19:21 ` [PATCH 05/13] i2c-designware: split of i2c-designware.c into core and bus specific parts dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w
[not found] ` <1307647310-24332-6-git-send-email-dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-06-15 21:31 ` Ben Dooks
2011-06-09 19:21 ` [PATCH 06/13] i2c-designware: Move retriveving the clock speed out of core code dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w
2011-06-09 19:21 ` [PATCH 07/13] i2c-designware: move i2c functionality bit field to be adapter specific dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w
2011-06-09 19:21 ` [PATCH 10/13] i2c-designware: Push all register reads/writes into the core code dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w
2011-06-09 19:21 ` [PATCH 11/13] i2c-designware: Add support for Designware core behind PCI devices dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w
2011-06-09 19:21 ` [PATCH 12/13] i2c-designware: Add runtime power management support dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w
2011-07-27 14:56 ` [PATCH 00/13] V4 Split i2c-designware.c to support PCI drivers Dirk Brandewie
2011-08-04 4:52 ` Dirk Brandewie
2011-06-09 19:21 ` [PATCH 13/13] i2c-intel-mid.c: Remove i2c-intel-mid.c dirk.brandewie
[not found] ` <1307647310-24332-14-git-send-email-dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-06-15 21:31 ` Ben Dooks
-- strict thread matches above, loose matches on Subject: below --
2011-10-06 18:26 [PATCH 00/13] V5 Split i2c-designware.c to support PCI drivers dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w
2011-10-06 18:26 ` [PATCH 09/13] i2c-designware: Support multiple cores using same ISR dirk.brandewie
2011-03-12 20:23 [PATCH 00/13] V3 Split i2c-designware.c to support PCI drivers dirk.brandewie
2011-03-12 20:23 ` [PATCH 09/13] i2c-designware: Support multiple cores using same ISR dirk.brandewie
2011-02-10 16:21 [PATCH 00/13] V2 Split i2c-designware.c to support PCI drivers dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w
[not found] ` <1297354889-20721-1-git-send-email-dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2011-02-10 16:21 ` [PATCH 09/13] i2c-designware: Support multiple cores using same ISR dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w
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=1307647310-24332-10-git-send-email-dirk.brandewie@gmail.com \
--to=dirk.brandewie@gmail.com \
--cc=ben-linux@fluff.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
/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).