I don't think the retry loop is useful at all.

But in the meanwhile, I have just now looked at the original i2c code that clocks the bits out, and found something suspicious there that might have an effect. So I've changed it slightly, and the resulting Hijack kernel is here.

Again, try this one out folks, and if it solves your fan problems then I'll incorporate the changes into a proper release.

-ml