All of lore.kernel.org
 help / color / mirror / Atom feed
* [rft/rfc/patch 00/22] Big I2C cleanup
@ 2012-06-13 15:50 Felipe Balbi
  2012-06-13 15:50 ` [rft/rfc/patch 01/22] i2c: omap: simplify num_bytes handling Felipe Balbi
                   ` (21 more replies)
  0 siblings, 22 replies; 23+ messages in thread
From: Felipe Balbi @ 2012-06-13 15:50 UTC (permalink / raw)
  To: Shubhrajyoti Datta; +Cc: Tony Lindgren, Linux OMAP Mailing List, Felipe Balbi

First of all, this isn't fully tested yet. I can
see some issues poping up after this patchset which
I'm not sure if it's a race condition somewhere or
the HW is just misbehaving.

All in all, the IRQ handler looks cleaner now. There's
still lots of things to be done and before I'm going any
further, I'd like help testing this patchset.

Note that on multiple boots you might face some issues
with the XDR IRQ which aparently keeps getting retriggered
even though it gets acked and properly cleared. I didn't
look yet if there's an errata for that.

I'll give myself a break of the I2C driver because it's
just driving me nuts already. If you have the balls to
look over the unfinished patches (see that there are
a few patches which could be combined, will do that later)
and help out testing, reviewing, commenting...

Next steps (after this set is done) would be to get rid
of that stupid, nonsensical FIFO clear before starting
every transfer, fix up NAK handling, clean up debugging
messages, figure out why sometimes IRQs don't fire (AKA
"controller timed out" crap) and lots more.

For convenience it's also located on the following git
branch:

git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb.git i2c

ps: boot tested on OMAP4 Panda. When it boots fine, it's actually
quite stable, I managed to do many transfers with the PMIC (checking
regulators' state) and it works very reliably (while true; cat
/sys/class/regulators/*/state; done works fine for multiple iterations);

Felipe Balbi (22):
  i2c: omap: simplify num_bytes handling
  i2c: omap: decrease indentation level on data handling
  i2c: omap: add blank lines
  i2c: omap: simplify omap_i2c_ack_stat()
  i2c: omap: split out [XR]DR and [XR]RDY
  i2c: omap: improve 1p153 errata handling
  i2c: omap: re-factor receive/transmit data loop
  i2c: omap: switch over to do {} while loop
  i2c: omap: ack IRQ in parts
  i2c: omap: switch I2C REV2 to threaded IRQ
  i2c: omap: get rid of "count" variable
  i2c: omap: get rid of the "complete" label
  i2c: omap: if controller is suspended, bail out
  i2c: omap: ack ARDY IRQ
  i2c: omap: switch to devm_* API
  i2c: omap: switch to platform_get_irq()
  i2c: omap: drop Access Ready IRQ
  i2c: omap: drop errata i207 from RRDY interrupt
  i2c: omap: bus: add a receiver flag
  i2c: omap: avoid unnecessary register read
  i2c: omap: no need to reinitialize "stat"
  i2c: omap: simplify errata check

 drivers/i2c/busses/i2c-omap.c |  386 +++++++++++++++++++++++------------------
 1 file changed, 216 insertions(+), 170 deletions(-)

-- 
1.7.10.4


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2012-06-13 15:54 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-13 15:50 [rft/rfc/patch 00/22] Big I2C cleanup Felipe Balbi
2012-06-13 15:50 ` [rft/rfc/patch 01/22] i2c: omap: simplify num_bytes handling Felipe Balbi
2012-06-13 15:50 ` [rft/rfc/patch 02/22] i2c: omap: decrease indentation level on data handling Felipe Balbi
2012-06-13 15:50 ` [rft/rfc/patch 03/22] i2c: omap: add blank lines Felipe Balbi
2012-06-13 15:50 ` [rft/rfc/patch 04/22] i2c: omap: simplify omap_i2c_ack_stat() Felipe Balbi
2012-06-13 15:50 ` [rft/rfc/patch 05/22] i2c: omap: split out [XR]DR and [XR]RDY Felipe Balbi
2012-06-13 15:50 ` [rft/rfc/patch 06/22] i2c: omap: improve 1p153 errata handling Felipe Balbi
2012-06-13 15:50 ` [rft/rfc/patch 07/22] i2c: omap: re-factor receive/transmit data loop Felipe Balbi
2012-06-13 15:50 ` [rft/rfc/patch 08/22] i2c: omap: switch over to do {} while loop Felipe Balbi
2012-06-13 15:50 ` [rft/rfc/patch 09/22] i2c: omap: ack IRQ in parts Felipe Balbi
2012-06-13 15:50 ` [rft/rfc/patch 10/22] i2c: omap: switch I2C REV2 to threaded IRQ Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 11/22] i2c: omap: get rid of "count" variable Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 12/22] i2c: omap: get rid of the "complete" label Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 13/22] i2c: omap: if controller is suspended, bail out Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 14/22] i2c: omap: ack ARDY IRQ Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 15/22] i2c: omap: switch to devm_* API Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 16/22] i2c: omap: switch to platform_get_irq() Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 17/22] i2c: omap: drop Access Ready IRQ Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 18/22] i2c: omap: drop errata i207 from RRDY interrupt Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 19/22] i2c: omap: bus: add a receiver flag Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 20/22] i2c: omap: avoid unnecessary register read Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 21/22] i2c: omap: no need to reinitialize "stat" Felipe Balbi
2012-06-13 15:51 ` [rft/rfc/patch 22/22] i2c: omap: simplify errata check Felipe Balbi

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.