I just posted my proposed non-blocking changes to the i2c driver. This is the changes for the i801 driver.