[i2c] i2c-i801 Interrupt Support

Mark M. Hoffman mhoffman at lightlink.com
Sun Sep 30 20:10:49 CEST 2007

Hi everyone:

(I'm just back from a weeklong business trip.)

* Jean Delvare <khali at linux-fr.org> [2007-09-27 15:38:29 +0200]:
> On Thu, 27 Sep 2007 14:26:21 +0200, Ivo Manca wrote:
> > (Moving to I2C Mailinglist)
> > 
> > Actually, that problem was discussed in a different thread than the one 
> > I refered to. It can be found at: 
> > http://thread.gmane.org/gmane.linux.drivers.sensors/7987/focus=8021
> As far as I can tell, this thread refers to the mainline i2c-i801
> driver and not Mark's rewrite, so it doesn't seem very relevant.
> > So my question basically is: is the interrupt support removed from the 
> > i801 busriver because it was impossible to get it working right, is it 
> > removed because of, for instance, lack of time, or is it just never merged?
> > Since Mark M. Hoffman developed this driver with included interrupt 
> > support, and you seem to have tested it back them, I'm wondering if 
> > there is some more background information available about this, before 
> > we're starting working on something which might not be very possible.
> Mark's driver was not implementing all the features the mainline
> i2c-i801 driver had, so we couldn't just replace the mainline driver
> with it. I also do not think that Mark's driver had received much
> testing. The i2c-i801 driver is widely used, so we have to make very
> sure that a rewritten driver works perfectly well before pushing it
> upstream.

Specifically, the problem I had was with the SMBus block commands.  My
implementation kept hanging the SMBus on my machine - it would hang so
hard that I had to physically unplug it to get it back.  I checked with
a scope that the block commands were doing the right thing, but there
was some chip on the bus that didn't behave well.  So I set that project
to the side, and wow here we are 3 years later.

As Jean did, I will also offer to perform some testing for you.  I have
an ICH5 here, with a header on the mainboard for easy 'scoping.  I also
have a piece of test hardware here that I designed and built some time

> Then Mark had higher priority tasks and gave up is i2c-i801 rewrite.
> But I can't think of any reason why an interrupt-driven i2c-i801 driver
> couldn't make it into mainline. That being said, I encourage you to
> work off the existing i2c-i801 driver if possible, rather than starting
> from scratch. It will make it much easier to merge your work upstream
> when you're done.

IIRC, there were also some suggestions at the time that the polling-mode
operation should remain available.  Because this driver is so widely
used, and because it is used in some cases with *very* old hardware
(which may not even initialize the IRQ properly)... I grudgingly agree
with those suggestions.  With that in mind, my old rewrite won't be all
that useful to you because some redesign will be necessary.


Mark M. Hoffman
mhoffman at lightlink.com

More information about the i2c mailing list