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:22 UTC|newest]
Thread overview: 20+ 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
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 05/13] i2c-designware: split of i2c-designware.c into core and bus specific parts dirk.brandewie
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
2011-06-09 19:21 ` [PATCH 07/13] i2c-designware: move i2c functionality bit field to be adapter specific 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]
2011-06-09 19:21 ` [PATCH 10/13] i2c-designware: Push all register reads/writes into the core code dirk.brandewie
2011-06-09 19:21 ` [PATCH 11/13] i2c-designware: Add support for Designware core behind PCI devices dirk.brandewie
2011-06-09 19:21 ` [PATCH 12/13] i2c-designware: Add runtime power management support dirk.brandewie
2011-06-09 19:21 ` [PATCH 13/13] i2c-intel-mid.c: Remove i2c-intel-mid.c dirk.brandewie
2011-06-15 21:31 ` Ben Dooks
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
-- strict thread matches above, loose matches on Subject: below --
2011-10-06 18:26 [PATCH 00/13] V5 " dirk.brandewie
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
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
all inboxes | Powered by JetHome®