aboutsummaryrefslogtreecommitdiff
path: root/drivers/i2c/muxes
diff options
context:
space:
mode:
authorDaniel Kurtz <djkurtz@chromium.org>2012-07-24 14:13:59 +0200
committerJean Delvare <khali@endymion.delvare>2012-07-24 14:13:59 +0200
commitd3ff6ce40031e8401eab60c3de7db9b1f3f4c08b (patch)
tree4fbbf4ae24c37638bb51001600caa2843139ddbf /drivers/i2c/muxes
parent29b608540b030d38a978c972cbe99d40efdb7267 (diff)
downloadlinux-linaro-stable-d3ff6ce40031e8401eab60c3de7db9b1f3f4c08b.tar.gz
i2c-i801: Enable IRQ for byte_by_byte transactions
Byte-by-byte transactions are used primarily for accessing I2C devices with an SMBus controller. For these transactions, for each byte that is read or written, the SMBus controller generates a BYTE_DONE IRQ. The isr reads/writes the next byte, and clears the IRQ flag to start the next byte. On the penultimate IRQ, the isr also sets the LAST_BYTE flag. There is no locking around the cmd/len/count/data variables, since the I2C adapter lock ensures there is never multiple simultaneous transactions for the same device, and the driver thread never accesses these variables while interrupts might be occurring. The end result is faster I2C block read and write transactions. Note: This patch has only been tested and verified by doing I2C read and write block transfers on Cougar Point 6 Series PCH, as well as I2C read block transfers on ICH5. Signed-off-by: Daniel Kurtz <djkurtz@chromium.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/i2c/muxes')
0 files changed, 0 insertions, 0 deletions