From: Felipe Balbi <balbi@ti.com>
To: "Voss, Nikolaus" <N.Voss@weinmann.de>
Cc: "'balbi@ti.com'" <balbi@ti.com>,
"'linux-i2c@vger.kernel.org'" <linux-i2c@vger.kernel.org>,
"'linux-arm-kernel@lists.infradead.org'"
<linux-arm-kernel@lists.infradead.org>,
"'linux-kernel@vger.kernel.org'" <linux-kernel@vger.kernel.org>,
"'ben-linux@fluff.org'" <ben-linux@fluff.org>,
"'khali@linux-fr.org'" <khali@linux-fr.org>,
"'nicolas.ferre@atmel.com'" <nicolas.ferre@atmel.com>,
"'rmallon@gmail.com'" <rmallon@gmail.com>
Subject: Re: [PATCH V3 2/4] drivers/i2c/busses/i2c-at91.c: add new driver
Date: Tue, 8 Nov 2011 20:06:49 +0200 [thread overview]
Message-ID: <20111108180648.GA24399@legolas.emea.dhcp.ti.com> (raw)
In-Reply-To: <EF2E73589CA71846A15D0B2CDF79505D087B38B8B5@wm021.weinmann.com>
[-- Attachment #1: Type: text/plain, Size: 2371 bytes --]
Hi,
On Tue, Nov 08, 2011 at 04:49:07PM +0100, Voss, Nikolaus wrote:
> > > > > +#include <mach/at91_twi.h>
> > > > > +#include <mach/board.h>
> > > > > +#include <mach/cpu.h>
> > > >
> > > > avoid including <mach/*> on drivers.
> > >
> > > Should I move at91_twi.h to include/linux (omap does it like this,
> > > other use the mach-include)?
> >
> > maybe, is at91_twi.h some sort of platform_data ? there's
> > <linux/platform_data/...> for that.
>
> It contains hardware register definitions, not really platform data.
> So linux/i2c-at91.h (like linux/i2c-{omap,pxe,...}) would be the right place?
if it's only register definitions, does it need to be in a header ? I
mean, is anyone outside of this driver trying to access those registers?
Otherwise they could sit on the C source file itself.
If there's anyone else which needs those register definitions then
<linux/i2c/at91.h> seems like a good place (??)
> > > > > + if (irqstatus & AT91_TWI_TXCOMP) {
> > > > > + at91_disable_twi_interrupts(dev);
> > > > > + dev->transfer_status = status;
> > > > > + complete(&dev->cmd_complete);
> > > > > + }
> > > > > + else if (irqstatus & AT91_TWI_RXRDY) {
> > > > > + at91_twi_read_next_byte(dev);
> > > > > + }
> > > > > + else if (irqstatus & AT91_TWI_TXRDY) {
> > > > > + at91_twi_write_next_byte(dev);
> > > > > + }
> > > > > + else {
> > > > > + return IRQ_NONE;
> > > >
> > > > coding style is wrong. Also, are those IRQ events really mutually
> > exclusive ??
> > >
> > > These are indeed mutually exclusive (semantically).
> >
> > so you couldn't have AT91_TWI_TXCOMP and AT91_TWI_RXRDY set when you read
> > irqstatus ?
>
> Yes, I do have this, but in this constellation only TXCOMP is relevant and
> all other flags can be ignored (because the transfer is finished).
I asked about different directions exactly because of that. My question
was if you could have a TX Complete and RX Ready IRQs simultaneously.
The way you coded this IRQ handler is like a priority encoder, meaning
that you will ignore all other bits once you find the first set bit. I'm
wondering if you shouldn't drop the "else" as most of the IRQ handlers
do.
But it's your driver anyway, I don't know how this controller behaves.
Just found it a bit worrying that you ignore all other IRQ status bits.
--
balbi
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2011-11-08 18:06 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-08 11:52 [PATCH V3 0/4] AT91: replace broken TWI driver i2c-at91.c Nikolaus Voss
2011-11-08 10:49 ` [PATCH V3 1/4] drivers/i2c/busses/i2c-at91.c: remove broken driver Nikolaus Voss
2011-11-08 14:36 ` Felipe Balbi
2011-11-08 10:49 ` [PATCH V3 2/4] drivers/i2c/busses/i2c-at91.c: add new driver Nikolaus Voss
2011-11-08 14:41 ` Felipe Balbi
2011-11-08 15:15 ` Nicolas Ferre
2011-11-08 15:23 ` Felipe Balbi
2011-11-08 18:29 ` Russell King - ARM Linux
2011-11-08 18:44 ` Felipe Balbi
2011-11-08 18:55 ` Russell King - ARM Linux
2011-11-08 19:02 ` Felipe Balbi
2011-11-08 19:39 ` Russell King - ARM Linux
2011-11-08 19:58 ` Felipe Balbi
2011-11-08 21:14 ` Russell King - ARM Linux
2011-11-08 15:35 ` Voss, Nikolaus
2011-11-08 15:40 ` Felipe Balbi
2011-11-08 15:49 ` Voss, Nikolaus
2011-11-08 18:06 ` Felipe Balbi [this message]
2011-11-08 22:50 ` Ryan Mallon
2011-11-09 16:01 ` Voss, Nikolaus
2011-11-09 19:11 ` Russell King - ARM Linux
2011-11-08 23:58 ` Ryan Mallon
2011-11-08 11:09 ` [PATCH V3 4/4] Add lookup entries for twi_clk for devices with more than one TWI port Nikolaus Voss
2011-11-08 11:11 ` [PATCH V3 3/4] G45 TWI: remove open drain setting for twi function gpios Nikolaus Voss
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=20111108180648.GA24399@legolas.emea.dhcp.ti.com \
--to=balbi@ti.com \
--cc=N.Voss@weinmann.de \
--cc=ben-linux@fluff.org \
--cc=khali@linux-fr.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-i2c@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolas.ferre@atmel.com \
--cc=rmallon@gmail.com \
/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®