All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sebastian Andrzej Siewior <bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
To: Haojian Zhuang <haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
	sodaville-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org,
	ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org,
	Dirk Brandewie
	<dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org,
	tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH 4/7] i2c/pxa2xx: add support for shared IRQ handler
Date: Thu, 25 Nov 2010 11:48:30 +0100	[thread overview]
Message-ID: <4CEE3EFE.2080909@linutronix.de> (raw)
In-Reply-To: <AANLkTik11gr1fg=vht2FYBpDZBBhxLXezS8ih752xj=5@mail.gmail.com>

Haojian Zhuang wrote:
>> diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
>> index dc66fde..7647361 100644
>> --- a/drivers/i2c/busses/i2c-pxa.c
>> +++ b/drivers/i2c/busses/i2c-pxa.c
>> @@ -905,11 +905,17 @@ static void i2c_pxa_irq_rxfull(struct pxa_i2c *i2c, u32 isr)
>>        writel(icr, _ICR(i2c));
>>  }
>>
>> +#define VALID_INT_SOURCE       (ISR_SSD | ISR_ALD | ISR_ITE | ISR_IRF | \
>> +                               ISR_SAD | ISR_BED)
>>  static irqreturn_t i2c_pxa_handler(int this_irq, void *dev_id)
>>  {
>>        struct pxa_i2c *i2c = dev_id;
>>        u32 isr = readl(_ISR(i2c));
>>
>> +       isr &= VALID_INT_SOURCE;
>> +       if (!isr)
>> +               return IRQ_NONE;
>> +
> 
> If you return at here, the valid interrupt status event won't be
> cleared in IRQ handler. So I2C interrupt handler will be triggered at
> next time.

The point here is that I have a shared handler and I have to know if my
i2c device issued an interrupt or another device. If I return here then it
was not my i2c device bot some other device hanging on the same interrupt
line.
I can't simply test for !isr (without VALID_INT_SOURCE) because some bits
in this register have nothing todo with the interrupt status as it.

Sebastian

WARNING: multiple messages have this Message-ID (diff)
From: bigeasy@linutronix.de (Sebastian Andrzej Siewior)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/7] i2c/pxa2xx: add support for shared IRQ handler
Date: Thu, 25 Nov 2010 11:48:30 +0100	[thread overview]
Message-ID: <4CEE3EFE.2080909@linutronix.de> (raw)
In-Reply-To: <AANLkTik11gr1fg=vht2FYBpDZBBhxLXezS8ih752xj=5@mail.gmail.com>

Haojian Zhuang wrote:
>> diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
>> index dc66fde..7647361 100644
>> --- a/drivers/i2c/busses/i2c-pxa.c
>> +++ b/drivers/i2c/busses/i2c-pxa.c
>> @@ -905,11 +905,17 @@ static void i2c_pxa_irq_rxfull(struct pxa_i2c *i2c, u32 isr)
>>        writel(icr, _ICR(i2c));
>>  }
>>
>> +#define VALID_INT_SOURCE       (ISR_SSD | ISR_ALD | ISR_ITE | ISR_IRF | \
>> +                               ISR_SAD | ISR_BED)
>>  static irqreturn_t i2c_pxa_handler(int this_irq, void *dev_id)
>>  {
>>        struct pxa_i2c *i2c = dev_id;
>>        u32 isr = readl(_ISR(i2c));
>>
>> +       isr &= VALID_INT_SOURCE;
>> +       if (!isr)
>> +               return IRQ_NONE;
>> +
> 
> If you return at here, the valid interrupt status event won't be
> cleared in IRQ handler. So I2C interrupt handler will be triggered at
> next time.

The point here is that I have a shared handler and I have to know if my
i2c device issued an interrupt or another device. If I return here then it
was not my i2c device bot some other device hanging on the same interrupt
line.
I can't simply test for !isr (without VALID_INT_SOURCE) because some bits
in this register have nothing todo with the interrupt status as it.

Sebastian

  reply	other threads:[~2010-11-25 10:48 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-24 21:20 I2C support for Sodaville Sebastian Andrzej Siewior
2010-11-24 21:20 ` Sebastian Andrzej Siewior
     [not found] ` <1290633617-15311-1-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2010-11-24 21:20   ` [PATCH 1/7] i2c/pxa2xx: Don't touch ISAR if not in slave mode Sebastian Andrzej Siewior
2010-11-24 21:20     ` Sebastian Andrzej Siewior
     [not found]     ` <1290633617-15311-2-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2010-11-25 23:52       ` Ben Dooks
2010-11-25 23:52         ` Ben Dooks
     [not found]         ` <20101125235255.GB15948-SMNkleLxa3Z6Wcw2j4pizdi2O/JbrIOy@public.gmane.org>
2010-11-26 18:28           ` [sodaville] " Sebastian Andrzej Siewior
2010-11-26 18:28             ` Sebastian Andrzej Siewior
2010-11-24 21:20   ` [PATCH 2/7] arm/pxa2xx: reorganize I2C files Sebastian Andrzej Siewior
2010-11-24 21:20     ` Sebastian Andrzej Siewior
     [not found]     ` <1290633617-15311-3-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2010-11-25 23:55       ` Ben Dooks
2010-11-25 23:55         ` Ben Dooks
     [not found]         ` <20101125235520.GC15948-SMNkleLxa3Z6Wcw2j4pizdi2O/JbrIOy@public.gmane.org>
2010-11-26  0:03           ` Russell King - ARM Linux
2010-11-26  0:03             ` Russell King - ARM Linux
     [not found]             ` <20101126000341.GB9310-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2010-11-26 14:11               ` Sebastian Andrzej Siewior
2010-11-26 14:11                 ` Sebastian Andrzej Siewior
2010-11-24 21:20   ` [PATCH 3/7] i2c/pxa2xx: Add PCI support for PXA I2C controller Sebastian Andrzej Siewior
2010-11-24 21:20     ` Sebastian Andrzej Siewior
     [not found]     ` <1290633617-15311-4-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2010-11-25 23:59       ` Ben Dooks
2010-11-25 23:59         ` Ben Dooks
     [not found]         ` <20101125235933.GD15948-SMNkleLxa3Z6Wcw2j4pizdi2O/JbrIOy@public.gmane.org>
2010-11-26 14:16           ` Sebastian Andrzej Siewior
2010-11-26 14:16             ` Sebastian Andrzej Siewior
2010-11-24 21:20   ` [PATCH 4/7] i2c/pxa2xx: add support for shared IRQ handler Sebastian Andrzej Siewior
2010-11-24 21:20     ` Sebastian Andrzej Siewior
     [not found]     ` <1290633617-15311-5-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2010-11-25  2:26       ` Haojian Zhuang
2010-11-25  2:26         ` Haojian Zhuang
2010-11-25 10:48         ` Sebastian Andrzej Siewior [this message]
2010-11-25 10:48           ` Sebastian Andrzej Siewior
2010-11-24 21:20   ` [PATCH 5/7] i2c/pxa2xx: check timeout correctly Sebastian Andrzej Siewior
2010-11-24 21:20     ` Sebastian Andrzej Siewior
2010-11-24 21:20   ` [PATCH 6/7] i2c/pxa2xx: reset the chip if the bus is not free Sebastian Andrzej Siewior
2010-11-24 21:20     ` Sebastian Andrzej Siewior
     [not found]     ` <1290633617-15311-7-git-send-email-bigeasy-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2010-11-25  2:30       ` Haojian Zhuang
2010-11-25  2:30         ` Haojian Zhuang
     [not found]         ` <AANLkTikvN+==eTkoh7CTQyN0mbfvPhH6Uh9NX5QW7WFx-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-11-25  2:49           ` Haojian Zhuang
2010-11-25  2:49             ` Haojian Zhuang
     [not found]             ` <AANLkTi=8Xy3M7QGO54nt_r0_12z3+o8G5fAqQmxkTH4o-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2010-11-25  6:43               ` Igor Grinberg
2010-11-25  6:43                 ` Igor Grinberg
     [not found]                 ` <4CEE05A4.6030201-UTxiZqZC01RS1MOuV/RT9w@public.gmane.org>
2010-11-25  7:04                   ` Haojian Zhuang
2010-11-25  7:04                     ` Haojian Zhuang
2010-11-25 12:24                   ` Sebastian Andrzej Siewior
2010-11-25 12:24                     ` Sebastian Andrzej Siewior
     [not found]                     ` <4CEE5587.90109-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org>
2010-11-25 13:10                       ` Igor Grinberg
2010-11-25 13:10                         ` Igor Grinberg
     [not found]                         ` <4CEE602D.5090501-UTxiZqZC01RS1MOuV/RT9w@public.gmane.org>
2010-11-25 13:39                           ` Sebastian Andrzej Siewior
2010-11-25 13:39                             ` Sebastian Andrzej Siewior
2010-11-24 21:20   ` [PATCH 7/7] i2c/pxa2xx: pass of_node from platform driver to adapter Sebastian Andrzej Siewior
2010-11-24 21:20     ` Sebastian Andrzej Siewior

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=4CEE3EFE.2080909@linutronix.de \
    --to=bigeasy-hfztesqfncyowbw4kg4ksq@public.gmane.org \
    --cc=ben-linux-elnMNo+KYs3YtjvyW6yDsg@public.gmane.org \
    --cc=dirk.brandewie-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=eric.y.miao-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=haojian.zhuang-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
    --cc=sodaville-hfZtesqFncYOwBW4kG4KsQ@public.gmane.org \
    --cc=tglx-hfZtesqFncYOwBW4kG4KsQ@public.gmane.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 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.